Je n'ai pas assez de réputation pour voter en faveur ou commenter la réponse suggérant l'utilisation de variables de ligne de commande ( --extra-vars
), mais j'ai ceci à ajouter :
L'inconvénient de cette méthode est que le jeu échouera si vous ne définissez pas cette variable supplémentaire.
Vous pouvez empêcher l'échec de la lecture en l'absence d'une --extra-vars
en définissant une valeur par défaut dans le playbook lui-même :
---
- hosts: ...
#
vars:
thorough: false
#
tasks:
- name: apt - install nfs-common only when thorough is true
when: thorough | bool
apt:
cache_valid_time: 86400
force: yes
pkg:
- nfs-common
Remplacement par --extra-vars
fonctionnera toujours car les variables définies sur la ligne de commande ont la priorité sur toutes les autres définitions.
Le résultat est que la pièce se déroule sans erreur lorsque thorough
n'est pas changé en true
sur la ligne de commande.
2 votes
Il semble que ce dont vous avez besoin soit un paramètre de tâche tel que limit_to_tags : foo qui n'existe pas et je ne pense pas que cela soit possible pour le moment. Une implémentation future doit également prévoir de déterminer s'il faut AND ou OR ces balises ensemble.
0 votes
Jetez un coup d'œil à ma réponse dans "Ansible - Default/Explicit Tags". stackoverflow.com/questions/28789912/