Come eseguire più playbook in ordine con Ansible?


16

Sto lavorando su diversi playbook Ansible per creare una nuova istanza del server. Ci sono circa 15 diversi playbook che devo eseguire in un ordine specifico per far girare correttamente un server.

Il mio pensiero iniziale era quello di scrivere uno script di shell che lo eseguisse ansible-playbook playbook_name.ymle duplicarlo di una voce per ogni playbook che devo eseguire.

Esiste un modo più intelligente / migliore per farlo usando un playbook master e, in caso affermativo, che aspetto avrebbe (gli esempi sono apprezzati).

Potrei scrivere un playbook monolitico che fa tutto, ma ci sono alcuni giochi che vengono eseguiti prima come root e poi come utente sudo.


2
usa includi nel tuo playbook principale docs.ansible.com/ansible/playbooks_roles.html
c4f4t0r

1
Per gestire il caso dell'esecuzione come root, quindi come utente sudo, è possibile utilizzare la funzione di blocco : posizionare la become:parte alla fine di ciascun blocco. Tuttavia, potrebbe essere necessario creare una nuova riproduzione per passare l'utente della connessione da utente root a utente sudo.
RichVel,

Risposte:


15

Costruisci molti sub-playbook e aggregali tramite istruzioni include.

- include: playbook-one.yml
- include: playbook-two.yml

Se i tuoi playbook devono essere eseguiti in ordine e se tutti sono obbligatori, crea un playbook principale e includi i file con le attività. Un playbook dovrebbe essere sempre un processo chiuso.


2
potresti approfondire l'ultima parte della tua risposta? cosa intendi con "Un playbook dovrebbe essere sempre un processo chiuso". ?
Mike Vella,

1
C'è un modo per specificare tutti i playbook usando l'espressione regolare? Ad esempio:- include : books/*.yml
blueskin,

8
Sembra includedeprecato. docs.ansible.com/ansible/latest/playbooks_reuse.html Penso che import_playbook: foosia la strada giusta da percorrere, ma non sono molto esperto.
Andrew,

11

Per le versioni più recenti di Ansilbe, puoi creare molti sub-playbook e aggregarli tramite le istruzioni import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.