--- - hosts: all gather_facts: no tasks: - name: test magic vars for hosts without any failed/unreachable (no serial) assert: that: - ansible_play_batch | length == 3 - ansible_play_hosts | length == 3 - ansible_play_hosts_all | length == 3 run_once: True - ping: failed_when: "inventory_hostname == 'failed'" - meta: clear_host_errors - hosts: all gather_facts: no tasks: - name: test host errors were cleared assert: that: - ansible_play_batch | length == 3 - ansible_play_hosts | length == 3 - ansible_play_hosts_all | length == 3 run_once: True - ping: failed_when: "inventory_hostname == 'failed'" - name: test magic vars exclude failed/unreachable hosts assert: that: - ansible_play_batch | length == 1 - ansible_play_hosts | length == 1 - "ansible_play_batch == ['successful']" - "ansible_play_hosts == ['successful']" - ansible_play_hosts_all | length == 3 run_once: True - hosts: all gather_facts: no tasks: - name: test failed/unreachable persists between plays assert: that: - ansible_play_batch | length == 1 - ansible_play_hosts | length == 1 - "ansible_play_batch == ['successful']" - "ansible_play_hosts == ['successful']" - ansible_play_hosts_all | length == 3 run_once: True