--- - name: file_download | create local download destination directory file: path: "{{download.dest|dirname}}" state: directory recurse: yes mode: 0755 delegate_to: localhost become: false run_once: true when: - download_delegate != "localhost" - download_run_once - download.enabled - download.file - name: file_download | copy file to ansible host synchronize: src: "{{ download.dest }}" dest: "{{ download.dest }}" use_ssh_args: "{{ has_bastion | default(false) }}" mode: pull run_once: true become: false when: - download.enabled - download.file - download_run_once - ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] - inventory_hostname == download_delegate - download_delegate != "localhost" - name: file_download | upload file to nodes synchronize: src: "{{ download.dest }}" dest: "{{ download.dest }}" use_ssh_args: "{{ has_bastion | default(false) }}" mode: push become: true register: get_task until: get_task is succeeded retries: 4 delay: "{{ retry_stagger | random + 3 }}" when: - download.enabled - download.file - download_run_once - (ansible_os_family not in ["CoreOS", "Container Linux by CoreOS"] and inventory_hostname != download_delegate or download_delegate == "localhost") tags: - upload - upgrade