- name: Ensure packages are installed apt: name: - python3-pip - python3-setuptools - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common state: present - name: Trust dockers GPG key apt_key: url: https://download.docker.com/linux/debian/gpg state: present - name: Ensure docker repository is available apt_repository: repo: deb https://download.docker.com/linux/{{ ansible_distribution | lower }} {{ ansible_distribution_release }} stable state: present notify: Update apt cache - name: Flush handlers meta: flush_handlers - name: Ensure packages are installed apt: name: - docker-ce - docker-ce-cli - containerd.io - docker-compose-plugin state: present - name: Configure docker daemon template: src: templates/daemon.json dest: /etc/docker/daemon.json owner: root group: root mode: 0644 - name: Install docker python module pip: executable: pip3 name: - docker - name: Join swarm as manager docker_swarm: state: join join_token: "{{ docker_swarm_join_token_manager }}" remote_addrs: ["{{ docker_swarm_address }}"] when: docker_swarm_manager - name: Join swarm as worker docker_swarm: state: join join_token: "{{ docker_swarm_join_token_worker }}" remote_addrs: ["{{ docker_swarm_address }}"] when: not docker_swarm_manager