假设我有一个值数组
["node1.example.org", "node2.example.org"]
我想使用facter传递它,并在puppet中使用它:
host {
$nodes:
...
}
我怎样才能做到这一点?
Facter 1.x 不能将结构化数据作为事实值传递。所有事实都将被强制转换为字符串格式。这对于数组来说尤其不幸,因为它们的元素将在没有连接标记的情况下连接起来。
建议让您的 fact 返回一个 [comma] 分隔列表,例如,不要返回Array result
,做
result * ","
在您的清单中,将其转回数组
$nodes_array = split($nodes, ',')
host { $nodes_array: }
请参阅Puppet 函数参考和 Ruby 的Array 方法。
Facter 2 确实支持 Boolean、Hash 和 Array 事实,但这可能还不是现成的。