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