Ambari自定义Config页布局
转自:https://blog.csdn.net/u013595419/article/details/79140654
有修改。
一、正文
Services 目录结构
- snippet.bash
[root@manager SAMPLESRV]# pwd /var/lib/ambari-server/resources/stacks/HDP/3.1/services/SAMPLESRV [root@manager SAMPLESRV]# tree . ├── configuration │ └── scrapy-config.xml ├── metainfo.xml ├── package │ └── scripts │ ├── master.py │ ├── sample_client.py │ └── slave.py └── quicklinks └── quicklinks.json
metainfo.xml
中添加configuration-dependencies属性
- snippet.xml
<configuration-dependencies> <config-type>scrapy-config</config-type> </configuration-dependencies> <restartRequiredAfterChange>true</restartRequiredAfterChange>
scrapy-config.xml
- snippet.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>scrapy.bot.name</name> <value>sina</value> <description>Scrapy bot's name</description> </property> <property> <name>scrapy.spider.modules</name> <value>sina.spiders</value> <description>sina's spider modules</description> </property> <property> <name>scrapy.robotstxt.obey</name> <value>False</value> <description>Whether oderby robots protocol</description> </property> </configuration>
为了能够让新添加的配置文件生效,在Ambari Web页面中删除掉现有的 SAMPLESRV,重新添加 SAMPLESRV 这个Service,安装完成后便可以看到配置中的配置选项了。
二、问题与解决方法
2.1 can't start with home(s)
directory(ies) 类型变量,如果参数值以 /home 或者 /homes 开头,Ambari识别为非法路径。
解决方法:
- snippet.js
[root@manager SAMPLESRV]# vim /usr/lib/ambari-server/web/javascripts/app.js isAllowedDir: function isAllowedDir(value) { var dirs = value.replace(/,/g, ' ').trim().split(new RegExp("\\s+", "g")); for (var i = 0; i < dirs.length; i++) { if (dirs[i].startsWith('/home') || dirs[i].startsWith('/homes')) { return false; } } return true; },
修改以上函数,直接返回true即可,当然也可以根据自己实际需求修改。
对应到源代码应该修改:
ambari/ambari-web/public-static/javascripts/app.js
三、参考
打赏作者以资鼓励: