Frage

Ich habe ein Kochbuch, das Nginx installiert und eine benutzerdefinierte nginx.conf-Datei installiert.Es ist im Grunde das gleiche Kochbuch auf Opscode und verwendet „cookbook_file“, um die Datei zu installieren.

Wenn ich eine Änderung an der conf-Datei vornehme und dann das Kochbuch mit chef erneut ausführe, wird die Konfigurationsdatei nicht aktualisiert.Das scheint ein Fehler zu sein – mache ich etwas falsch?

War es hilfreich?

Lösung

Bei Chef ist die Reihenfolge der Befehle im Rezept die Reihenfolge der Ausführung.wenn du das behalten hast template für die nginx.conf und es kommt nach dir cookbook_file Befehl, die generierte Vorlage überschreibt Ihre Datei.

z.B.

# 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

Der template würde die von festgelegte Datei überschreiben cookbook_file.

Andere Tipps

Beim Testen habe ich festgestellt, dass dies der Fall ist :create_if_missing Wenn Sie diese Option festlegen, wird die Datei nicht aktualisiert, wenn sich der Inhalt geändert hat.Satz :create und das wird es.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top