Ansible: Wie aktualisiere ich das Host-Inventar zur Laufzeit und füge eine Pause hinzu, während Playbook ausgeführt wird?

Veröffentlicht: 2022-02-14

So aktualisieren Sie das Hostinventar zur Laufzeit und fügen eine Pause hinzu, während Sie das Playbook ausführen

Auf Crunchify haben wir so viele Tutorials zu Ansible veröffentlicht, und dieses wird sich darauf konzentrieren, How to Refresh Host Inventory zur Laufzeit aktualisiert und beim Ausführen von Aufgaben Add a Pause einfügt.

Betrachten wir dieses einfache Amazon EC2-VM-Erstellungsszenario:

  • Sie führen ein Amazon EC2 Ansible-Skript aus, das eine VM erzeugt, und Sie erfassen öffentliche IPs dynamisch im Skript.
  • Während der Ausführung fügen Sie die öffentliche IP dieser VM zur hosts -Datei unter der Gruppe [crunchify] .
  • Verwenden Sie in der folgenden Aufgabe die neu hinzugefügte öffentliche IP, die der Hosts-Datei hinzugefügt wurde, und installieren Sie Java darauf.
  • Wenn Sie refresh_inventory " nicht verwenden, wird die neu hinzugefügte IP nicht übernommen und Sie sehen den gleichen Fehler wie unten.

Haben Sie außerdem eine der folgenden Fragen?

  • So laden Sie das dynamic inventory von Ansible neu
  • Schritte zur dynamischen Bestandsaktualisierung von Ansible
  • Kann ich das Hostinventar aktualisieren und neue Hosts im same playbook verwenden?
  • Ansible Dynamic Inventory kann die neuesten EC2-Informationen nicht abrufen – warum?

Lass uns anfangen:

Schritt 1

Befolgen Sie das Tutorial zum spawn Amazon EC2 VM instance remotely using Ansible vollständig.

Wie erstelle, starte und konfiguriere ich eine Amazon EC2-Instanz mit einem einfachen Ansible-Skript? (VM aus der Ferne spawnen)

Schritt 2

Suchen Sie in der Datei crunchify-ec2.yml nach einer der folgenden Aufgaben.

Wie Sie hier sehen, erfassen wir nach der Erstellung von Amazon EC2 VM die öffentliche IP der VM und speichern sie in hosts -Datei

Wenn Sie einige zusätzliche Aufgaben in derselben .yml file IPs nicht automatisch geladen. Fügen Sie einfach die folgende Zeile zu Ihrem Ansible Playbook hinzu und es aktualisiert automatisch Ihre gesamte Inventarliste.

Auf die gleiche Weise, wenn Sie warten möchten, fügen Sie einfach die folgende Zeile hinzu:

Das obige Tag führt zu einer minutenlangen Wartezeit in Ihrem Ansible-Playbook.

Aktualisiertes Ansible Playbook für Amazon EC2 mit Wait und Meta Refresh

Aktualisiertes Ansible Playbook für Amazon EC2 mit Wait und Meta Refresh – Crunchify Tips

Hier ist mein Beispieltest Ansible Playbook:

Dateiname: crunchify-refresh-hostfile-pause-1min.yml

Ausgabe:

Führen Sie einfach Ihr Ansible Playbook erneut aus und Sie werden das erfolgreiche Ergebnis wie unten sehen.

Das ist es. Glückwünsche. Sie haben Ansible Playbook erfolgreich ausgeführt.

Wenn Sie nach allen Ansible-Tutorials suchen, folgen Sie bitte der Ansible Archive-Seite.