Arrays 木偶阵列迭代如何实现?
//假设事实my_env=>[shared1、shared2、shared3]Arrays 木偶阵列迭代如何实现?,arrays,iteration,exec,puppet,Arrays,Iteration,Exec,Puppet,//假设事实my_env=>[shared1、shared2、shared3] define myResource { file { "/var/tmp/$name": ensure => directory, mode => 0600, } user { $name: ensure => present, } } myResource { $my_env: } 我试过了,但是$name得到了整个数组 我做错了什么吗?如果您使用
define myResource {
file { "/var/tmp/$name":
ensure => directory,
mode => 0600,
}
user { $name:
ensure => present,
}
}
myResource { $my_env: }
我试过了,但是$name得到了整个数组
我做错了什么吗?如果您使用的是Facter
1.x
,那么从事实代码返回的所有值都会隐式转换为字符串。在数组的情况下,所有元素都是关联的
作为一种解决方法,您可以让事实进行适当的连接,例如,用逗号连接值
setcode do
result = []
# ... code to store an array in #{result}
result * ','
end
在清单中,可以使用函数将其转换回正确的数组
$my_env_arr = split($::my_env, ',')
my_resource { $my_env_var: }
数组事实只与Facter2.x一起工作
在第二个代码示例的第二行,您是否打算使用
myu资源{$myu环境变量:}
或
myu资源{$myu env\u arr:}
我之所以这样问,是因为后者对我来说更有意义,而且变量名将与该示例第一行中显示的内容相匹配