When inside the {% %} part you are inside of jinja and don't need
special syntax to tell it that your using jinja variables. Something
like this should work:
{% for host in groups[deploy_env + '-web'] %}
server {{ host }} {{ host }}:80
{% endfor %}
On Tue, Jun 24, 2014 at 10:48 AM, Claus Strommer
<[email protected]> wrote:
> Hi there,
>
> I have a play with a role that creates a load balancer template. I've
> successfully tested it in my dev environment, using
>
>
> {% for host in groups['dev-web'] %}
> server {{ host }} {{ host }}:80
> {% endfor %}
>
>
> the 'dev-web' group is defined in my inventory, as well as 'stage-web',
> 'prod-web', etc. What I'd like to do is change this template so that it can
> be used in any environment. I am already passing a parameter upon calling
> the play, --extra-vars "deploy_env=dev". In the play itself I can use this
> variable to determine on which balancer the template gets applied, by using
> something like this:
>
>
> - hosts: [ '{{ deploy_env }}-bal' ]
> serial: 1
> vars_files:
> - /var/lib/ansible/vars/{{ deploy_env }}.yml
> roles:
> - role: "haproxy-webbal"
>
>
> However, if I try something similar in the template, e.g.
>
>
> {% for host in groups['{{ deploy_env }}-web'] %}
> server {{ host }} {{ host }}:80
> {% endfor %}
>
> I get this error:
>
>
> fatal: [stage-webbal-06.aws.primal.com] => {'msg': "One or more undefined
> variables: 'dict object' has no attribute '{{ deploy_env }}-varnish'",
> 'failed': True}
>
>
> It seems that {{ deploy_env }} is not being expanded, and it's being taken
> as a literal. Is this because it's within the {% %} section? If so, then
> what is the correct syntax for doing this? Alternatively, is there a
> cleaner way to approach this?
>
>
>
> --
> 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 [email protected].
> To post to this group, send email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/ansible-project/CABkDv%2B5o4bLiUiNgr-UxP9P8hWpe0SxkhPvhb-T25VrErrMvkw%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.
--
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/ansible-project/CAJQqANcG1mjVJXe%2BtR9e6ssk1mivcvtdFce5tfWns4ydOnFrgg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.