如何使用Puppet master的所有IP地址创建Puppet事实

时间:2013-08-22 20:17:48

标签: puppet

我需要一个逗号分隔的Puppet master的所有IP地址列表,所以我可以在Puppet节点/代理系统的配置文件中设置它。

我可以使用$ serverip获取主IP,但我需要所有接口地址。

有没有办法用这个列表建立一个Puppet事实?

2 个答案:

答案 0 :(得分:1)

听起来你想让木偶掌握IP在所有其他节点上都可用?

here

在木偶大师的某个地方,你需要创建一个以逗号分隔的所有木偶大师IP列表,然后输出这个事实。

然后在所有其他节点清单上,您需要导入事实。

然后当您在任何节点上运行facter -p时,您将获得IP的木偶大师列表

答案 1 :(得分:0)

所有接口都以逗号分隔值列出,可以在以下清单中调用:

$interfaces

您可以使用此命令检查facter中可用的变量:

facter --puppet 
facter --puppet | grep interfaces  # will give you the following
interfaces => eth0,eth1,lo,sit0,virbr0   

所有接口的ipaddress可通过以下方式获得:

facter --puppet | grep ^ipaddress   # will return these

ipaddress => 1xx.xx.xxx.xxx
ipaddress_eth0 => 1xx.xx.xxx.xxx
ipaddress_lo => 127.0.0.1
ipaddress_virbr0 => 1xx.1xx.1xx.x

然后你可以把它们放在一个数组中:

$allip = unique(flatten([ $ipaddress, $ipaddress_eth0, $ipaddress_lo, $ipaddress_vibr0 ]))