- name: Ensure packages are installed apt: name: - python3-pip - python3-setuptools - apt-transport-https - ca-certificates - curl - gnupg-agent - software-properties-common - nfs-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/debian buster 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 state: present - name: Configure docker daemon template: src: templates/daemon.json dest: /etc/docker/daemon.json owner: root group: root mode: 0644 #- hosts: swarm:!NAS # tasks: # - name: Mount NFS # mount: # path: /mnt/nfs # src: grace.lan:/ # fstype: nfs4 # opts: rw,nosuid,fsc # state: mounted - name: Install docker python module pip: executable: pip3 name: - docker - name: Join swarm as manager docker_swarm: state: join advertise_addr: "{{ ansible_default_ipv4.address }}" join_token: "{{ docker_swarm_join_token_manager }}" remote_addrs: ['192.168.168.200:2377'] when: docker_swarm_manager - name: Join swarm as worker docker_swarm: state: join advertise_addr: "{{ ansible_default_ipv4.address }}" join_token: "{{ docker_swarm_join_token_worker }}" remote_addrs: ['192.168.168.200:2377'] when: not docker_swarm_manager