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