Puppet 条件赋值和 += 运算符

Puppet conditional assignment and += operator

在 puppet 中,我想根据 nodes.pp 中的配置编写一个带有字符串的文件。

我知道 puppet 只允许每个范围声明一个变量名,但我不知道它是否支持 += 运算符,或者下面的变量声明是否适用于 if/else 后面的子句。

这是我想尝试的:

if $sslClientCertConfig {
    $loadBalancerIp = $sslClientCertConfig[loadBalancerIp]

    $config

    if $loadBalancerIp {
          $config += "string1"
    }
    $config += "string2"
}

if $config {
   $custom = "true"
} else {
    $custom = "false"
}

puppet 支持这种模式吗?有什么办法可以改进吗?

你不能在 puppet 中 reassign 变量。而是删除 empty 声明 $config 和 试试下面的代码

if $loadBalancerIp {
      $prefix = "string1"
}
$config = "${prefix}string2"

示例:

$prefix1 = "pref1"
$config1 = "${prefix1}blabla1"
$config2 = "${prefix2}blabla2"
notify { $config1: }
notify { $config2: }

Notice: /Stage[main]/Main/Notify[pref1blabla1]/message: defined 'message' as 'pref1blabla1' Notice: /Stage[main]/Main/Notify[blabla2]/message: defined 'message' as 'blabla2'

更新:注意automatic string to boolean conversion.