使用puppet自动扩展集群

时间:2015-03-12 09:53:23

标签: puppet

我们正在使用puppet为虚拟图像配置我们的产品。我们使用/ etc / hosts列出集群中的节点,如下所示:

127.0.0.1 localhost
x.x.x.x node-1
y.y.y.y node-2
z.z.z.z node-3
x.x.x.x this_node_ip 

此文件在所有节点上都是相同的,除了this_node_ip对于所有节点都是唯一的(必须具有通用配置的应用程序所需)

我们的问题在于扩展,我们希望在新节点启动并连接到puppet master时,/ etc / hosts在所有机器上自动分配新节点。

我们的想法是为/ etc / hosts设置一个木偶模板,使其与this_node_ip的事实保持同步,但我们如何在模板中添加新节点?

在某种程度上,是否有人列出所有连接到master的代理? 那么我们可以使用基于连接代理的每个循环填充/ etc / hosts? 在这种情况下,模板会像:

<% @list_of_nodes.split(',').each |ip, hostname| %>
<%= ip %> <%= hostname%>
<% end -%>
<%= ipadress_eth0 %> this_node_ip

目前我们唯一的想法就是让新节点scp为puppetmaster节点创建一个新模板,所有节点都硬编码以更新旧节点的/ etc / hosts文件。

1 个答案:

答案 0 :(得分:1)

哦,请不要; - )

您的每台计算机都可以动态导出自己的节点条目。

@@host { $fqdn: ip => $ipaddress, tag => 'my-tag-foobar' }

...并收集所有同行的出口

Host<<| tag == 'my-tag-foobar' |>>

在主服务器上设置PuppetDB以使其正常工作。

您不应将/etc/hosts作为完整文件进行管理,因为您会失去Puppet的host资源提供的灵活性。