ansible-role-docker-swarm/tasks/main.yml

75 lines
1.6 KiB
YAML

- 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