Puppet条件赋值和+ =运算符

时间:2015-06-03 00:36:38

标签: string variables scope puppet

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

  • nodes.pp定义$sslClientCertConfig变量,该变量具有loadBalancerIp属性。
  • 我想创建一个配置字符串,我们称之为$config,而不重复字符串代码。配置字符串应该是
    • 答:如果loadBalancerIp是有效字符串,则为字符串1和2的组合
    • B:如果loadBalancerIp是空字符串,则只有字符串2
  • 然后,使用该配置字符串,我想设置另一个变量。

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

这是我想要尝试的内容:

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

    $config

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

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

木偶支持这种模式吗?有没有办法可以改善这个?

1 个答案:

答案 0 :(得分:2)

你的木偶中不能有reassign个变量。而是删除$config和的{em>空声明  尝试以下代码

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

示例:

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

注意:/ Stage [main] / Main / Notify [pref1blabla1] / message:将'message'定义为'pref1blabla1'   注意:/ Stage [main] / Main / Notify [blabla2] / message:将'message'定义为'blabla2'

更新:了解automatic string to boolean conversion.