我想在清单中使用机器IP地址,但是木偶失败了:
错误:无法应用目录:参数目标失败 防火墙[004 accept ssh]:host_to_ip因$ {address}而异常,异常 在/ etc / puppetlabs /
没有$ {address}的地址
firewall { '004 accept ssh':
proto => 'tcp',
destination => '$::ipaddress',
dport => '22',
action => 'accept',
}
如何在此自动获取IP地址?
答案 0 :(得分:2)
您将变量放在字符串文字''
中,因此事实变量$::ipaddress
不会插入或正确解析。它按字面解释为$::ipaddress
。你应该把它改成:
firewall { '004 accept ssh':
proto => 'tcp',
destination => $::ipaddress,
dport => '22',
action => 'accept',
}
您也可以使用""
进行插值,但没有真正的理由这样做。
虽然您做了正确的事情并将事实确定为向后兼容性的全局变量,但如果您通过以下操作使用Facter >= 3
,则还可以使用它来保护它:
firewall { '004 accept ssh':
proto => 'tcp',
destination => $facts['ipaddress'],
dport => '22',
action => 'accept',
}
您也可以直接在事实网络哈希中指定它,但这可能有点过分。