Ich hoffe, Sie können herausfinden, warum mein Playbook nicht wie erwartet abgeschlossen wird.Ansible Multi-Play-Playbook ignorieren ignoriert
ENVIRONMENT
- OSX El Capitan
- ansible 2.1.0.0
CONFIGURATION
Nichts Aufregendes:
[defaults]
roles_path=./roles
host_key_checking = False
ssh_args= -t -t
allow_world_readable_tmpfiles = True
PLAYBOOK
Ich habe ein einigermaßen kompliziertes Setup mit einer Anzahl von Spielen in einem Spielbuch.
Das Playbook wird gegen verschiedene Zielsysteme ausgeführt; die Produktionsstätte und ein Dev-Rig. (Bitte schlagen nicht ich sie kombinieren ... es ist ein IoT-System und komplex genug, wie es ist.)
meine hier etwas geschwärzt Textbuch:
- hosts: all
roles:
- ...
- hosts: xmpp_server
roles:
- ...
- hosts: audit_server
roles:
- ...
- hosts: elk_server
roles:
- ...
- hosts: all
roles:
- ...
Nun denken Sie bitte daran, dass ich ein IoT-Setup mit verschiedenen Redundanzen, Replikation und Verteilung läuft, obwohl es andere Möglichkeiten gibt, die Katze zu enthäuten, ist die obige Zerlegung in mehrere Spiele wirklich ordentlich für meine Einrichtung und ich würde es gerne behalten.
Auch wichtig: Ich habe keine audit_server
oder elk_server
Hosts auf meinem dev rig. Diese Gruppen sind derzeit leer, da ich an einem orthogonalen Problem arbeite und keine begrenzten Dev-Ressourcen benötige. Ich habe diese in der Produktion, nur nicht in der Entwicklung.
erwartetes Verhalten
Auf der Produktionsstätte ich all die Stücke erwarten auslösen und ausführen.
Auf dem Entwickler-Rig erwarte ich, dass das erste Spiel (all
) und das xmpp_server
Spiel zu laufen, die audit_server
und elk_server
spielt danach laufen zu überspringen und die letzte (all
) spielen.
tatsächliches Verhalten
Der Produktionsstandort funktioniert genau wie erwartet. Alle Spiele laufen.
Das dev Rig vervollständigt die xmpp_server
spielen als dev-piA
ist ein Mitglied der xmpp_server
Gruppe. Und dann hört es still auf. Kein Fehler, keine Information, nichts. Einfach direkt zur Play Recap. Hier ist die Ausgabe:
...
TASK [xmppserver : include] ****************************************************
included: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/./openfire.yml for dev-piA
TASK [xmppserver : Get openfire deb file] **************************************
ok: [dev-piA]
TASK [xmppserver : Install openfire deb file] **********************************
ok: [dev-piA]
TASK [xmppserver : Check if schema has been uploaded previously] ***************
ok: [dev-piA]
TASK [xmppserver : Install openfire schema to postgres db] *********************
skipping: [dev-piA]
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=3 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
Also, ich lief es mit -vvvvv
und bekam nichts mehr nützlich:
...
TASK [xmppserver : Install openfire schema to postgres db] *********************
task path: /Users/al/Studio/Projects/smc/ansible/roles/xmppserver/tasks/openfire.yml:14
skipping: [dev-piA] => {"changed": false, "skip_reason": "Conditional check failed", "skipped": true}
to retry, use: --limit @fel.retry
PLAY RECAP *********************************************************************
dev-vagrant1 : ok=0 changed=0 unreachable=1 failed=0
dev-piA : ok=106 changed=2 unreachable=0 failed=0
dev-piB : ok=77 changed=3 unreachable=0 failed=0
dev-piC : ok=77 changed=3 unreachable=0 failed=0
...
HELP
ERFORDERLICHAlso, meine Frage ist: warum das Textbuch nur dort stoppen? Was ist los?!
Es wird nicht explizit gesagt, dass für das audit_server play keine weiteren Hosts übrig sind; Das ist meine beste Schätzung. Es hört einfach auf, als würde es ein EOF treffen.
Ich bin völlig ratlos.
Edit: NB: Die Wiederholungsdatei enthält nur einen Verweis auf die vagabundierende Maschine, die gerade ausgeschaltet ist. Aber wenn die Existenz das Problem ist, dann ist die Logik von Ansible sehr fehlerhaft. Ich überprüfe jetzt nur für den Fall sowieso
Edit: OMFG es ist eigentlich die fehlende Vagabund-Box, die nichts mit einer gottverdammten Sache zu tun hat. Das ist schockierend und ich werde es als ein Problem mit Ansible aufwerfen. Aber ... Ich werde das hier lassen, für den Fall, dass jemand das gleiche Problem hat und es googelt.
Edit: Zur Verdeutlichung, die Vagrant-Maschine ist nicht in den Host-Listen für alle Spiele, mit Ausnahme der speziellen 'alle' Fall.
Die Vagrant-Maschine ist kein Mitglied der Host-Liste für irgendwelche der Spiele, außer natürlich "alle". Diese Erklärung gilt leider nicht für mein Setup. –
Aber Sie haben Recht, darauf hinzuweisen, dass es trotzdem eine informative Zeile über die ignorierten Spiele geben sollte. Das ist es, was es für mich wie einen Käfer riechen lässt. –