--- # Docker Engine Installation - name: Remove old Docker versions package: name: - docker - docker-engine - docker.io - containerd - runc state: absent tags: - docker - cleanup - name: Add Docker GPG key apt_key: url: "{{ docker_apt_gpg_key }}" state: present tags: - docker - repository - name: Add Docker repository apt_repository: repo: "{{ docker_apt_repository }}" state: present update_cache: true tags: - docker - repository - name: Install Docker Engine package: name: - docker-{{ docker_edition }} - docker-{{ docker_edition }}-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present update_cache: true notify: restart docker tags: - docker - packages - name: Ensure Docker group exists group: name: "{{ docker_group }}" state: present tags: - docker - users - name: Add users to Docker group user: name: "{{ item }}" groups: "{{ docker_group }}" append: true loop: "{{ docker_users }}" when: docker_users | length > 0 tags: - docker - users - name: Add deploy user to Docker group user: name: "{{ ansible_user }}" groups: "{{ docker_group }}" append: true when: ansible_user != 'root' tags: - docker - users - name: Start and enable Docker service service: name: docker state: "{{ docker_service_state }}" enabled: "{{ docker_service_enabled }}" tags: - docker - service - name: Wait for Docker daemon to be ready command: docker version register: docker_ready retries: 5 delay: 10 until: docker_ready.rc == 0 changed_when: false tags: - docker - verification