# Configure groups - name: Ensure group "{{ docker_group }}" exists include_role: name: add_group vars: add_group_groups: "{{ docker_group }}" # Install TLS files - name: Install the TLS CA copy: src: "{{ docker_ca }}" dest: "{{ docker_keydir }}/ca.pem" owner: "{{ docker_owner }}" group: "{{ docker_group }}" mode: '0400' register: docker_copy changed_when: docker_copy.src is defined when: docker_ca is defined - name: Install the TLS certificate copy: src: "{{ docker_cert }}" dest: "{{ docker_keydir }}/node.pem" owner: "{{ docker_owner }}" group: "{{ docker_group }}" mode: '0400' register: docker_copy changed_when: docker_copy.src is defined when: docker_cert is defined - name: Install the TLS key copy: src: "{{ docker_key }}" dest: "{{ docker_keydir }}/node.key" owner: "{{ docker_owner }}" group: "{{ docker_group }}" mode: '0400' register: docker_copy changed_when: docker_copy.src is defined when: docker_cert is defined # Install docker - name: Add the Docker apt repo vars: docker_gpgkey: /etc/apt/trusted.gpg.d/docker.asc block: - name: Fetch the Docker GPG key ansible.builtin.get_url: url: https://download.docker.com/linux/ubuntu/gpg dest: "{{ docker_gpgkey }}" - name: Add the Docker repo ansible.builtin.apt_repository: repo: "deb [arch=arm64 signed-by={{ docker_gpgkey }}] https://download.docker.com/linux/ubuntu {{ ansible_distribution_release }} stable" state: present - name: Sync apt apt: update_cache: yes changed_when: false - name: Install Docker apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose-plugin - python3-docker - python3-websocket state: latest # Run docker - name: Start Docker systemd: name: docker enabled: no state: started when: docker_run - name: Start a swarm from first node community.docker.docker_swarm: state: present delegate_to: "{{ ansible_play_hosts | first }}" run_once: true