deployment/roles/docker-swarm-add-worker/tasks/main.yml

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' ]