Vários ambientes no Chef?

0

Estou procurando algumas ideias / orientações para usar ambientes no chef para especificar atributos específicos de cada ambiente, como Dev, QA & PROD.

Como resultado, gostaríamos de poder usar os mesmos livros de receitas em todos os ambientes, mas passar algumas variáveis específicas do ambiente por meio desses atributos.

Alguém se deparou com este cenário. Obrigado!

    
por taki 23.06.2015 / 23:30

1 resposta

1

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!

    
por 29.06.2015 / 21:47

Tags