【发布时间】:2015-03-12 09:53:23
【问题描述】:
我们正在使用 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 对所有节点都是唯一的(必须具有通用配置的应用程序需要)
我们的问题来自扩展,我们希望 /etc/hosts 在新节点启动并连接到 puppet master 时自动在所有机器上分配新节点。
我们的想法是为 /etc/hosts 提供一个 puppet 模板,使其与 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 文件。
【问题讨论】:
标签: puppet