Je passe une variable ACTION à site.yml comme ci-dessous. Mon site.yml a un rôle ansible appelé "manager" auquel je passe la variable ACTION en tant que balises. Voir ci-dessous.Passer une variable en tant que balises aux rôles ansibles ne fonctionne pas
more site.yml
- hosts: "{{APP_NAME}}"
user: "{{USER}}"
roles:
- { role: manager, APPLICATION_NAME: "{{ APP_NAME }}", tags: [ '{{ ACTION }}' ] }
Le rôle de gestionnaire des tâches/main.yml ressemble à ce
more manager/tasks/main.yml
---
# tasks file for manager
- include: manager_pull.yml
tags: renewal
- include: manager_gen.yml
tags: gen_request
- include: manager_gencert.yml
tags: gen_cert
- include: manager_push.yml
tags: install
Je me attendais que manager_pull.yml et manager_gencert.yml à inclure dans les rôles, mais la sortie montre que tous les comprennent dans le rôle de gestionnaire est inclus/invoqué.
Ma version ansible est: 2.1.0.0
Pouvez-vous expliquer pourquoi s'il vous plaît je ne suis pas en mesure de passer variable d'action en tant que balises à Ansible rôle?
Sinon, quelqu'un peut-il également me dire si et comment serait-il possible de passer des balises au lieu de la variable ACTION au site.yml et de faire fonctionner cela?
J'ai essayé votre commande, mais il est encore tous les y compris YMLs dans le gestionnaire/tâches/main.yml au lieu de seulement deux. Quels autres changements dois-je faire pour que cela fonctionne? Comment puis-je passer -tags = renouvellement, gencert au rôle ansible appelé manager/task/main.yml? – shifahim
Ajoutez-vous toujours des balises avec la variable 'ACTION' au rôle de gestionnaire dans votre playbook? Y at-il des balises attachées aux tâches dans manager_pull.yml, manager_gen.yml, manager_gencert.yml ou manager_push.yml? – kfreezy
Vous avez raison. Avec votre commande suggérée, j'ai dû retirer tag [] de site.yml pour le faire fonctionner. Voici à quoi ressemble le rôle dans le fichier site.yml après la résolution du problème - {role: manager, APPLICATION_NAME: "{{APP_NAME}}"} – shifahim