- name: Install Docker on Debian, Ubuntu, or Raspbian hosts: Docker become: true gather_facts: true tasks: - name: Install required system packages apt: name: - apt-transport-https - ca-certificates - curl - software-properties-common - virtualenv state: latest update_cache: true when: ansible_os_family == "Debian" - name: Add Docker GPG apt Key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present when: ansible_os_family == "Debian" - name: Add Docker Repository apt_repository: repo: deb https://download.docker.com/linux/ubuntu focal stable state: present when: ansible_os_family == "Debian" - name: Update apt and install Docker packages apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose state: latest update_cache: true when: ansible_os_family == "Debian" - name: Install Docker dependencies for RedHat/CentOS package: name: - yum-utils - device-mapper-persistent-data - lvm2 state: present when: ansible_os_family == "RedHat" - name: Add Docker repository for RedHat/CentOS yum_repository: name: docker-ce-stable description: Docker CE Stable - $basearch baseurl: https://download.docker.com/linux/centos/7/$basearch/stable enabled: yes gpgcheck: yes gpgkey: https://download.docker.com/linux/centos/gpg when: ansible_os_family == "RedHat" - name: Install Docker for RedHat/CentOS package: name: docker-ce state: present when: ansible_os_family == "RedHat" - name: Add authenticated user to Docker group user: name: "{{ ansible_user }}" groups: docker append: yes when: ansible_os_family == "Debian" or ansible_os_family == "RedHat" - name: Ensure Docker service is enabled and started systemd: name: docker enabled: yes state: started - name: Reset connection to refresh user group membership meta: reset_connection