- 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 #- 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