我需要一个逗号分隔的Puppet master的所有IP地址列表,所以我可以在Puppet节点/代理系统的配置文件中设置它。
我可以使用$ serverip获取主IP,但我需要所有接口地址。
有没有办法用这个列表建立一个Puppet事实?
答案 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 ]))