This looks to be because the system is able to "early resolve" the variable
cluster_name and it tries to do so too soon.

Can you make sure there is a bug filed on this in github?

Thank you!


On Wed, Apr 9, 2014 at 11:50 AM, Stephen Gargan <[email protected]>wrote:

> I'm seeing an issue with variable substitution between versions 1.5.3 and
> 1.5.4.
>
> I have an include file that I use to create vm instances,
> create_instance.yml and a playbook create_cluster.yml that I use to spin up
> all the instances for the cluster in one go. I have variables in my
> group_vars that I use to configure the cluster e.g. the cluster_name and
> when I spin up a new cluster I usually override these using the extras vars
> switch -e
>
> the create_cluster looks something like the following
>
> - hosts: localhost
>   connection: local
>   gather_facts: False
>
>   tasks:
>   - {include: create_instance.yml,
>       tags: {
>         hostname: 'blah_server1',
>         ansible_groups: ["{{cluster_name}}", 'blah-servers'],
>         cluster_name: "{{cluster_name}}"
>       }
>     }
>
> create_instance.yml looks like
>
> - debug: msg="creating instance for cluster '{{ cluster_name }}'
> '{{tags}}' "
>
>
> group_vars/all
>
> cluster_name: dev
>
> For instance to spin up a new 'qa' cluster, I would issue
>
>  ansible-playbook -i hosts create_cluster.yml -e cluster_name=qa
>
> Up until recently this would correctly override the cluster_name variable
> as expected and produce the output below. (Specifically notice how the
> cluster_name is set to qa in the debug message)
>
>
> PLAY [localhost]
> **************************************************************
>
> TASK: [debug msg="creating instance for cluster 'qa' '{'cluster_name':
> u'qa', 'hostname': 'blah_server1', 'ansible_groups': [u'qa',
> 'blah-servers']}' "] ***
> ok: [127.0.0.1] => {
>     "item": "",
>     "msg": "creating instance for cluster 'qa' '{'cluster_name': u'qa',
> 'hostname': 'blah_server1', 'ansible_groups': [u'qa', 'blah-servers']}' "
> }
>
> Between 1.5.3 and 1.5.4 this behavior has changed, running it with 1.5.4
> produces.
>
> PLAY [localhost]
> **************************************************************
>
> TASK: [debug msg="creating instance for cluster 'qa' '{'cluster_name':
> u'qa', 'hostname': 'blah_server1', 'ansible_groups': [u'qa',
> 'blah-servers']}' "] ***
> ok: [127.0.0.1] => {
>     "item": "",
>     "msg": "creating instance for cluster 'qa' '{'cluster_name': u'dev',
> 'hostname': 'blah_server1', 'ansible_groups': [u'dev', 'blah-servers']}' "
> }
>
> Notice how the variable is correctly substituted in the task listing, but
> in the msg it is not overridden correctly at all and is still 'dev'. This
> causes me to spin up instances into the wrong cluster and in other
> playbooks that configure the cluster it applies changes to incorrect
> machines.
>
> The changes between 1.5.3 and 1.5.4 are very limited, I think its related
> to the split from SETUP_CACHE into VARS_CACHE, but I've not tracked it down
> yet. Anyone any insight into what might have happened?
>
> A gist of the files can be found here
>
> https://gist.github.com/10285167
>
> Thanks,
>
> Steve.
>
> --
> 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/db1b5c53-86ec-4d06-bea2-bad50fa7a6f2%40googlegroups.com<https://groups.google.com/d/msgid/ansible-project/db1b5c53-86ec-4d06-bea2-bad50fa7a6f2%40googlegroups.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%2BnsWgzG_wTad4aKrxu3bo6-q9WO4VEdRnOG4rvM%3DxT9Aj3iqA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to