如何自动将节点分配给环境?

时间:2016-09-23 17:41:52

标签: chef chef-recipe knife cookbook

您可以在引导时将节点分配给环境,但我已经有一堆生产节点位于_default。

我可以使用刀子将它们分配给其他环境,或者我正在考虑为每个具有运行chef-client :: config并设置环境属性的配方的环境设置角色,然后我可以将节点分配给合适的环境角色。我认为使用角色的问题可能是我必须跳出来在测试厨房中连接的额外环节。

厨师们通常如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

正确的起点是knife exec,带有转换脚本。

这应该可以让你开始:

knife exec -E 'nodes.transform("roles:foo") {|n| n.chef_environment = "foo" }'

参数中有一个搜索查询(您也可以使用"*:*"来获取所有节点),然后对块中的每个节点对象执行某些操作。如果块的返回值为true-y则会保存,如果为false -y则不会保存。