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/delegate_to/test_delegate_to.yml

102 lines
3.0 KiB
YAML

- hosts: testhost3
vars:
template_role: ./roles/test_template
output_dir: "{{ playbook_dir }}"
templated_var: foo
templated_dict: { 'hello': 'world' }
tasks:
- name: Test no delegate_to
setup:
register: setup_results
- assert:
that:
- '"127.0.0.3" in setup_results.ansible_facts.ansible_env["SSH_CONNECTION"]'
- name: Test delegate_to with host in inventory
setup:
register: setup_results
delegate_to: testhost4
- debug: var=setup_results
- assert:
that:
- '"127.0.0.4" in setup_results.ansible_facts.ansible_env["SSH_CONNECTION"]'
- name: Test delegate_to with host not in inventory
setup:
register: setup_results
delegate_to: 127.0.0.254
- assert:
that:
- '"127.0.0.254" in setup_results.ansible_facts.ansible_env["SSH_CONNECTION"]'
#
# Smoketest some other modules do not error as a canary
#
- name: Test file works with delegate_to and a host in inventory
file: path={{ output_dir }}/foo.txt mode=0644 state=touch
delegate_to: testhost4
- name: Test file works with delegate_to and a host not in inventory
file: path={{ output_dir }}/tmp.txt mode=0644 state=touch
delegate_to: 127.0.0.254
- name: Test template works with delegate_to and a host in inventory
template: src={{ template_role }}/templates/foo.j2 dest={{ output_dir }}/foo.txt
delegate_to: testhost4
- name: Test template works with delegate_to and a host not in inventory
template: src={{ template_role }}/templates/foo.j2 dest={{ output_dir }}/foo.txt
delegate_to: 127.0.0.254
- name: remove test file
file: path={{ output_dir }}/foo.txt state=absent
- name: remove test file
file: path={{ output_dir }}/tmp.txt state=absent
- name: Use omit to thwart delegation
ping:
delegate_to: "{{ jenkins_install_key_on|default(omit) }}"
register: d_omitted
- name: Use empty to thwart delegation should fail
ping:
delegate_to: "{{ jenkins_install_key_on }}"
when: jenkins_install_key_on != ""
vars:
jenkins_install_key_on: ''
ignore_errors: true
register: d_empty
- name: Ensure previous 2 tests actually did what was expected
assert:
that:
- d_omitted is success
- d_empty is failed
- name: verify delegation with per host vars
hosts: testhost6
gather_facts: yes
tasks:
- debug: msg={{ansible_facts['env']}}
- name: ensure normal facts still work as expected
assert:
that:
- '"127.0.0.3" in ansible_facts["env"]["SSH_CONNECTION"]'
- name: Test delegate_to with other host defined using same named var
setup:
register: setup_results
delegate_to: testhost7
- debug: msg={{setup_results.ansible_facts.ansible_env}}
- name: verify ssh plugin resolves variable for ansible_host correctly
assert:
that:
- '"127.0.0.4" in setup_results.ansible_facts.ansible_env["SSH_CONNECTION"]'