Ich habe einen Fall, in dem ich versuche, eine Systemd_Unit in Chef zu erstellen, um einen Dienst zu erstellen. Sobald der Dienst erstellt wurde (vorausgesetzt, es ist nicht aktuell), möchte ich es starten, und dann nur, wenn der Dienst gerade erstellt wurde Ich möchte ein Bash-Skript aufrufen, um einige Initialisierung darauf durchzuführen.Chef: bedingt eine Ressource benachrichtigen
begann ich mit diesem aus:
systemd_unit 'mysvc.service' do
content({
.
.
.
})
action [ :create ]
notifies :run, 'bash[mysvc.init]', :delayed
end
bash 'mysvc.init' do
code <<-CODE
.
.
.
CODE
action :nothing
end
systemd_unit 'mysvc.service' do
action [ :enable, :start ]
end
hier Meine Erwartung ist, dass, wenn das: RAN auf der systemd_unit erstellen, die mein Bash-Skript ausführen würde. Da das Bash-Skript wie folgt markiert ist: nichts, würde es kein anderes Mal laufen.
Leider ist das nicht das Verhalten, das ich bekomme. Was tatsächlich passiert ist, wenn entweder die: create oder die [: enable,: start] Blöcke der systemd_unit ausgeführt werden, dann läuft mein bash Skript. Dies wird nicht funktionieren, da ich die Daten in meinem Dienst bereits initialisiert habe und der Versuch der Neuinitialisierung fehlschlägt.
Wie kann ich mein Bash-Skript nur ausführen, wenn der Dienst neu erstellt wird?
https : //github.com/chef/chef/issues/6542 eingereicht, wenn Sie es sehen wollen – coderanger
Ok, vielen Dank für die Eingabe des Tickets, ich werde es im Auge behalten. – Steve