--- - name: prep_download | Set a few facts set_fact: download_force_cache: "{{ true if download_run_once else download_force_cache }}" tags: - facts - name: Set image info command for containerd set_fact: image_info_command: "{{ bin_dir }}/crictl images --verbose | awk -F ': ' '/RepoTags|RepoDigests/ {print $2}' | tr '\n' ','" when: container_manager == 'containerd' - name: Register docker images info shell: "{{ image_info_command }}" no_log: true register: docker_images failed_when: false changed_when: false check_mode: no when: download_container - name: prep_download | Create staging directory on remote node file: path: "{{ local_release_dir }}/images" state: directory recurse: yes mode: 0755 owner: "{{ ansible_ssh_user | default(ansible_user_id) }}" when: - ansible_os_family not in ["CoreOS", "Coreos", "Container Linux by CoreOS", "Flatcar", "Flatcar Container Linux by Kinvolk"] - name: prep_download | Create local cache for files and images file: path: "{{ download_cache_dir }}/images" state: directory recurse: yes mode: 0755 delegate_to: localhost delegate_facts: no run_once: true become: false tags: - localhost - name: prep_download | On localhost, check if passwordless root is possible command: "true" delegate_to: localhost run_once: true register: test_become changed_when: false ignore_errors: true become: true when: - download_localhost tags: - localhost - asserts - name: prep_download | On localhost, check if user has access to docker without using sudo shell: "{{ docker_bin_dir }}/docker images" delegate_to: localhost run_once: true register: test_docker changed_when: false ignore_errors: true become: false when: - download_localhost tags: - localhost - asserts - name: prep_download | Parse the outputs of the previous commands set_fact: user_in_docker_group: "{{ not test_docker.failed }}" user_can_become_root: "{{ not test_become.failed }}" when: - download_localhost tags: - localhost - asserts - name: prep_download | Check that local user is in group or can become root assert: that: "user_in_docker_group or user_can_become_root" msg: >- Error: User is not in docker group and cannot become root. When download_localhost is true, at least one of these two conditions must be met. when: - download_localhost tags: - localhost - asserts