You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
ansible/test/integration/targets/environment/test_environment.yml

174 lines
4.2 KiB
YAML

- 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' }}"