--- - name: Install prerequisite packages apt: name: - ca-certificates - curl - gnupg - lsb-release state: present update_cache: true - name: Add Docker GPG key apt_key: url: https://download.docker.com/linux/ubuntu/gpg state: present - name: Add Docker apt repository apt_repository: repo: > deb [arch=amd64] https://download.docker.com/linux/ubuntu {{ ansible_facts['distribution_release'] }} stable state: present filename: docker - name: Install Docker engine and compose plugin apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-buildx-plugin - docker-compose-plugin state: present update_cache: true - name: Enable and start Docker systemd: name: docker enabled: true state: started - name: Ensure Docker config directory file: path: /etc/docker state: directory mode: '0755' - name: Configure Docker to use journald copy: dest: /etc/docker/daemon.json content: | { "log-driver": "journald" } mode: '0644' notify: restart docker - name: Add admin user to docker group user: name: "{{ admin_user }}" groups: docker append: true # ---- Filesystem layout ---- - name: Create base directory file: path: "{{ item }}" state: directory owner: root group: root mode: "0755" loop: - /srv