--- - name: Remove old Docker packages ansible.builtin.apt: name: - docker - docker-engine - docker.io - containerd - runc state: absent - name: Install prerequisites for Docker repo ansible.builtin.apt: name: - apt-transport-https - ca-certificates - curl - gnupg state: present - name: Add Docker GPG key ansible.builtin.get_url: url: https://download.docker.com/linux/debian/gpg dest: /etc/apt/keyrings/docker.asc mode: "0644" - name: Add Docker apt repository ansible.builtin.apt_repository: repo: >- deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable filename: docker state: present - name: Install Docker CE and plugins ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present update_cache: true notify: Restart docker - name: Ensure Docker service is enabled and started ansible.builtin.systemd: name: docker enabled: true state: started - name: Add deploy user to docker group ansible.builtin.user: name: "{{ deploy_user }}" groups: docker append: true - name: Verify Docker Compose plugin is available ansible.builtin.command: cmd: docker compose version changed_when: false register: docker_compose_check failed_when: docker_compose_check.rc != 0 # --- Auto-start on reboot via systemd --- - name: Deploy performancewest systemd service unit ansible.builtin.template: src: performancewest.service.j2 dest: /etc/systemd/system/performancewest.service owner: root group: root mode: "0644" notify: - Reload systemd - Enable performancewest service - name: Ensure performancewest service is enabled and started ansible.builtin.systemd: name: performancewest enabled: true state: started daemon_reload: true