Pregunta

Tengo un libro de cocina chef que se instala nginx y instalar un custom nginx.conf archivo.Es básicamente el mismo libro de cocina en Opscode, y utiliza cookbook_file para instalar el archivo.

Si hago un cambio en el fichero de configuración, a continuación, vuelva a ejecutar el libro de cocina de uso de chef el archivo de configuración no está actualizado.Este parece un error -- estoy haciendo algo mal?

¿Fue útil?

Solución

En chef que el orden de los comandos en la receta es el orden de ejecución.si usted mantiene la template para el nginx.conf y viene después de su cookbook_file comando, la plantilla generada va a sobreescribir el archivo.

por ejemplo,

# 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

El template se sobrescribirá el archivo establecidos por cookbook_file.

Otros consejos

En las pruebas, he encontrado que si tiene el conjunto de :create_if_missing, no actualizará el archivo si se ha cambiado el contenido.Establecer :create y lo hará.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top