# --- # tasks file for install_docker - name: Check if Docker is installed become: yes command: docker -v register: docker_installed ignore_errors: true - name: Install Docker become: yes block: - name: Add Docker's official GPG key block: - name: Install necessary packages become: yes ansible.builtin.apt: name: - ca-certificates - curl - gnupg state: latest update_cache: yes - name: Add GPG key ansible.builtin.shell: cmd: | install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc chmod a+r /etc/apt/keyrings/docker.asc - name: Add the repository to Apt sources block: - name: Add repos ansible.builtin.shell: cmd: | echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - name: Install Docker packages become: yes ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: latest update_cache: yes when: docker_installed.failed - name: Ensure Docker group exists become: yes ansible.builtin.group: name: docker state: present register: docker_group - name: Add User to docker group become: yes ansible.builtin.user: name: yourUser groups: docker append: true when: docker_group is changed