it-swarm.dev

Come posso nascondere l'output delle attività saltate in Ansible

Ho un ruolo di Ansible, per esempio

---
- name: Deploy app1
  include: deploy-app1.yml
  when: 'deploy_project == "{{app1}}"'

- name: Deploy app2
  include: deploy-app2.yml
  when: 'deploy_project == "{{app2}}"'

Ma distribuisco solo un'app in una chiamata di ruolo. Quando distribuisco diverse app, chiamo il ruolo più volte. Ma ogni volta c'è un sacco di skipped tasks output (da attività che non passano le condizioni), che non voglio vedere. Come posso evitarlo?

14
32cupo

Ansible ti permette di controllare il suo output usando custom callbacks .

In questo caso puoi semplicemente usare il callback skippy che non produrrà nulla su un'attività saltata.

9
ydaetskcoR

Suppongo che tu non voglia vedere i compiti saltati nell'output durante l'esecuzione di Ansible.

Impostare questo su false nel file ansible.cfg. 

display_skipped_hosts = false

Nota. Produrrà comunque il nome dell'attività anche se non verrà più visualizzato "saltato".

AGGIORNAMENTO: dal modo in cui è necessario assicurarsi che ansible.cfg si trovi nella directory di lavoro corrente.

Tratto dal file ansible.cfg.

ansible leggerà ANSIBLE_CONFIG, ansible.cfg nella directory di lavoro corrente, .ansible.cfg in la directory home o /etc/ansible/ansible.cfg, qualunque essa sia trova prima.

Assicurati quindi di impostare display_skipped_hosts = false nel file ansible.cfg corretto.

Fammi sapere come va

16
Omar E

Poiché ansible 2.4, è stato aggiunto un nome plugin di callback full_skip per sopprimere il salto dei nomi delle attività e saltare la parola chiave nell'output ansible. Puoi provare la seguente configurazione ansible:

[defaults]
stdout_callback = full_skip
6
Leon Xie

Se non ti dispiace perdere i colori, puoi eliminare i compiti saltati collegando l'output tramite sed:

ansible-playbook whatever.yml | sed -nr '/^TASK/{h;n;/^skipping:/{n;b};H;x};p'
0
Max Murphy