Was ist der richtige Weg, um nach dem Vorhandensein eines verschachtelten Attributs in Chef zu suchen?

8

Es gibt mehrere Möglichkeiten, das Vorhandensein eines verschachtelten Attributs in chef zu überprüfen, und ich bin mir nicht sicher, welches korrekt / am besten ist, und wenn irgendeines dazu führt, dass leere Attribute auf dem Knoten gespeichert werden:

%Vor%

Es wäre sehr wünschenswert, gleichzeitig nach Eltern und Kind zu suchen, aber ich weiß nicht, ob das möglich ist. Ich benutze Chef 10, nicht Chef 11, obwohl Antworten erklären entweder willkommen sind.

    
borntyping 24.09.2013, 15:39
quelle

3 Antworten

11

Knotenattributobjekt ist HashMap. Sie können die native API von Ruby verwenden, um nach verschachtelten Attributen zu suchen.

Chef Node-Objekt bietet eine Reihe von Hilfsmethoden wie:

%Vor%

Es gibt auch eine neue Methode node.debug_value() in Chef 11, die Ihnen hilft, Knotenattribute zu debuggen, was ebenfalls hilfreich ist:

%Vor%

Details finden Sie in dem Artikel Chef 11 In -Depth: Attributänderungen

    
shawnzhu 25.09.2013, 00:58
quelle
4

Wie ich dies in letzter Zeit gelöst habe, war es immer so, wenn möglich, Standardwerte für die in einem Kochbuch verwendeten Attribute zu setzen.

Zum Beispiel würde cookbook/attributes/default.rb enthalten:

%Vor%

Und im Rezept kann jede Überprüfung auf den Attributwert reduziert werden auf:

%Vor%

Natürlich ist es normalerweise viel nützlicher, einen brauchbaren Standardwert zu haben und überhaupt nicht zu überprüfen.

    
borntyping 09.07.2014 22:13
quelle
2

Schauen Sie sich das Koch-Zucker-Kochbuch deep_fetch an, das sichere Verweise auf tiefe Attribute ermöglicht / p>     

Jason Martin 08.07.2014 23:58
quelle

Tags und Links