- name: ensure they are different hosts: localhost tasks: - name: dont game me assert: msg: 'expected different values but got ((hostvars["testhost"]["ansible_python_interpreter"]}} and {{hostvars["testhost2"]["ansible_python_interpreter"]}}' that: - hostvars["testhost"]["ansible_python_interpreter"] != hostvars["testhost2"]["ansible_python_interpreter"] - name: no delegation hosts: all gather_facts: false tasks: - name: detect interpreter used by each host detect_interpreter: register: baseline - name: verify it assert: msg: 'expected {{ansible_python_interpreter}} but got {{baseline.found|basename}}' that: - baseline.found|basename == ansible_python_interpreter - name: actual test hosts: testhost gather_facts: false tasks: - name: original host detect_interpreter: register: found - name: verify it orig host assert: msg: 'expected {{ansible_python_interpreter}} but got {{found.found|basename}}' that: - found.found|basename == ansible_python_interpreter - name: delegated host detect_interpreter: register: found2 delegate_to: testhost2 - name: verify it delegated assert: msg: 'expected {{hostvars["testhost2"]["ansible_python_interpreter"]}} but got {{found2.found|basename}}' that: - found2.found|basename == hostvars["testhost2"]["ansible_python_interpreter"]