18 lines
550 B
YAML
18 lines
550 B
YAML
---
|
|
- name: Check node state.
|
|
register: node_state
|
|
shell: "docker info --format '{{ '{{' }}.Swarm.LocalNodeState{{ '}}' }}'"
|
|
ignore_errors: true
|
|
changed_when: false
|
|
|
|
- name: Add worker to swarm.
|
|
register: join_cmd
|
|
shell: >
|
|
docker swarm join
|
|
--token {{ hostvars.admin.worker_token }}
|
|
{{ hostvars.admin.ansible_host }}:2377
|
|
# 0 means it was successfully added, 1 means it's already in the swarm.
|
|
failed_when: join_cmd.rc != 0
|
|
changed_when: join_cmd.rc == 0
|
|
when: node_state.stdout not in [ 'active', 'locked', 'error' ]
|