木偶不在代码中

puppet in not in code

我有这个代码...

if $hostname in $var_slave {
    file { 
        "/var/spool/cron/mysql":  
        ensure => present,
        owner => $mysqlUser,
        group => $mysqlGroup,
        mode => "0600",
        source => 'puppet:///modules/eikonappdbcron/mysql-slave',
    }
} 

我想要一种检查值是否不在文件中的方法。

我试过 "if $hostname not in $var_master" 但这不起作用。在做了一些研究之后,我相信我需要使用“!”。我的语法不正确。

Puppet 没有单一的组合 "not in" 运算符。相反,它有 the in operator, and it has a general-purpose boolean negation operator (!)。您可以将它们一起使用来编写一个复合表达式来评估您想要的条件。

如果您已经意识到这一点,那么您可能 运行 遇到了 operator precedence 的问题。否定运算符的优先级高于 in。实际上,! 在所有 Puppet 运算符中具有最高的优先级,因此如果它的 ope运行d 是一个二进制表达式,那么您必须将 ope运行d 括在括号中。

因此,布尔表达式的否定

$hostname in $var_master

! ($hostname in $var_master)