2016-04-29 86 views
0

我有node['server']['ipaddress']屬性包括如下3個IP地址:使用廚師陣列的bash資源內屬性

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個以上的ipaddress,我想讓上面的bash命令更具動態性,這樣我就不需要每次更改bash,它可以容納任意數量的服務器ips

回答

2

試試這個:

server_specs = node['server']['ipaddress'].map { |s| "--server #{s}" }.join(' ') 
command = "docker run #{server_specs} --update" 
echo command 

順便說一句,爲什麼不是ipaddresses代替ipaddress複數命名的關鍵,?這讓讀者感到困惑。