我需要一个 Puppet Master 的所有 IP 地址的逗号分隔列表,以便我可以在 Puppet 节点/代理系统的配置文件中设置它。
我可以使用 $serverip 获取主 IP,但我需要所有接口地址。
有没有办法用这个列表建立一个 Puppet 事实?
我需要一个 Puppet Master 的所有 IP 地址的逗号分隔列表,以便我可以在 Puppet 节点/代理系统的配置文件中设置它。
我可以使用 $serverip 获取主 IP,但我需要所有接口地址。
有没有办法用这个列表建立一个 Puppet 事实?
听起来您希望 puppet masters IP 在所有其他节点上作为事实可用?
看这里。
在 puppet master 清单的某个地方,您需要创建一个逗号分隔的所有 puppet master IP 列表,然后导出事实。
然后在所有其他节点清单上,您需要导入该事实。
然后,当您在任何节点上运行 facter -p 时,您将获得 IP 的 puppet master 列表
所有接口都以逗号分隔值列出,可以在清单中调用,如下所示:
$interfaces
您可以使用以下命令检查通过因子可用的变量:
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 ]))