2013-10-10 13 views
9

Wie kann ich festlegen, dass Minions eine bestimmte SaltStack-Umgebung verwenden?Einrichten von Umgebungen mit SaltStack

Die GitFS backend tutorial besagt, dass Zweige Umgebungen abgebildet werden die Zweignamen als Bezeichner verwenden. Wie stelle ich diese Umgebungen meinen Minions zur Verfügung?

Als Beispiel, sagen wir I have a branch namens "pippy". Ich würde diesen Zweig gerne an bestimmte Schergen verteilen.

Es scheint, als ob ich die Umgebung über die Konfigurationsdatei des Minions einstellen kann. Gibt es andere Möglichkeiten, die vom Salzmeister aus möglich sind?

+1

Ich habe mich hier versucht herauszufinden, wie man Umgebungen verwenden, um State-Konfigurationen durch dev/test/prod zu versionieren und zu promoten. Ich bin mir nicht sicher, ob dies der Anwendungsfall dafür ist, da ich auf einige Probleme gestoßen bin. Ich habe ausführlich darüber in der Mailingliste geschrieben: https://groups.google.com/forum/#!topic/salt-users/4P9YpaFdRTQ – thaddeusmt

Antwort

16

Der Schlüssel hier ist, dass die Datei top.sls Cross-Umgebung ist. Bevor wir darauf eingehen, ist es wichtig zu beachten, dass, während die meisten Zweige zu Umgebungen mit demselben Namen zugeordnet werden, die Ausnahme darin besteht, dass der Zweig master der base-Umgebung zugeordnet wird.

Wie auch immer, auf top.sls. In top.sls definieren Sie Ihre Umgebungen, welche Minions Mitglieder dieser Umgebung sind und welche Statusdateien von dieser Umgebung aus für eine ausgeführt werden.

base: 
    '*': 
    - basestate 
dev: 
    'webserver*dev*': 
    - webserver 
    'db*dev*': 
    - db 
qa: 
    'webserver*qa*': 
    - webserver 
    'db*qa*': 
    - db 
pippy: 
    'webserver*pippy*': 
    - webserver 
    'db*pippy*': 
    - db 

Also, alle Schergen die basestate.sls Datei aus der base Umgebung ausgeführt werden. Nur die gezielten Diener führen die Zustände aus jeder der anderen Umgebungen aus.

Es gibt viel mehr Informationen in the topfile documentation.

Das Definieren der Umgebungsoption in der minion-Konfiguration isoliert nur einen Minion auf eine bestimmte Umgebung. Es ist viel flexibler und leistungsfähiger, Ihre Umgebungen aus Ihrer Topdatei heraus zu definieren.

+1

Ich sehe jetzt. Ich habe die Topfile-Sektion übersprungen, weil ich dachte, dass meine 'top.sls' im git-Repo sein würden, und das war nicht die richtige Option, um über Zweige hinweg zu drängen (und Änderungen über top.sls hinweg). –

+1

Was passiert, wenn die Datei top.sls zwischen Zweigen unterschiedlich ist? –

+1

Es gibt einen Hinweis in der Mitte dieser Dokumentation, aber im Grunde wird die oberste Datei aus jeder Umgebung zu einer einzigen Top-Datenstruktur kombiniert. Die Basisumgebung wird in Konflikten gewinnen. Im Allgemeinen ist es am einfachsten, die oberste Datei in der Basisumgebung zu behalten. – basepi

Verwandte Themen