我的node['server']['ipaddress']
属性包含3个ip地址,如下所示:
node['server']['ipaddress']=["10.211.241.21", "10.211.241.20", "10.211.241.22"]
我现在正尝试在chef bash资源中使用上述值
bash 'configure_engine_discovery' do
code <<-EOH
echo `docker run --server ipaddress1 --server ipaddress2 --server ipaddress3 --update`
EOH
end
可能有超过3个ipaddresses,我想让上面的bash命令更加动态,这样我就不需要每次都更改bash,它可以容纳任意数量的服务器ips
答案 0 :(得分:2)
试试这个:
server_specs = node['server']['ipaddress'].map { |s| "--server #{s}" }.join(' ')
command = "docker run #{server_specs} --update"
echo command
顺便说一下,为什么不是以复数形式命名的密钥ipaddresses
而不是ipaddress
?这让读者感到困惑。