"
- hosts: [ '{{ deploy_env }}-bal' ]
"
This is gross and I would recommend not doing this.
Instead consider seperating your different environments into different
inventory files (-i production), and having the host group just named "bal"
in this case. You can still put nodes in different groups and keep your
group_vars/ and host_vars/ directories all together.
On Tue, Jun 24, 2014 at 11:13 AM, Claus Strommer <[email protected]>
wrote:
> d'oh! I should have known that. Thanks a bunch!
>
>
> On Tue, Jun 24, 2014 at 11:05 AM, Michael Peters <
> [email protected]> wrote:
>
>> 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.
>>
>
> --
> 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%2B6vkXOH3_aMgfm8TCkgXCxZW9%3DyAuKA6m88QEBQDf78Kg%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CABkDv%2B6vkXOH3_aMgfm8TCkgXCxZW9%3DyAuKA6m88QEBQDf78Kg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>
> 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/CA%2BnsWgzE-ac358mHiq7ejr6-fW-sxAvH-7xaonK97iBa34D1CA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.