在 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?这让读者感到困惑。