使用puppet自动扩容集群
Automatic expansion of cluster using 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 对于所有节点都是唯一的(必须具有通用配置的应用程序需要)
我们的问题来自扩展,我们希望 /etc/hosts 在新节点启动并连接到 puppet master 时自动在所有机器上分配新节点。
我们的想法是为 /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 文件。
哦,请不要 ;-)
您的每台机器都可以动态导出自己的节点条目。
@@host { $fqdn: ip => $ipaddress, tag => 'my-tag-foobar' }
...并收集所有同行的出口
Host<<| tag == 'my-tag-foobar' |>>
请务必在您的主机上设置 PuppetDB 以使其正常工作。
您不应将 /etc/hosts
作为一个完整的文件来管理,因为您会失去 Puppet 的 host
资源提供的灵活性。
我们正在使用 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 创建一个木偶模板,使其与 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 文件。
哦,请不要 ;-)
您的每台机器都可以动态导出自己的节点条目。
@@host { $fqdn: ip => $ipaddress, tag => 'my-tag-foobar' }
...并收集所有同行的出口
Host<<| tag == 'my-tag-foobar' |>>
请务必在您的主机上设置 PuppetDB 以使其正常工作。
您不应将 /etc/hosts
作为一个完整的文件来管理,因为您会失去 Puppet 的 host
资源提供的灵活性。