I am either missing something simple or ran into a bug.

I have a playbook that passes variable to a role as follows:


  roles:
    - { role: test_role, var1: 'some string', var2: "{{ some_var }}", var3: 
"{{ some_var2 }}" }


Now both some_var and some_var2 are set (verified with a debug before 
this)  

in the role I have the following:

- set_fact: var2 = "something"
  when: var2 is not defined

- set_fact: var3 = "something"
  when: var3 is not defined

- debug: "msg=' {{ var3 is not defined }} '"

- debug: "msg='{{ var2 }}  {{ var3 }}'"


Now the output is as follows

TASK: [test_role | set_fact var2 = something] ***
skipping: [10.0.0.1]

TASK: [test_role | set_fact var3 = something] ***
ok: [10.0.0.1]

TASK: [test_role | debug msg=' True '] 
***************************************
ok: [10.0.0.1] => {
    "item": "",
    "msg": " True "
}

TASK: [test_role | debug msg='{{var2}} {{var3}}'] ********
fatal: [10.0.0.1] => One or more undefined variables: 'var3' is undefined

So as you can see the var2 is passed through and is defined and so the 
set_fact is skipped. 
But var3 is not passed so the set_fact runs but it is still undefined 
afterwards.

I have tried changing the order of the variables in the playbook, renaming 
the variable and I always get the same problem.  Anyone know what I'm 
missing?  

Thanks,

-- 
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/a4cf3094-9453-4de0-9cc9-ff1caee83d14%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to