是否有可能在Puppet中"断言"?

Joe*_*haw 7 puppet assertion

有没有办法断言木偶中的变量(或更具体地说,事实)具有特定值,并且如果不存在则中止安装?

对于背景,情况如下:

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

fre*_*eit 11

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

if $ipaddress != $expectedipaddress {
  fail("IP mismatch")
}
Run Code Online (Sandbox Code Playgroud)

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

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