2017-06-26 2 views
1

Ich habe ein bestimmtes Chef-Attribut, das ich je nachdem, ob ein Paket installiert ist, variieren möchte. Beispiel:Wie kann ein Kochbuch ein Chef-Attribut zuweisen, abhängig davon, ob ein Paket installiert ist?

if package X is installed 
    default['attr1']['attr2'] = 'value1' 
else 
    default['attr1']['attr2'] = 'value2' 
end 

Dieses Attribut wird später zum Festlegen bestimmter Werte in vordefinierten Schablonendateien verwendet.

Nach Online-Suche nach dem besten Weg, dies zu tun, finde ich, dass es definitiv nicht üblich ist. Das lässt mich fragen, ob ich auch mein Problem falsch anwende.

Also meine vollständige Frage hier wäre, was ist der beste Weg zu bestimmen, ob ein Paket in einer Chef-Attribute-Datei installiert ist. Ist es nicht empfehlenswert, ein Attribut basierend auf der aktuellen Konfiguration des Systems zu ändern? Wenn nicht, warum?

Antwort

2

Ohai macht das bereits zu Beginn des Laufs über node['packages']. Im Allgemeinen sollte der Chef-Code den gewünschten Zustand des Systems beschreiben und nicht auf den aktuellen Zustand reagieren. In den Tiefen von Chefs eigenem Code muss es eine Test-und-Reparatur-Schleife machen, aber das sollte Ihr Code normalerweise nicht tun müssen. Weitere Informationen finden Sie unter https://coderanger.net/thinking/.

Verwandte Themen