- name: Install Docker on Debian, Ubuntu, or Raspbian hosts: all become: yes gather_facts: yes tasks: - name: Install Docker dependencies for Debian/Ubuntu/Raspbian apt: name: - apt-transport-https - ca-certificates - curl - gnupg - lsb-release state: present update_cache: yes when: ansible_os_family == "Debian" - name: Add Docker GPG key for Debian/Ubuntu/Raspbian apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present when: ansible_os_family == "Debian" - name: Add Docker repository for Debian/Ubuntu apt_repository: repo: "deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" state: present update_cache: yes when: ansible_os_family == "Debian" and ansible_distribution == "Ubuntu" - name: Add Docker repository for Raspbian/Debian apt_repository: repo: "deb [arch=arm64] https://download.docker.com/linux/debian {{ ansible_distribution_release }} stable" state: present update_cache: yes when: ansible_os_family == "Debian" and ansible_architecture == "aarch64" - name: Install Docker for Debian/Ubuntu/Raspbian apt: name: docker-ce state: present update_cache: yes 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