summaryrefslogtreecommitdiff
path: root/playbooks/roles/swarm-join/tasks/main.yml
blob: 5fdb66f391a71b52649469bacf0a2eb0e682ed30 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
---

- name: Check Docker Swarm Status
  ansible.builtin.command: docker info --format '{{ "{{.Swarm.LocalNodeState}}" }}'
  register: docker_swarm_status
  changed_when: false

- name: Join Swarm as Manager
  ansible.builtin.command:
    cmd: docker swarm join --token {{ hostvars[groups['swarm'][0]]['manager_token'].stdout }} {{ hostvars[groups['swarm'][0]]['ansible_default_ipv4']['address'] }}:2377
  when:
    - hostvars[groups['swarm'][0]]['manager_token'].stdout is defined
    - docker_swarm_status.stdout != "active"
  register: swarm_join
  changed_when: '"This node joined a swarm as a manager" in swarm_join.stdout'

- name: Label Docker Swarm Manager Nodes
  ansible.builtin.command:
    cmd: docker node update --label-add manager=true {{ ansible_hostname }}
  when: swarm_join is changed
  changed_when: false