我是厨师的新手并尝试了各种选择。如果用例是将多个节点添加到特定角色,那么最简单的方法是什么?
对于单个节点,我将从 Chefdk(工作站)执行以下命令。knife node run_list add <host-name1> "role[httpd-role]"
(已经创建并上传了菜谱到厨师服务器,并结合了一些菜谱来创建角色“httpd-role”)。
假设,我有很多主机名,在以下场景中将上述角色添加到所有节点的最简单方法是什么。
在本练习结束时,我想将角色“httpd-role”添加到所有节点,并在所有节点上执行“sudo chef-client”后,我希望获取所有最新策略并将它们安装在节点。
提前致谢
最佳答案
没有内置 API 端点或 knife
向多个节点添加角色的子命令。
但是,您可以使用 knife exec 添加执行此操作:
knife exec -E 'nodes.find("chef_environment:dev") {|n| puts n.run_list << "role[base]" unless n.run_list.include?("role[base]"); n.save }'
该示例按环境过滤
dev
并添加 base
角色。您还可以过滤某个节点名称(使用 name:*
)(示例取自 dougireton.com )
关于chef-infra - Chef : How to add multiple nodes to a given role,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28556263/