假设我有一个名为my_cookbook::recipe_old.rb
的食谱。此配方已应用于节点,角色等的运行列表。
但是我要说我需要将食谱重命名为recipe_new.rb
。如何更新所有节点和角色的运行列表?
我想我必须做knife search
来查找应用了配方的所有节点和角色,将新命名的配方添加到其运行列表中,然后从运行列表中删除旧配方。
这是最好的方式还是Chef有更好的解决方案?
答案 0 :(得分:3)
像这样的东西
knife exec -E 'nodes.transform("*:*") {|n| n.run_list.each_index {|i| if n.run_list[i] == "recipe[my_cookbook::recipe_old]"; n.run_list[i] = "recipe[my_cookbook::recipe_new"; return true; end } false }'
然后类似roles.transform
。