2016-10-12 1 views
0

Was ist der beste Weg, um einen bestimmten Befehl in Chef auszuführen, nur wenn der Knoten bootstrapped wird, aber nicht während nachfolgender Chef-Läufe? Zum Beispiel, wenn ich apt-get upgrade ausführen wollte, wenn ein Ubuntu-Knoten zuerst bootstrapped wird, was ist der einfachste Weg, das zu erreichen?Wie werden Serverpakete während des Chef-Bootstraps aktualisiert, aber nicht während der nachfolgenden Chef-Läufe?

Eine Lösung könnte darin bestehen, nach Abschluss der Aufgabe in eine Datei zu schreiben und die Task only_ auszuführen, wenn diese Datei nicht existiert. Dies hat jedoch den Nachteil, dass die Aufgabe für vorhandene Knoten ausgeführt wird, die dieses Rezept bereits haben. Wäre die einzige Option das Überschreiben der Standard-Bootstrap-Vorlage?

Antwort

1

Im Allgemeinen würden Sie wahrscheinlich die Datei Idempotenz verwenden, aber Sie könnten auch ein Knotenattribut überprüfen. Für diesen Fall möchten Sie wahrscheinlich touch die Tracking-Datei auf allen vorhandenen Knoten, knife ssh '*:*' 'touch /whatever'.

Verwandte Themen