web-dev-qa-db-fra.com

Comment masquer les tâches ignorées dans Ansible

J'ai un rôle Ansible, par exemple

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

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

Mais je ne déploie qu'une seule application dans un appel de rôle. Lorsque je déploie plusieurs applications, j'appelle le rôle plusieurs fois. Mais à chaque fois, il y a beaucoup de skipped tasks output (de tâches qui ne passent pas condition), que je ne veux pas voir. Comment puis-je l'éviter?

14
32cupo

Ansible vous permet de contrôler sa sortie à l'aide de la commande personnalisée callbacks .

Dans ce cas, vous pouvez simplement utiliser le callback skippy qui ne produira rien sur une tâche ignorée.

9
ydaetskcoR

Je suppose que vous ne voulez pas voir les tâches ignorées dans la sortie lors de l'exécution de Ansible.

Définissez la valeur false dans le fichier ansible.cfg. 

display_skipped_hosts = false

Remarque. Il affichera toujours le nom de la tâche bien qu’il n’affiche plus "ignoré".

UPDATE: vous devez vous assurer que ansible.cfg se trouve bien dans le répertoire de travail actuel.

Extrait du fichier ansible.cfg.

ansible lira ANSIBLE_CONFIG, ansible.cfg dans le répertoire de travail actuel, .ansible.cfg dans le répertoire personnel ou /etc/ansible/ansible.cfg, quel qu’il soit trouve en premier.

Assurez-vous donc que vous définissez display_skipped_hosts = false dans le fichier ansible.cfg approprié.

Laissez-moi savoir comment vous allez

16
Omar E

Depuis ansible 2.4, un nom de plug-in de rappel full_skip a été ajouté pour supprimer le saut de noms de tâches et le mot-clé dans la sortie ansible. Vous pouvez essayer la configuration ci-dessous:

[defaults]
stdout_callback = full_skip
6
Leon Xie

Si cela ne vous dérange pas de perdre des couleurs, vous pouvez éviter les tâches ignorées en lançant la sortie dans sed:

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