Você pode usar um método search
formatado corretamente nas receitas Chef executadas no servidor da web que retornam o objeto do nó para o servidor de banco de dados. Então você pode obter os IPs acima mencionados através do node ["ipaddress"] ou, se você precisar do IP / hostname público quando rodando no EC2, nó ["cloud"] ["public_hostname"] / node ["cloud"] ["public_ipv4 "]. Por exemplo, depois de implantar o servidor de banco de dados, use algo como:
db_servers = search(:node, 'roles:db-server').map{|n| n.attribute?('cloud') ? n['cloud']['public_ipv4'] : n['ipaddress'] }
template "web/config" do
[...]
variables({ :dbs_ervers => db_servers })
end
A atualização do servidor da web ocorrerá de forma assíncrona, sempre que o cliente Chef for executado ou você poderá forçar a execução manualmente por meio do manual ssh
ou knife ssh