2 changed files with 70 additions and 0 deletions
@ -0,0 +1,21 @@ |
|||||
|
--- |
||||
|
|
||||
|
- name: Variables defined on tasks are local to those tasks |
||||
|
gather_facts: no |
||||
|
hosts: localhost |
||||
|
vars: |
||||
|
check: outter |
||||
|
tasks: |
||||
|
- block: |
||||
|
- debug: |
||||
|
var: check |
||||
|
- assert: |
||||
|
that: |
||||
|
- check == 'inner' |
||||
|
vars: |
||||
|
check: inner |
||||
|
- debug: |
||||
|
var: check |
||||
|
- assert: |
||||
|
that: |
||||
|
- check == 'outter' |
||||
@ -0,0 +1,49 @@ |
|||||
|
--- |
||||
|
|
||||
|
- name: Show how ansible defer variable evaluation to the last moment |
||||
|
gather_facts: no |
||||
|
hosts: localhost |
||||
|
vars: |
||||
|
output: '{{ input }}' |
||||
|
tasks: |
||||
|
- set_fact: |
||||
|
input: 'dummy' |
||||
|
- set_fact: |
||||
|
input: 'foo' |
||||
|
- debug: |
||||
|
var: output |
||||
|
- assert: |
||||
|
that: |
||||
|
# "output" contains the value of "input" at the time it has been used |
||||
|
- output == 'foo' |
||||
|
- set_fact: |
||||
|
input: bar |
||||
|
- debug: |
||||
|
var: output |
||||
|
- assert: |
||||
|
that: |
||||
|
- output == 'bar' |
||||
|
|
||||
|
- name: But the value of a fact is computed during assignation |
||||
|
gather_facts: no |
||||
|
hosts: localhost |
||||
|
tasks: |
||||
|
- set_fact: |
||||
|
input: test1 |
||||
|
# Now "output" is not a variable but a fact |
||||
|
- set_fact: |
||||
|
output: '{{ input }}' |
||||
|
- debug: |
||||
|
var: output |
||||
|
- assert: |
||||
|
that: |
||||
|
# "output" contains the value of "input" at the time it has been defined |
||||
|
- output == 'test1' |
||||
|
- set_fact: |
||||
|
input: test2 |
||||
|
- debug: |
||||
|
var: output |
||||
|
- assert: |
||||
|
that: |
||||
|
# "output" contains the value of "input" at the time it has been defined |
||||
|
- output == 'test1' |
||||
Loading…
Reference in new issue