Chef:如何将多个节点添加到给定角色
Chef : How to add multiple nodes to a given role
我是厨师新手,正在尝试各种选择。如果用例是将多个节点添加到特定角色,最简单的方法是什么?
对于单个节点,我将从 chefdk(工作站)执行以下命令。
knife node run_list add <host-name1> "role[httpd-role]"
(已经创建食谱并将其上传到 chef-server 并组合了一些食谱来创建角色 'httpd-role')。
假设我有很多主机名,在以下场景中将上述角色添加到所有节点的最简单方法是什么。
- 当主机名具有递增数字(fe1、fe2 等...)的固定模式时
- 当主机名没有任何固定模式时(foo、bar、fooabcd、barabcd 等...)
在本练习结束时,我想将角色 'httpd-role' 添加到所有节点,并在所有节点上执行 'sudo chef-client' 后,我希望获取所有最新策略并将它们安装在节点中。
提前致谢
afaik 没有内置 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)
我是厨师新手,正在尝试各种选择。如果用例是将多个节点添加到特定角色,最简单的方法是什么?
对于单个节点,我将从 chefdk(工作站)执行以下命令。
knife node run_list add <host-name1> "role[httpd-role]"
(已经创建食谱并将其上传到 chef-server 并组合了一些食谱来创建角色 'httpd-role')。
假设我有很多主机名,在以下场景中将上述角色添加到所有节点的最简单方法是什么。
- 当主机名具有递增数字(fe1、fe2 等...)的固定模式时
- 当主机名没有任何固定模式时(foo、bar、fooabcd、barabcd 等...)
在本练习结束时,我想将角色 'httpd-role' 添加到所有节点,并在所有节点上执行 'sudo chef-client' 后,我希望获取所有最新策略并将它们安装在节点中。
提前致谢
afaik 没有内置 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)