Ansible: come aggiornare l'inventario dell'host in fase di esecuzione e aggiungere una pausa durante l'esecuzione del Playbook?

Pubblicato: 2022-02-14

Come aggiornare l'inventario dell'host in fase di esecuzione e aggiungere una pausa durante l'esecuzione del Playbook

Su Crunchify, abbiamo pubblicato così tanti tutorial su Ansible e questo si concentrerà su How to Refresh Host Inventory in runtime e Add a Pause durante l'esecuzione delle attività.

Consideriamo questo semplice scenario di creazione di VM Amazon EC2:

  • Stai eseguendo lo script Amazon EC2 Ansible che genera una VM e stai acquisendo dinamicamente IP pubblici nello script.
  • Durante l'esecuzione: stai aggiungendo l'IP pubblico di quella VM al file hosts nel gruppo [crunchify] .
  • Nell'attività successiva, utilizzare l'IP pubblico appena aggiunto che è stato aggiunto al file hosts e installare Java su di esso.
  • Se non usi refresh_inventory , non lo raccoglierà l'IP appena aggiunto e vedrai un errore come di seguito.

Inoltre, hai una delle seguenti domande?

  • Come ricaricare l' dynamic inventory di Ansible
  • Passaggi di aggiornamento dinamico dell'inventario Ansible
  • Posso aggiornare l'inventario degli host e utilizzare nuovi host nello same playbook ?
  • Ansible Dynamic Inventory non riesce a ottenere le informazioni EC2 più recenti: perché?

Iniziamo:

Passo 1

Segui completamente il tutorial su come spawn Amazon EC2 VM instance remotely using Ansible ?

Come creare, avviare e configurare un'istanza Amazon EC2 utilizzando un semplice Ansible Script? (genera la VM in remoto)

Passo 2

Cerca un'attività di seguito nel file crunchify-ec2.yml .

Come puoi vedere qui, dopo aver creato Amazon EC2 VM , acquisiamo l'IP pubblico della VM e lo memorizziamo nel file hosts

Se hai alcune attività aggiuntive nello stesso .yml file IP non verranno caricati automaticamente. Basta aggiungere la riga sottostante al tuo Ansible Playbook e aggiornerà automaticamente tutto il tuo elenco di inventario.

Allo stesso modo, se vuoi aggiungere wait, aggiungi la riga seguente:

Il tag sopra introdurrà un minuto di attesa nel tuo playbook Ansible.

Ansible Playbook aggiornato per Amazon EC2 con Wait e Meta Refresh

Ansible Playbook aggiornato per Amazon EC2 con Wait e Meta Refresh - Suggerimenti per Crunchify

Ecco il mio esempio di test Ansible Playbook:

Nome file: crunchify-refresh-hostfile-pause-1min.yml

Produzione:

Esegui di nuovo il tuo Ansible Playbook e vedrai il risultato positivo come di seguito.

Questo è tutto. Congratulazioni. Hai eseguito con successo Ansible Playbook.

Se stai cercando tutti i tutorial di Ansible, segui la pagina Archivio Ansible.