Pergunta

Eu tenho um livro de receitas do chef, que instala o nginx e instalar uma custom nginx.conf arquivo.É basicamente o mesmo livro de receitas Opscode, e usa cookbook_file para instalar o arquivo.

Se eu fizer uma alteração para o arquivo conf, em seguida, execute novamente o livro de receitas usando o chef o arquivo de configuração não está atualizada.Este parece ser um bug -- estou fazendo algo errado?

Foi útil?

Solução

No chef que a ordem dos comandos na receita é a ordem de execução.se você manteve o template para o nginx.conf e ele vem depois de seu cookbook_file comando, gerado modelo irá substituir o arquivo.

exemplo:

# cookbook file
cookbook_file "#{node[:nginx][:dir]}/nginx.conf" do
  source "my_nginx.conf"
  mode 0644
  owner "root"
  group "root"
end

# template
template "nginx.conf" do
  path "#{node[:nginx][:dir]}/nginx.conf"
  source "nginx.conf.erb"
  owner "root"
  group "root"
  mode 0644
  notifies :reload, "service[nginx]"
end

O template gostaria de substituir o arquivo estabelecidas pelo cookbook_file.

Outras dicas

Nos testes, descobri que se você tem :create_if_missing defini-lo não será atualizado o arquivo, se o conteúdo foi alterado.Conjunto :create e ele vai.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top