it-swarm.com.de

Wie kann ich übersprungene Aufgaben in Ansible ausblenden?

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?

14
32cupo

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.

9
ydaetskcoR

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

16
Omar E

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
6
Leon Xie

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'
0
Max Murphy