This appears to be the same issue 
as https://github.com/ansible/ansible/issues/6677 which has ben fixed and 
should roll out with 1.6.

On Wednesday, April 9, 2014 8:50:39 AM UTC-7, Stephen Gargan 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/7277838a-d2ea-4dcd-8cfb-b8e03d1b61bc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to