【问题标题】:Get info from chef server api to chef recipe从厨师服务器 api 获取信息到厨师食谱
【发布时间】:2014-02-14 00:30:25
【问题描述】:

我有以下简单的食谱:

bash "start mongos" do
  code <<-EOH
    mongos --configdb cfg0.example.net:27019,cfg1.example.net:27019,cfg2.example.net:27019 --fork --logpath /var/log/mongodb.log
  EOH
end

cfg0/1/2.example.net 需要从我的厨师服务器动态获取。这些应相应地替换为名为 cfg1、cfg2 和 cfg3 的节点的 IP。

我该怎么做?

【问题讨论】:

    标签: chef-infra chef-recipe


    【解决方案1】:

    您需要为此使用Chef Search。我不知道您的确切查询是什么,但这里有一个示例:

    mongos = search(:node, 'role:mongo')
    mongo_addresses = mongos.map { |mongo| "#{mongo['fqdn']}:#{mongo['mongo']['port']}" } 
    
    bash "start mongos" do
      code "mongos --configdb #{mongo_addresses.join(',')} --fork --logpath /var/log/mongodb.log"
    end
    

    注意:这是出于演示目的。如果没有关于 mongo 食谱结构和 Chef Server 设置的更多信息,我无法为您提供“复制粘贴”代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-21
      • 1970-01-01
      • 1970-01-01
      • 2021-11-01
      • 2014-12-05
      相关资源
      最近更新 更多