在puppet中,我想根据nodes.pp
中的配置编写一个带有字符串的文件。
nodes.pp
定义$sslClientCertConfig
变量,该变量具有loadBalancerIp
属性。 $config
,而不重复字符串代码。配置字符串应该是
loadBalancerIp
是有效字符串,则为字符串1和2的组合loadBalancerIp
是空字符串,则只有字符串2 我知道puppet只允许每个范围声明一个变量名,但我不知道它是否支持+=
运算符,或者下面的变量声明是否适用于if / else子句
这是我想要尝试的内容:
if $sslClientCertConfig {
$loadBalancerIp = $sslClientCertConfig[loadBalancerIp]
$config
if $loadBalancerIp {
$config += "string1"
}
$config += "string2"
}
if $config {
$custom = "true"
} else {
$custom = "false"
}
木偶支持这种模式吗?有没有办法可以改善这个?
答案 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'