2012-03-26 8 views
3

Ich bin neu zu Chef und ich habe eine Frage zu den folgenden.In einem Kochbuch Koch, wie man Erb Vorlagen basierend auf Rolle zugeordnet

Ich habe zwei Server, die beide nginx verwenden. Der einzige Unterschied ist, dass die Konfigurationsdateien unterschiedlich sind. Ich benutze Erb-Vorlagen für die nginx-Konfigurationsdateien.

Ich würde mir vorstellen, dass ich ein Kochbuch mit zwei Erb-Filets im Verzeichnis Vorlagen benötigen würde.

Also, sagen wir, ich habe zwei Rollen Server1 und Server2 und in der Runlist für die beide ist Nginx.

Wie richte ich die Dinge so ein, wenn ich Rolle 1 verwende, um die Konfigurationsdatei für server1 zu verwenden? Das Gleiche gilt für Server2.

Alle Tutorials zu diesem Thema?

Antwort

3

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

Sie haben nur ein Kochbuch und eine Konfigurationsvorlage. 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), so dass Sie Sites innerhalb derselben nginx-Instanz platzieren können, so dass Sie mit der gesamten nginx-Konfiguration so viele Websites wie gewünscht verwalten können.

0

Definieren Sie die Rollen für Server 1 & Server 2. In dieser Verwendung, override_attributes oder default_attributes. Um dies zu nutzen, müssen Sie selbst Rezepte schreiben. Siehe die Präzedenz Abschnitt in untenstehenden Link für Attribut Vorrang

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