--- # Basics - name: install requirements for docker apt: update_cache: yes state: "{% if cloud_update | bool %}latest{% else %}present{% endif %}" install_recommends: yes pkg: - apt-transport-https - ca-certificates - gnupg2 - curl # Docker - name: Create apt keyrings directory file: path: /etc/apt/keyrings state: directory mode: '0755' - name: Download Docker GPG key get_url: url: https://download.docker.com/linux/debian/gpg dest: /etc/apt/keyrings/docker.asc mode: '0644' # older versions of this role created this file without signed-by; apt # refuses two docker sources with different Signed-By values - name: remove legacy docker repository file file: path: /etc/apt/sources.list.d/download_docker_com_linux_debian.list state: absent # write the whole file so repo lines of older releases do not linger - name: Add Docker repository copy: dest: /etc/apt/sources.list.d/docker.list content: "deb [arch={{ docker_apt_arch[ansible_architecture] | default(ansible_architecture) }} signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable\n" owner: root group: root mode: "0644" - name: Update apt cache apt: update_cache: yes - name: install docker (docker-ce + docker-ce-cli) apt: update_cache: yes state: "{% if cloud_update | bool %}latest{% else %}present{% endif %}" install_recommends: yes pkg: - docker-ce - docker-ce-cli - docker-compose-plugin - python3-docker # Docker Compose: use the "docker compose" plugin from the docker repo - name: remove standalone docker-compose binary file: path: /usr/local/bin/docker-compose state: absent