Ich habe zum Beispiel eine Ansible-Rolle
---
- name: Deploy app1
include: deploy-app1.yml
when: 'deploy_project == "{{app1}}"'
- name: Deploy app2
include: deploy-app2.yml
when: 'deploy_project == "{{app2}}"'
Ich implementiere jedoch nur eine App in einem Rollenaufruf. Wenn ich mehrere Apps bereitstelle, rufe ich Rolle mehrmals an. Aber es gibt jedes Mal viel skipped tasks output
(von Aufgaben, die keine Bedingung bestehen), die ich nicht sehen möchte. Wie kann ich das vermeiden?
Mit Ansible können Sie die Ausgabe mithilfe von benutzerdefinierten callbacks steuern.
In diesem Fall können Sie einfach die skippy
callback verwenden, die bei einer übersprungenen Aufgabe nichts ausgibt.
Ich gehe davon aus, dass Sie die übersprungenen Aufgaben in der Ausgabe nicht sehen möchten, während Sie Ansible ausführen.
Setzen Sie dies in der Datei ansible.cfg auf false.
display_skipped_hosts = false
Hinweis. Es wird immer noch der Name der Aufgabe ausgegeben, obwohl "übersprungen" nicht mehr angezeigt wird.
UPDATE: Übrigens müssen Sie sicherstellen, dass sich die Datei "ansible.cfg" im aktuellen Arbeitsverzeichnis befindet.
Entnommen aus der ansible.cfg-Datei.
ansible liest ANSIBLE_CONFIG, ansible.cfg im aktuellen Arbeitsverzeichnis, .ansible.cfg in das Ausgangsverzeichnis oder /etc/ansible/ansible.cfg, je nachdem, was auch immer es ist findet zuerst.
Stellen Sie also sicher, dass Sie display_skipped_hosts = false
in der rechten Datei ansible.cfg einstellen.
Lass mich wissen, wie es dir geht
Seit ansible 2.4 wurde ein Callback-Plugin-Name full_skip hinzugefügt, um das Überspringen von Tasknamen und das Überspringen von Schlüsselwörtern in der ansible-Ausgabe zu verhindern. Sie können die folgende Konfiguration für Ansible ausprobieren:
[defaults]
stdout_callback = full_skip
Wenn Sie nichts dagegen haben, Farben zu verlieren, können Sie die übersprungenen Aufgaben lösen, indem Sie die Ausgabe durch sed weiterleiten:
ansible-playbook whatever.yml | sed -nr '/^TASK/{h;n;/^skipping:/{n;b};H;x};p'