木偶不在代码中

时间:2016-01-25 11:34:30

标签: puppet

我有这段代码......

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中”,但这不起作用。做了一些研究后,我相信我需要使用“!”。我无法正确理解语法。

1 个答案:

答案 0 :(得分:2)

Puppet没有单一的,组合的"没有"运营商。相反,它有the in operator,并且它具有通用boolean negation operator (!)。您可以一起使用这些来编写一个复合表达式来计算您想要的条件。

如果你已经意识到这一点,那么也许你遇到了operator precedence的问题。否定运算符的优先级高于in。实际上,!具有任何Puppet运算符的最高优先级,因此如果其操作数是二进制表达式,则必须将操作数括在括号中。

因此,布尔表达式的否定

$hostname in $var_master

! ($hostname in $var_master)