2011-09-27 95 views
7

有没有办法断言puppet中的一个变量(或者更具体地说,一个事实)具有特定的价值,并且如果它没有的话就放弃安装?是否可以在Puppet中“声明”?

为背景,这里的情况是:

在可以参考我的主机名大多数情况下,但有时我需要使用一个IP地址。例如,我们的日志收集器主机需要在防火墙中为几台特定的机器(而不是整个子网)打开一个端口。我需要使用IP地址在防火墙中打开一个洞。由于机器的IP地址不会改变,所以我打算将IP地址编码为配置的一部分,但我想检查单个主机上的实际IP地址是否与配置中的IP地址匹配,并且如果发生故障它没有。那可能吗?

回答

11

我相信这样的事情会的工作:

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

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

我还没有测试过这个具体的用法,但是如果解析失败了一个新的目录没有被编译,并且客户端也没有得到任何东西。

相关问题