Hey folks, Ansible 1.9.2 here. I've been recently working on moving us over from static inventories to using the ec2 script. One constraint I have is that I separate different environments within the same AWS account by the Environment tag. In this case I'm working on Environment=dev, which in my file tree has its own folder (see tree at the bottom). The problem I'm having is that I can't figure out how to set {{ env }} in my *- hosts:* from my all.yml file in group_vars. It looks like group_vars as NOT read at the time of the playbook yml file templating, but only afterwards. As an example, assuming this all.yml:
--- env: dev and this foo.yml: --- - hosts: "{{ 'tag_Role_utilities:&tag_Environment_' + env }}" tasks: - debug: var=env this playbook will not work: ansible-playbook -i inventories/dev/ec2.py foo.yml PLAY [{{ 'tag_Role_utilities:&tag_Environment_' + env }}] ********************* skipping: no hosts matched but if I pass the env variable as --extra-vars, then it will: ansible-playbook -i inventories/dev/ec2.py foo.yml --extra-vars="env=dev" PLAY [tag_Role_utilities:&tag_Environment_dev] ******************************** GATHERING FACTS *************************************************************** ok: [172.31.57.124] TASK: [debug var=env] ********************************************************* ok: [172.31.57.124] => { "var": { "env": "dev" } } PLAY RECAP ******************************************************************** 172.31.57.124 : ok=2 changed=0 unreachable=0 failed=0 Note that here the value of "env" in the debug module is actually correctly populated from the all.yml group_vars file. e.g. if I rename that var name in both the debug module and all.yml to something like inventory_env, it will get the value correctly. Is this by design? Is there no way for me to template the tags in *- host:* without using an --extra-vars? Any way I can use group_vars for playbook templating? It would save me the need to write my own wrapper script around ansible that would set --extra-vars for me for each separate environment I have. My inventories/dev tree structure is as follows: dev ├── ec2.ini ├── ec2.py ├── group_vars │ ├── all │ │ ├── all.yml │ │ └── secrets.yml │ ├── apps │ └── utils └── hosts Thank you. -- You received this message because you are subscribed to the Google Groups "Ansible Project" group. To unsubscribe from this group and stop receiving emails from it, send an email to ansible-project+unsubscr...@googlegroups.com. To post to this group, send email to ansible-project@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/b76bb9ce-174f-440e-8ddb-e56773555f4d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.