3 Stimmen

In einem Chef-Kochbuch, wie werden erb-Vorlagen basierend auf der Rolle zugewiesen?

Ich bin neu bei Chef und habe eine Frage zu folgendem Thema.

Ich habe zwei Server, die beide Nginx verwenden. Der einzige Unterschied besteht darin, dass die Konfigurationsdateien unterschiedlich sind. Ich verwende erb-Vorlagen für die Nginx-Konfigurationsdateien.

Ich stelle mir vor, dass ich ein Cookbook mit zwei erb-Dateien im Vorlagenverzeichnis benötigen würde.

Also, nehmen wir an, ich habe zwei Rollen Server1 und Server2 und in der Runliste für beide ist Nginx enthalten.

Wie richte ich die Dinge so ein, dass bei Verwendung von Rolle 1 die Konfigurationsdatei für Server1 verwendet wird? Gleiches gilt für Server2.

Gibt es Anleitungen zu diesem Thema?

3voto

Leo Gamas Punkte 1231

Das nginx-Kochbuch unter http://community.opscode.com/cookbooks/nginx präsentiert eine ideale Lösung für das Problem.

Sie haben nur ein Kochbuch und eine Konfigurationsschablone. Wenn Sie etwas anpassen müssen, erstellen Sie eine Rolle und überschreiben Sie einfach die Attribute in Ihrer Rolle.

Es gibt auch eine Definition (nginx_site), die es Ihnen ermöglicht, Websites im selben nginx-Instanz einzufügen, so dass Sie so viele Websites wie gewünscht mit geringen Schwierigkeiten in der Gesamtnginx-Konfiguration verwalten können.

0voto

phoenix Punkte 587

Definieren Sie die Rollen für Server 1 & Server 2. Verwenden Sie dabei override_attributes oder default_attributes. Um dies zu verwenden, müssen Sie proaktiv beim Schreiben von Rezepten sein. Sehen Sie den Abschnitt Vorrang in dem untenstehenden Link für Attribut-Vorrang

http://wiki.opscode.com/display/chef/Attributes

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X