--- - name: Ensure docker packages are not present apt: state: absent name: ['docker', 'docker-engine', 'docker.io'] - name: Install docker package dependencies apt: state: latest name: ['apt-transport-https', 'ca-certificates'] update_cache: yes cache_valid_time: 86400 register: result retries: 3 until: result is success - name: Adding Docker official gpg key apt_key: url: "{{ docker_apt_key }}" id: 9DC858229FC7DD38854AE2D88D81803C0EBFCD88 state: present - name: Setting Docker repository depending on arch set_fact: docker_repository: "deb [arch={{ item.apt_arch }}] {{ docker_apt_repository }} {{ ansible_distribution_release }} {{ docker_apt_channel }}" when: ansible_architecture == item.system_arch with_items: - { system_arch: 'x86_64', apt_arch: 'amd64' } - { system_arch: 'arm', apt_arch: 'armhf' } - name: Printing Docker repository debug: var: docker_repository - name: Adding Docker repository apt_repository: repo: "{{ docker_repository }}" state: present update_cache: true - name: Install Docker. package: name: docker-ce state: present notify: restart docker - name: Ensure containerd service dir exists. file: path: /etc/systemd/system/containerd.service.d state: directory - name: Add shim to ensure Docker can start in all environments. template: src: override.conf.j2 dest: /etc/systemd/system/containerd.service.d/override.conf register: override_template - name: Reload systemd daemon if template is changed. systemd: daemon_reload: true when: override_template is changed - name: Ensure Docker is started and enabled at boot. service: name: docker state: started enabled: true - name: Ensure handlers are notified now to avoid firewall conflicts. meta: flush_handlers - name: Install python3-pip apt: name: python3-pip state: latest cache_valid_time: 86400 register: result retries: 3 until: result is success - name: Install docker-compose package dependencies apt: state: latest name: python3-setuptools update_cache: yes cache_valid_time: 86400 register: result retries: 3 until: result is success - name: Install docker-compose pip: name: docker-compose