Aqui está uma maneira de usar o mesmo livro de receitas em vários ambientes, mas passar diferentes variáveis específicas para o ambiente!
1. crie um env.rb com o conteúdo abaixo e faça o upload por meio do comando knife.
name "dev"
description "This is for Development Environment"
cookbook "cookbook1", "= 0.1.0"
default_attributes "dev" => { "proxy-server" => "proxydev.internal.com" }
2. Escreva uma receita que chame o atributo para passá-lo como variável:
ruby_block "configure proxy" do
block do
file = Chef::Util::FileEdit.new "/tmp/proxy/server"
file.insert_line_if_no_match "^proxy", "proxy: #{node["#{dev}"]["proxy-server"]}"
file.write_file
end
end
3. Em seguida, inicialize seu nó com esse ambiente "dev" e inclua a receita acima na lista de execução.
Resultado: Finalmente, no nó, o arquivo "/ tmp / proxy / server" deve conter uma entrada como abaixo:
proxy: proxydev.internal.com
Isso funcionou para nós!