--- - name: Check if Docker CE is installed ansible.builtin.command: docker --version register: docker_check changed_when: false failed_when: false # Arch-based distributions (CachyOS, Arch Linux, etc.) - name: Install Docker on Arch-based systems community.general.pacman: name: - docker - docker-compose - docker-buildx state: present become: true when: docker_check.rc != 0 and ansible_pkg_mgr == 'pacman' # Non-Arch distributions - name: Download Docker installation script ansible.builtin.get_url: url: https://get.docker.com dest: /tmp/get-docker.sh mode: "0755" when: docker_check.rc != 0 and ansible_pkg_mgr != 'pacman' - name: Install Docker CE on non-Arch systems ansible.builtin.shell: bash -c 'set -o pipefail && sh /tmp/get-docker.sh' args: executable: /bin/bash creates: /usr/bin/docker when: docker_check.rc != 0 and ansible_pkg_mgr != 'pacman' - name: Add user to docker group ansible.builtin.user: name: "{{ ansible_user }}" groups: docker append: true become: true when: docker_check.rc != 0 - name: Enable and start docker service ansible.builtin.systemd: name: docker state: started enabled: true become: true - name: Reload systemd ansible.builtin.systemd: daemon_reload: true become: true notify: Reload systemd