--- - name: Install Docker prerequisites ansible.builtin.apt: name: - apt-transport-https - ca-certificates - curl - gnupg - lsb-release - python3-pip - python3-docker state: present tags: [docker, install] - name: Add Docker GPG key ansible.builtin.apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present tags: [docker, install] - name: Add Docker repository ansible.builtin.apt_repository: repo: "deb https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" state: present tags: [docker, install] - name: Install Docker CE ansible.builtin.apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose-plugin state: present update_cache: true tags: [docker, install] - name: Configure Docker daemon ansible.builtin.copy: content: "{{ docker_daemon_options | to_nice_json }}" dest: /etc/docker/daemon.json owner: root group: root mode: "0644" notify: Restart docker tags: [docker, config] - name: Add users to docker group ansible.builtin.user: name: "{{ item }}" groups: docker append: true loop: "{{ docker_users }}" tags: [docker, users] - name: Ensure Docker is started and enabled ansible.builtin.systemd: name: docker state: started enabled: true tags: [docker] - name: Create homelab Docker network community.docker.docker_network: name: "{{ docker_network_name }}" driver: bridge tags: [docker, network] - name: Ensure docker-compose base directory exists ansible.builtin.file: path: "{{ docker_compose_base }}" state: directory owner: glyptic group: docker mode: "0755" tags: [docker]