2013-10-10 1 views
9

Come si utilizzano i minion per utilizzare un particolare ambiente SaltStack?Impostazione degli ambienti con SaltStack

Le GitFS backend tutorial stati che rami saranno mappati ad ambienti che utilizzano il nome del ramo come identificatore. Come espongo questi ambienti ai miei seguaci?

Ad esempio, diciamo I have a branch denominato "pippy". Mi piacerebbe schierare quel ramo per particolari servitori.

Sembra che posso impostare l'ambiente tramite il file di configurazione del minion. Ci sono altri modi che possono essere fatti dal maestro del sale?

+1

Mi sono ritrovato qui a cercare di capire come utilizzare gli ambienti per la versione e promuovere le configurazioni di stato tramite dev/test/prod. Non sono sicuro che questo sia il caso d'uso per questo, dal momento che ho incontrato alcuni problemi. Ne ho parlato più dettagliatamente nella mailing list: https://groups.google.com/forum/#!topic/salt-users/4P9YpaFdRTQ – thaddeusmt

risposta

16

La chiave qui è che il file top.sls è cross-environment. Prima di saltare a questo, è importante notare che mentre la maggior parte dei rami verranno mappati in ambienti con lo stesso nome, l'eccezione è che il ramo master verrà mappato sull'ambiente base.

Ad ogni modo, fino a top.sls. In top.sls si definiscono i propri ambienti, quali membri sono membri di quell'ambiente e quali file di stato verranno eseguiti da quell'ambiente per un state.highstate.

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

Quindi, tutti i servitori verrà eseguito il file basestate.sls dall'ambiente base. Solo i minion mirati eseguiranno gli stati da ciascuno degli altri ambienti.

C'è molte più informazioni in the topfile documentation.

La definizione dell'opzione di ambiente nella configurazione di minion isola solo un servitore in un ambiente specifico. È molto più flessibile e potente per definire i tuoi ambienti dal tuo topfile.

+1

Vedo ora. Continuavo a saltare la sezione dei topfile pensando che il mio 'top.sls' sarebbe stato nel repository git, e tale non era l'opzione giusta per spingere tra i rami (e le modifiche su top.sls). –

+1

Cosa succede se il file top.sls differisce da un ramo all'altro? –

+1

C'è una nota a metà circa in quella documentazione, ma fondamentalmente il file principale di ogni ambiente sarà riunito in un'unica struttura dati top. L'ambiente di base vincerà nei conflitti. In genere, è più semplice mantenere il file principale nell'ambiente di base (master). – basepi