0

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

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

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

4

2 回答 2

1

听起来您希望 puppet masters IP 在所有其他节点上作为事实可用?

这里

在 puppet master 清单的某个地方,您需要创建一个逗号分隔的所有 puppet master IP 列表,然后导出事实。

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

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

于 2013-08-23T11:19:46.463 回答
0

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

$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 ]))
于 2013-08-23T01:08:04.793 回答