Bedingte Abhängigkeiten in CHEF

Bedingte Abhängigkeiten in CHEF

Ich habe einen komplizierten Software-Stack, den ich mit 2 Rezepten verwalte.

recipe[stack::foo]
recipe[stack::bar]

foowird auf jedem Server installiert, während barwird nur auf einer Teilmenge der Server installiert. barhä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 barRezept 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.

verwandte Informationen