--- - name: container_download | Make download decision if pull is required by tag or sha256 include_tasks: set_docker_image_facts.yml delegate_to: "{{ download_delegate if download_run_once or omit }}" delegate_facts: yes run_once: "{{ download_run_once }}" when: - download.enabled - download.container tags: - facts # FIXME(mattymo): In Ansible 2.4 omitting download delegate is broken. Move back # to one task in the future. - name: container_download | Download containers if pull is required or told to always pull (delegate) command: "{{ docker_bin_dir }}/docker pull {{ pull_args }}" register: pull_task_result until: pull_task_result is succeeded retries: 4 delay: "{{ retry_stagger | random + 3 }}" when: - download_run_once - download.enabled - download.container - pull_required|default(download_always_pull) delegate_to: "{{ download_delegate }}" delegate_facts: yes run_once: yes - name: container_download | Download containers if pull is required or told to always pull (all nodes) command: "{{ docker_bin_dir }}/docker pull {{ pull_args }}" register: pull_task_result until: pull_task_result is succeeded retries: 4 delay: "{{ retry_stagger | random + 3 }}" when: - not download_run_once - download.enabled - download.container - pull_required|default(download_always_pull) - group_names | intersect(download.groups) | length