|
|
|
- hosts: testhost
|
|
|
|
gather_facts: no
|
|
|
|
tasks:
|
|
|
|
- name: get PATH from target
|
|
|
|
command: echo $PATH
|
|
|
|
register: target_path
|
|
|
|
|
|
|
|
- hosts: testhost
|
|
|
|
vars:
|
|
|
|
- test1:
|
|
|
|
key1: val1
|
|
|
|
environment:
|
|
|
|
PATH: '{{ansible_env.PATH + ":/lola"}}'
|
|
|
|
lola: 'ido'
|
|
|
|
tasks:
|
|
|
|
- name: ensure special case with ansible_env is skipped but others still work
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- target_path.stdout == ansible_env.PATH
|
|
|
|
- "'/lola' not in ansible_env.PATH"
|
|
|
|
- ansible_env.lola == 'ido'
|
|
|
|
|
|
|
|
- name: check that envvar does not exist
|
|
|
|
shell: echo $key1
|
|
|
|
register: test_env
|
|
|
|
|
|
|
|
- name: assert no val in stdout
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- '"val1" not in test_env.stdout_lines'
|
|
|
|
|
|
|
|
- name: check that envvar does exist
|
|
|
|
shell: echo $key1
|
|
|
|
environment: "{{test1}}"
|
|
|
|
register: test_env2
|
|
|
|
|
|
|
|
- name: assert val1 in stdout
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- '"val1" in test_env2.stdout_lines'
|
|
|
|
|
|
|
|
- hosts: testhost
|
|
|
|
vars:
|
|
|
|
- test1:
|
|
|
|
key1: val1
|
|
|
|
- test2:
|
|
|
|
key1: not1
|
|
|
|
other1: val2
|
|
|
|
environment: "{{test1}}"
|
|
|
|
tasks:
|
|
|
|
- name: check that play envvar does exist
|
|
|
|
shell: echo $key1
|
|
|
|
register: test_env3
|
|
|
|
|
|
|
|
- name: assert val1 in stdout
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- '"val1" in test_env3.stdout_lines'
|
|
|
|
|
|
|
|
- name: check that task envvar does exist
|
|
|
|
shell: echo $key1; echo $other1
|
|
|
|
register: test_env4
|
|
|
|
environment: "{{test2}}"
|
|
|
|
|
|
|
|
- name: assert all vars appear as expected
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- '"val1" not in test_env4.stdout_lines'
|
|
|
|
- '"not1" in test_env4.stdout_lines'
|
|
|
|
- '"val2" in test_env4.stdout_lines'
|
|
|
|
|
|
|
|
- block:
|
|
|
|
- name: check that task envvar does exist in block
|
|
|
|
shell: echo $key1; echo $other1
|
|
|
|
register: test_env5
|
|
|
|
|
|
|
|
- name: assert all vars appear as expected in block
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- '"val1" not in test_env5.stdout_lines'
|
|
|
|
- '"not1" in test_env5.stdout_lines'
|
|
|
|
- '"val2" in test_env5.stdout_lines'
|
|
|
|
environment: "{{test2}}"
|
|
|
|
|
|
|
|
- name: test setting environment while using loops
|
|
|
|
hosts: testhost
|
|
|
|
environment:
|
|
|
|
foo: outer
|
|
|
|
tasks:
|
|
|
|
- name: verify foo==outer
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==outer
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "{{ test_foo.results[0].stdout == 'outer' }}"
|
|
|
|
|
|
|
|
- name: set environment on a task
|
|
|
|
environment:
|
|
|
|
foo: in_task
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==in_task
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "test_foo.results[0].stdout == 'in_task'"
|
|
|
|
|
|
|
|
- name: test that the outer env var is set appropriately still
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==outer
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "{{ test_foo.results[0].stdout == 'outer' }}"
|
|
|
|
|
|
|
|
- name: set environment on a block
|
|
|
|
environment:
|
|
|
|
foo: in_block
|
|
|
|
block:
|
|
|
|
- name: test the environment is set in the block
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==in_block
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "test_foo.results[0].stdout == 'in_block'"
|
|
|
|
|
|
|
|
- name: test setting environment in a task inside a block
|
|
|
|
environment:
|
|
|
|
foo: in_block_in_task
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==in_block_in_task
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "test_foo.results[0].stdout == 'in_block_in_task'"
|
|
|
|
|
|
|
|
- name: test the environment var is set to the parent value
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==in_block
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "test_foo.results[0].stdout == 'in_block'"
|
|
|
|
|
|
|
|
- name: test the env var foo has the initial value
|
|
|
|
command: /bin/echo $foo
|
|
|
|
loop:
|
|
|
|
- 1
|
|
|
|
register: test_foo
|
|
|
|
|
|
|
|
- name: assert foo==outer
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- "{{ test_foo.results[0].stdout == 'outer' }}"
|