我有这段代码......
if $hostname in $var_slave {
file {
"/var/spool/cron/mysql":
ensure => present,
owner => $mysqlUser,
group => $mysqlGroup,
mode => "0600",
source => 'puppet:///modules/eikonappdbcron/mysql-slave',
}
}
我想要一种检查文件中是否没有值的方法。
我试过“如果$ hostname不在$ var_master中”,但这不起作用。做了一些研究后,我相信我需要使用“!”。我无法正确理解语法。
答案 0 :(得分:2)
Puppet没有单一的,组合的"没有"运营商。相反,它有the in
operator,并且它具有通用boolean negation operator (!
)。您可以一起使用这些来编写一个复合表达式来计算您想要的条件。
如果你已经意识到这一点,那么也许你遇到了operator precedence的问题。否定运算符的优先级高于in
。实际上,!
具有任何Puppet运算符的最高优先级,因此如果其操作数是二进制表达式,则必须将操作数括在括号中。
因此,布尔表达式的否定
$hostname in $var_master
是
! ($hostname in $var_master)