作为平台设置编排的一部分,我们使用python包在云中的机器集群上安装各种软件包。在
我们有以下场景:
我们能做什么-- 我们成功地将ambari服务器和ambari代理分别安装在我们的集群机器上,并借助于单独的厨师食谱。在
我们不能做的事-- 如何修改每台机器的ambari代理属性文件,使其指向我们的ambari服务器IP。一般来说,作为chef编排的一部分,将基于集群的软件连接起来的优雅方式是什么?在
注:。ambari服务器是动态创建的,因此它的IP是在运行时获得的。在
有可能吗?有没有其他办法可以解决上述问题?在
谢谢
这是Chef-server和{a2}的场景。在
您必须更改安装ambari代理的配方以动态获取ambari服务器的IP。在
首先运行配置ambari服务器的配方。当Chef在那里成功运行后,它将节点的一些信息填充到Chef服务器,包括应用于该特定节点的配方和角色。您可以转到chef服务器并检查节点属性,特别是“recipes”属性。在
现在改变你的安巴里特工配方。我不知道代理的配置文件是什么样子,但我们只对一行感兴趣,其中设置了主服务器的IP。在
创建配置文件的模板并将其添加到食谱中。将harcoded主IP值替换为
<%= @master_ip %>
更改ambari代理配方,使其正确设置此值:
如果有chef服务器,可以搜索运行ambari服务器配方的节点。那你就用那台机器的IP。或者,您可以为ambari服务器使用DNS名称,然后更新DNS条目以在新服务器可用时指向它。在
其他选项包括使用confd with etcd,或使用consur。每一个都允许您使用服务器的ip更新配置post chef。在
这听起来是Consul的完美用例。在
我们已经开始用它来解决一个听起来很像你的问题。历史上,任何一种配置都是由一个大的Python代码库处理的,其中包含了大量的Chef。我们一直在努力用执政官来代替它的一部分。在
我很快就看到了气泡群的信息。多亏了consurs healthchecks,我可以在云服务的控制面板之前看到机器的供应和上线。在
它所做的不仅仅是作为一个密钥/值存储。它还可以处理服务发现和执行任何类型的定期运行状况检查,您可能正在通过Sensu之类的东西进行跟踪。在
我强烈建议你去看看。在
希望这有点帮助。祝部署顺利!在
相关问题 更多 >
编程相关推荐