Chef actualización del archivo de configuración
-
09-09-2020 - |
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?
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á.