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.
