
Ich habe einen komplizierten Software-Stack, den ich mit 2 Rezepten verwalte.
recipe[stack::foo]
recipe[stack::bar]
foo
wird auf jedem Server installiert, während bar
wird nur auf einer Teilmenge der Server installiert. bar
hängt von der Datei und dem Dienst ab foo
.
Rezept[Stapel::foo]
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] #bar needs to be restart first, if it is present
notifies :restart, service[fooService]
end
service 'fooService' do
action :start
end
Rezept[Stapel::Balken]
file 'barFile' do
source 'somewhere'
end
service 'barService' do
action :start
end
Ist es möglich, eine bedingte Abhängigkeit zu erstellen, sodass das bar
Rezept neu gestartet wird, wenn es auf dem Knoten vorhanden ist. Wenn nicht, wird es übersprungen.
Ich versuche so etwas
file 'fooFile' do
source 'somewhere'
notifies :restart, service[barService] if exists? "service[barService]"
notifies :restart, service[fooService]
end
Antwort1
Im IRC beantwortet, und der Benutzer „spuder“ hat mitgeteilt, dass Doppelfragen nicht gern gesehen sind.
tl;dr: Verwenden resources()
oder überprüfen Sie die Ausführungsliste.