有没有办法断言 puppet 中的变量(或更具体地说,事实)具有特定值,如果没有则中止安装?
对于背景,情况如下:
在大多数情况下,我可以引用主机名,但有时我需要使用 IP 地址。例如,我们的日志收集器主机需要在防火墙中为几台特定机器(而不是整个子网)打开一个端口。我需要使用 IP 地址在防火墙中打开一个漏洞。由于机器的 IP 地址不会改变,我计划将 IP 地址编码为配置的一部分,但我想检查各个主机的实际 IP 地址是否与其配置中的 IP 地址匹配,如果失败它没有。那可能吗?
最佳答案
我相信这样的事情会奏效:
if $ipaddress != $expectedipaddress {
fail("IP mismatch")
}
fail()
function导致解析失败。将它包装在条件中应该得到 assert
你想要的行为。我还没有测试过这个特定的用法,但如果解析失败,则不会编译新目录,客户端也不会得到任何东西。
关于assertion - 在 Puppet 中是否有可能 "assert"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570957/