Le Chef de mise à jour du fichier de config
-
09-09-2020 - |
Question
J'ai un chef livre de recettes qui installe nginx et installation d'un custom nginx.fichier conf.C'est essentiellement le même livre de recettes sur Opscode, et utilise cookbook_file pour installer le fichier.
Si je modifier le fichier conf, puis exécutez à nouveau le livre de cuisine à l'aide de la chef du fichier de configuration n'est pas mis à jour.Cela semble être un bug -- suis-je en train de faire quelque chose de mal?
La solution
En chef que l'ordre des commandes dans la recette est de l'ordre de l'exécution.si vous avez conservé la template
pour l' nginx.conf
et il vient après votre cookbook_file
de commande, le modèle généré permettra de remplacer votre fichier.
par exemple
# 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
L' template
serait de remplacer le fichier fixées par cookbook_file
.
Autres conseils
Dans les tests, j'ai constaté que si vous avez :create_if_missing
ensemble, il ne sera pas mis à jour le fichier, si le contenu a changé.Ensemble :create
et il le fera.