【问题标题】:Chef : How to add multiple nodes to a given role厨师:如何将多个节点添加到给定的角色
【发布时间】:2015-02-17 15:47:52
【问题描述】:

我是厨师的新手,正在尝试各种选择。如果用例是将多个节点添加到特定角色,那么最简单的方法是什么?

对于单个节点,我将从 chefdk(工作站)执行以下命令。

knife node run_list add <host-name1> "role[httpd-role]"(已经创建并上传菜谱到 chef-server,并组合了一些菜谱来创建角色“httpd-role”)。

假设我有很多主机名,在以下场景中将上述角色添加到所有节点的最简单方法是什么。

  1. 当主机名具有带有递增数字的固定模式时(fe1、fe2 等...)
  2. 当主机名没有任何固定模式时(foo、bar、fooabcd、barabcd 等...)

在本练习结束时,我想将角色“httpd-role”添加到所有节点,并在所有节点上执行“sudo chef-client”时,我希望获取所有最新的策略和将它们安装在节点中。

提前致谢

【问题讨论】:

    标签: chef-infra chef-recipe


    【解决方案1】:

    没有内置的 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

    【讨论】:

    • 感谢您的回答:)
    猜你喜欢
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-03
    • 2015-02-05
    • 2017-03-04
    • 2016-08-19
    • 1970-01-01
    相关资源
    最近更新 更多