Chef infra 随机洗牌给定的列表?

Chef infra 随机洗牌给定的列表?,chef-infra,chef-recipe,Chef Infra,Chef Recipe,我有一个IP列表,我想在厨师食谱中使用,请有人建议我如何为给定节点生成一个随机列表。 例如,如果给定列表为[1,2,3,4] 节点1应获得订单[3,2,1,4] 节点2应该得到一些其他的随机顺序[4,2,1,3]等等 谢谢, 拉朱代码: 来自随机导入洗牌 def获取随机列表(原始列表): 新建列表=原始列表复制() 洗牌(新列表) 返回新列表 原始值=[1,2,3,4,5] node1_lst=获取随机列表(原始列表) node2\u lst=获取无序列表(原始列表) 打印(节点1) 打印(节点

我有一个IP列表,我想在厨师食谱中使用,请有人建议我如何为给定节点生成一个随机列表。 例如,如果给定列表为[1,2,3,4]

节点1应获得订单[3,2,1,4] 节点2应该得到一些其他的随机顺序[4,2,1,3]等等

谢谢, 拉朱代码:

来自随机导入洗牌
def获取随机列表(原始列表):
新建列表=原始列表复制()
洗牌(新列表)
返回新列表
原始值=[1,2,3,4,5]
node1_lst=获取随机列表(原始列表)
node2\u lst=获取无序列表(原始列表)
打印(节点1)
打印(节点2)
输出:


因为chef使用ruby,所以可以在菜谱中使用ruby代码,而ruby内置在ruby核心中

a=[1,2,3]#=>[1,2,3]
a、 洗牌#=>[2,3,1]
a#=>[1,2,3]

在chef中,您可能希望在其中使用ruby,或者将suffled list分配给节点属性,并在您的菜谱中引用此节点属性。

请记住,如果您将其放在烹饪书中,并且节点经常检查chef服务器,它将在每次节点签入时重新排列列表,除非您显式使用一个保护资源,该资源最终将使用这些值。对于用例来说,这可能重要,也可能不重要,但只是把它扔到外面。
[5, 4, 1, 2, 3]
[1, 4, 5, 2, 3]