![Puppet 并使用参数和数组管理 .k5login](https://linux22.com/image/631474/Puppet%20%E5%B9%B6%E4%BD%BF%E7%94%A8%E5%8F%82%E6%95%B0%E5%92%8C%E6%95%B0%E7%BB%84%E7%AE%A1%E7%90%86%20.k5login.png)
因此,我已设置了 Foreman,并希望传入一个参数,该参数基本上是一种轻松指定可以以该用户身份登录的用户和组的方法。我目前的想法是让参数接受这种输入:
用户1;组1,组2,组3.用户2;组1,组n.用户3;组1
通常(在其他语言中),我会创建一个二维数组,然后循环遍历它。但这在 Puppet 中实际上无法实现。
我编写了一个自定义函数来扩展组成员,然后将其传递给 k5login 类型。我的下一个想法是为此创建一个定义类型。我只是不确定我是否可以传入 2 个值...我是在重新发明轮子,还是在这里做了一些愚蠢的事情?
答案1
听起来你想要 puppet-stdlib 中的“flatten”功能。
This function flattens any deeply nested arrays and returns a single flat array
as a result.
*Examples:*
flatten(['a', ['b', ['c']]])
Would return: ['a','b','c']
https://github.com/puppetlabs/puppetlabs-stdlib
我们用它来做这样的事情:
$flattened = join(unique(sort(flatten([$host_array1,$host_array2,$host_array3]))), ',' )