上述图片为 Ambari 后台管理相关的部分界面截图。这些页面如果想调整的话,比如汉化,二次开发等,则可以修改 ambari-admin 模块的源码来实现。
一、介绍
ambari-admin 模块主要是后台管理功能,涉及到的界面有:
- 集群 Blueprint 信息
- Stack 栈信息
- 远程集群访问
- Ambari 用户及组信息
- Ambari view 视图
ambari-admin 模块可以单独编译,实时看到编译后效果,用来修改开发 ambari 后台管理页面。
以 ambari 2.7.3 版本为例,ambari-admin 模块采用 angular.js(版本:1.8.2)作为前端 mvc 框架,配合 Bootstrap、jQuery(v3.6.0) 等 JavaScript 库,css/html 方面使用了 Bootstrap(v3.3.7)框架,来开发的 ambari 后台管理界面。还用到了一些其他东西,如下图所示:
关于 ambari 的 angular.js 版本如何查看:打开 ambari 后台管理界面,F12 打开控制台,在最下面的输入框里面输入:angular.version 即可输出版本号。如下图所示:
二、目录结构
ambari-admin 模块也可进行单独编译,使用的是 angularjs + bower + gulp ,目录如下:
三、ambari 安装部署后,ambari-admin 模块相关代码在哪个目录下?
路径地址:/var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.3.0},详情见下图:
对应的源码是:ambari-admin/src/main/resources/ui/admin-web/dist 下面的内容。源码推荐使用 https://archive.apache.org/dist/ambari/ ,比 https://github.com/apache/ambari 提供的 tar.gz 包要大,可能更全面一点,所以推荐。
其中 dist 为 admin-web 编译后的目录文件。如果代码有改动,可以编译完生成 dist 目录后,将 dist 目录下的文件覆盖到 ambari-server 所在的节点:/var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.3.0}/ 目录下,然后重启 ambari-server,即可访问 8080 界面查看改动效果。
如果代码改动频繁,可以做一个软链,这样只需重启一次 ambari-server 即可,后续改动代码,执行完 gulp 编译之后,刷新页面就可以实时查看效果了。
四、修改 ambari 后台管理界面,流程如何走通?
基于以上描述,相信大家心里也都有了思路,不过我再总结一下。修改 ambari 后台管理界面,有两种方法:
方式一:直接修改编译后的文件,目录位置在:ambari-server 节点的 /var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.3.0}/ 目录下。
优点是:内容实时生效;缺点是:只适合修改局部代码,不适合添加新功能。
有的网友是直接通过修改这里的文件,来实现汉化效果的。这里我还是建议使用第二种方法。
方式二:相比较而言,我更推荐第二种方式。前往 https://archive.apache.org/dist/ambari/,下载你需要的版本,修改 ambari-admin 模块源码,然后编译,将编译后的 dist 目录下的文件覆盖到 /var/lib/ambari-server/resources/views/work/ADMIN_VIEW{2.7.3.0}/ 目录下,也可以看到效果。
为了能够快速开发修改,建议采用软链接的方式,这样的话只有第一次需要重启 ambari-server 来生效,后续改动代码,执行完 gulp 编译之后,刷新页面就可以实时查看效果了。