Ich habe ein Playbook, das einen Redis-Cluster und Nussknacker als Proxy einrichten wird. Welche Hosts welche Rollen spielen, wird pro Gruppe definiert. Ich möchte vor dem Ausführen der Aufgaben eine Plausibilitätsprüfung hinzufügen, das heißt:
Ich habe schon eine Lösung, obwohl ich denke, dass es ziemlich hässlich ist und dachte, dass es etwas besseres geben muss, aber ich kann es einfach nicht finden. Ich führe derzeit eine lokale Aufgabe aus, die das Playbook mit dem Parameter --list-hosts erneut aufruft und die Ausgabe überprüft.
%Vor%Das funktioniert, aber gibt es nicht einfach eine Möglichkeit, die Anzahl der Hosts in einer Gruppe ohne diesen zusätzlichen Anruf zu überprüfen?
(Disclaimer: Ich fühlte, dass ich nach einem ähnlichen Problem und herauszufinden, dass ich die andere Antwort hier korrigieren sollte.)
Was Woodham über die Verwendung von Jinja2-Filtern erwähnte, ist korrekt, wurde aber falsch verwendet. Sie können in Playbooks verwendet werden, aber Sie sollten sie auf diese Weise verwenden:
%Vor%Wie Sie sehen, können wir Filter auf diese Weise einfach verketten und später können wir diese Variable überprüfen:
%Vor%Sie sollten dies mit magischen Variablen tun können. (Siehe Ansible-Dokumentation hier: Ссылка )
Um die Anzahl der Hosts in einer Gruppe zu ermitteln, können Sie die Gruppe mit groups['group_name']
abrufen. Dann können Sie den Jinja2-Filer length
( Ссылка ) verwenden, um die Länge dieser Gruppe zu erhalten.
z. (in einem Spielbuch)
%Vor%Tags und Links ansible ansible-playbook