Schnellste Weg zum sammeln von Fakten, die der Tatsache cache
Ich versuche, Ansible Arbeit mit --limit und das zu tun, brauche ich Fakten über andere hosts, die ich bin-caching mit fact_caching. Welchen Befehl soll ich ausführen, so dass es einfach sammelt alle Fakten auf den alle hosts und speichert Sie, ohne dass irgendwelche Aufgaben? So etwas wie die setup-Modul wäre perfekt, wenn es zwischengespeichert, die Fakten gesammelt, aber wie es scheint ist es nicht.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier ist, wie ich das problem lösen:
1.- Aktivieren Sie Fakten sammeln auf Ihrem playbook (Website.yml):
2.- Aktivieren Fakten caching auf ansible.cfg:
2.1.- Option 1 - Verwenden Sie dies, wenn Sie die Zeit für die Installation von redis:
2.2.- Option 2 - Verwenden Sie diese um zu testen, gerade jetzt, ist einfach, aber langsamer als redis:
3.- Aktualisieren oder erstellen Sie die Fakten cache. Um dies zu tun erstellen Sie eine neue Rolle (cache-update) mit nur einer Aufgabe: führen Sie ping. Wir verwenden Sie ping, da ist der einfachste und Schnellste ansible Aufgabe, so wird es uns helfen, aktualisieren Sie den cache wirklich schnell:
Grüße,
Erstellen Sie ein neues playbook mit nur einer Zeile:
ist und läuft, sammelt alle Fakten, und wenn fact_caching ist, wird der cache für die Verwendung in der Zukunft playbooks mit --limit.
Die absolute Schnellste Weg wäre, um zu machen verwenden von Ansible ist Tatsache caching, dass war eingeführt in der version 1.8. Es erfordert den Einsatz einer redis-server zum speichern von Fakten, sondern es wird die Speicherung von Fakten zwischen playbook läuft. Die Dokumentation beschreibt:
Das problem mit --limit ist, dass es ein limit, werden alle hosts, die Sie ansible wird die Interaktion mit, so wird es zu begrenzen, auch was spezielle host-Gruppe wie
all
auswirken wird. Wenn Sie nicht verwenden-zu beschränken, sondern stattdessen verwendet, host-Gruppen, dann könnte man etwas wie das hier tun:In diesem Beispiel, das erste Spiel zwingen würde, das Zusammentragen von Fakten für alle hosts, die Sie haben, da Sie angegeben
hosts: all
. Das zweite Spiel würde dann führen Sie die gewünschten Aufgaben, die auf den hosts in der Gruppemy_host_group
.setup
und Zielall
Gastgeber? So deine Fakten sind alle zwischengespeicherten ohne updates am system vorgenommen.Der folgenden ist ein Beispiel zeigt, wie die Verwendung
/usr/bin/ansible
zum ausführen eines ad-hoc-Aufgabe, die sammelt Fakten und speichert Sie in dem angegebenen Verzeichnis.Hier ist der Inhalt
facts.cfg
Und einer Beispiel-host-output