J'utilise le module cloud ec2_asg dans ansible pour mettre à jour un groupe Auto-Scaling. J'essaye de faire de ce rôle un rôle pour que je puisse l'appliquer à plusieurs playbooks, et je me demandais si je pouvais passer les valeurs des tags en tant que variables.Dans Ansible puis-je passer un dictionnaire à un module de nuage en tant que variable?
Sans variables, la tâche asg ressemble à:
ec2_asg:
name: "test_app"
tags:
- Environment: Production
- Name: test_app
Et je sais que je pourrais aussi le faire:
ec2_asg:
name: {{asg_name}}"
tags:
- Environment: "{{asg_tag_env}}"
- Name: "{{asg_tag_name}}"
Mais je suis curieux de savoir si dans mes group_vars je peux passer tous les marquage informations en tant var, par exemple
asg_tags: "{'tags': {'Environment': Production, 'Name': test_app}}" #option1
ou
asg_tags: "{'Environment': Production, 'Name': test_app}" #option2
Lorsque je tente peut appeler dans le module ec2_asg via
#option1
ec2_asg
name: "{{asg_name}}"
"{{asg_tags}}"
cela ne semble pas fonctionner, que le module ne comprend pas l'index racine du dictionnaire est l'option balises que vous spécifiez dans le module ec2_asg.
Je viens d'obtenir une erreur de syntaxe lors du chargement de YAML.
et si je tente
#option2
ec2_asg
name: "{{asg_name}}"
tags: "{{asg_tags}}"
je reviens une erreur de ansible indiquant:
pour k, v dans tag.items(): \ nAttributeError: objet 'str' n'a pas d'attribut 'éléments' \ n »
Soit ce n'est pas pris en charge, ou je ne sais pas comment structurer la variable de sorte que le module ec2_asg lit dans les balises correctement et sait comment les appliquer.
il est possible, mais le garçon était-ce gênant pour comprendre.Malheureusement, je n'ai plus accès à ce code - emploi passé –
Ouais, je vous entends là, je me dis que je suis proche, mais j'ai atteint un barrage routier – tman