有没有办法断言puppet中的变量(或更具体地说,事实)具有特定值,如果没有,则中止安装?
对于背景,情况如下:
在大多数情况下,我可以参考主机名,但有时我需要使用IP地址。例如,我们的日志收集器主机需要在防火墙中为多个特定计算机(而不是整个子网)打开一个端口。我需要使用IP地址在防火墙中打开一个洞。由于机器的IP地址没有变化,我计划将IP地址编码作为配置的一部分,但我想检查各个主机上实际IP地址是否与其配置中的IP地址匹配,如果失败,它没有。这可能吗?
答案 0 :(得分:11)
我相信这样的事情会起作用:
if $ipaddress != $expectedipaddress {
fail("IP mismatch")
}
fail()
function导致解析失败。将它包装在条件中应该得到你想要的assert
行为。
我没有测试过这个特定用法,但如果解析失败,则不会编译新目录,客户端也无法获得任何内容。