鉴于以下 Puppet 清单,我如何合并/连接两个数组,以便命令可以同时执行a=b
和b=c
?
Cron{
environment => ["a=b"]
}
class a{
cron{'test':
command => "/usr/bin/true",
user => "francois",
environment => ["b=c"],
}
}
include a
我的 crontab 条目最终如下所示:
# Puppet Name: test
b=c
* * * * * /usr/bin/true
答案1
我记得你不能直接这样做。不过,像这样的方法可能会有效:
$default_env = ["a=b"]
Cron {
environment => $default_env
}
class a {
$additional_env = split(inline_template("<%= (default_env).join(',') %>"),',')
cron {"test":
command => "true",
user => "me",
environment => $additional_env
}
}
include a
(split/inline_template 基于http://www.crobak.org/2011/02/two-puppet-tricks-combining-arrays-and-local-tests/)
答案2
作为https://www.puppet.com/docs/puppet/7/lang_data_array.html,
数组运算符
您可以使用带有数组的运算符来创建新数组:
- 附加到 <<
- 用 + 连接[...]
你应该能够创建一个像这样的组合数组
environment => ["b=c"] + ["a=b"],
但你可能想要join
变量用另一种方式。