我们有许多Ambari LAB集群 – Apache Ambari版本2.5.0.3 ,而ambari代理安装在Linux redhat机器上
我的目标是通过自动执行stream程,find在所有Ambari群集上更新服务值的方法
我们现在所做的,就是把每个ambari集群和改变服务的价值 – 但这需要很多时间
所以如果我们有差异25 ambari实验室集群,那么我们需要访问每个ambari集群和改变值,这是非常辛苦,因为我们有很多值改变…
但是我们有一个新的想法来自动化这个过程
我们的想法是从一些ambari集群文件生成一个新的blueprint.json,如下所示:
curl -H "X-Requested-By: ambari" -X GET -u admin:admin http://{ambari_host}:8080/api/v1/clusters/{Cluster_name}\?format\=blueprint > blueprint.json
然后更新/更改新的blueprint.json文件中的值
最后上传/推送所有集群上的json文件
最大的问题是:
如何在ambari集群上上传新的blueprint.json文件?
这是可能的情况吗?
您可以使用POST请求注册并上传新的蓝图,如下所示。
curl --verbose -H "X-Requested-By: ambari" -X POST -u admin:admin http://{ambari_host}:8080/api/v1/blueprints/:{new blueprint name}?validate_topology=false --data "@./blueprint.json"
但是这不会改变现有集群的configuration。 蓝图只能在创build新群集之前使用。
如果您需要修改现有群集configuration,则可以参考此文档。