是否有可能在Puppet中“断言”?

时间:2011-09-27 14:37:50

标签: assertion puppet

有没有办法断言puppet中的变量(或更具体地说,事实)具有特定值,如果没有,则中止安装?

对于背景,情况如下:

在大多数情况下,我可以参考主机名,但有时我需要使用IP地址。例如,我们的日志收集器主机需要在防火墙中为多个特定计算机(而不是整个子网)打开一个端口。我需要使用IP地址在防火墙中打开一个洞。由于机器的IP地址没有变化,我计划将IP地址编码作为配置的一部分,但我想检查各个主机上实际IP地址是否与其配置中的IP地址匹配,如果失败,它没有。这可能吗?

1 个答案:

答案 0 :(得分:11)

我相信这样的事情会起作用:

if $ipaddress != $expectedipaddress {
  fail("IP mismatch")
}

fail() function导致解析失败。将它包装在条件中应该得到你想要的assert行为。

我没有测试过这个特定用法,但如果解析失败,则不会编译新目录,客户端也无法获得任何内容。