2016-09-23 4 views
2

Sie können Knoten zu Umgebungen beim Bootstrapping zuweisen, aber ich habe bereits eine Reihe von Produktionsknoten in _default sitzen.Wie automatisiere ich die Zuweisung von Knoten zu Umgebungen?

Ich könnte Messer verwenden, um sie einfach anderen Umgebungen zuzuordnen, oder ich dachte daran, eine Rolle für jede Umgebung zu haben, die ein Rezept hat, das Chef-client :: config ausführt und das Umgebungsattribut festlegt in die richtige Umgebung Rolle. Das Problem mit einer Rolle, die ich denke, wäre aber die zusätzlichen Reifen, die ich durchspringen müsste, um die Dinge in der Testküche anzuhängen.

Wie lösen Chefkoch normalerweise dieses Problem?

Antwort

3

Der richtige Startpunkt ist knife exec mit einem Umwandlungsskript.

Dies sollte wahrscheinlich Ihnen den Einstieg:

knife exec -E 'nodes.transform("roles:foo") {|n| n.chef_environment = "foo" }' 

Das Argument, eine Suchabfrage ist (Sie können auch "*:*" können alle Knoten greifen) und dann etwas tun, mit jedem Knoten Objekt im Block. Wenn der Rückgabewert des Blocks True-Y ist, wird er gespeichert, wenn false-y nicht.

+0

Haben Sie schon einmal Umgebungen über das Koch-Client-Kochbuch den Knoten zugewiesen? Das Buch "Learning Chef" erwähnt diese Methode, aber ich verstehe die Vorteile nicht nur gegenüber dem Messer. – red888

+0

Haben Sie das Buch nicht gelesen, also müssten Sie genauer sein. Im Allgemeinen würden die Dinge im Chefkoch-Kochbuch an die client.rb-Konfiguration schreiben, die * sehr, sehr * nicht empfohlen wird, da sie ständig die Informationen vom Chef-Server überschreiben wird. – coderanger

Verwandte Themen