2
votes

I have written a playbook which copies a file from source to destination on multiple hosts. The playbook works if all hosts are reachable but it doesn't fail if one of the host is unreachable.

ansible-playbook -i "10.11.12.13,10.11.12.14," -e "hostid=12345" test.yml

.e.g. if the host "10.11.12.13" is not reachable task execution skips the unreachable host and move onto the next host.

Sample playbook

- hosts: localhost
  gather_facts: no
  tasks:
    - debug: msg="backup_restore.py file not found"


- name: Copy file
  hosts: all
  remote_user: test
  gather_facts: no
  vars:
    srcFolder: "/home/test"
    destFolder: "/opt/config"
  tasks:
    - block:
        - name: Copy file to node
          copy:
            src:  '{{srcFolder}}/self.config'
            dest: '{{destFolder}}/self.config'

Is there a way to fail the task if the any of the hosts are not reachable. I am using ansible 2.6.1. Thank you in advance.

1

1 Answers

0
votes

Brute force solution is any_errors_fatal

- name: Copy file
  hosts: all
  any_errors_fatal: true

Overview of other options is in Abort execution of remaining task if certain condition is failed.