2017-07-24 3 views
0

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?

Répondre

0

Vous ne pouvez pas passer des balises en tant que paramètres aux rôles à l'intérieur de votre playbook. Ce que vous faites ici, c'est ajouter une autre balise à votre rôle de gestionnaire (renewal, gen_cert).

Au lieu de définir vos variables avec des variables, utilisez le drapeau --tags.

ansible-playbook -v -i sslhost.txt -e "APP_NAME=ssl-perf" --tags=renewal,gen_cert site.yml

+0

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

+1

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

+0

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