我有以下简单的食谱:
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 :(得分: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设置结构的更多信息,我无法为您提供“复制粘贴”代码。