2014-02-13 91 views
1

我有以下的簡單配方:獲得從廚師服務器API信息的廚師長的食譜

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相應地替換。

我該怎麼做?

回答

0

爲此,您需要使用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 cookbook和Chef Server設置結構的更多信息,我不能給你「複製粘貼」代碼。