--- - name: Install Docker on Debian or Ubuntu hosts: all become: true tasks: - name: Install prerequisite packages ansible.builtin.apt: pkg: - apt-transport-https - ca-certificates - curl - gnupg - lsb-release state: present update_cache: true - name: Create directory for Docker GPG key ansible.builtin.file: path: /etc/apt/keyrings state: directory mode: '0755' - name: Add Docker GPG key ansible.builtin.get_url: url: "https://download.docker.com/linux/{{ ansible_distribution | lower }}/gpg" dest: /etc/apt/keyrings/docker.gpg mode: '0644' - name: Add Docker Repository ansible.builtin.apt_repository: # This line dynamically detects 'debian' vs 'ubuntu' and 'bookworm' vs 'jammy' repo: > deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable state: present filename: docker-ce - name: Install Docker Engine and Plugins ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present update_cache: true - name: Ensure Docker service is running ansible.builtin.systemd: name: docker state: started enabled: true