|
|
|
- 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: 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"]'
|