summaryrefslogtreecommitdiff
path: root/playbooks/roles/swarm-join/tasks/main.yml
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-03-16 21:23:16 -0700
committerElizabeth Hunt <me@liz.coffee>2025-03-16 21:23:16 -0700
commit654694f9276cd9c30a7f2690f9336cf63a0172ef (patch)
tree12e4e8ec000478c982152e56d327afdef26a3b6a /playbooks/roles/swarm-join/tasks/main.yml
parentfb7e6890d8516618fa3baec0edf84048e2b6601d (diff)
downloadinfra-654694f9276cd9c30a7f2690f9336cf63a0172ef.tar.gz
infra-654694f9276cd9c30a7f2690f9336cf63a0172ef.zip
a good starting point for traefik
Diffstat (limited to 'playbooks/roles/swarm-join/tasks/main.yml')
-rw-r--r--playbooks/roles/swarm-join/tasks/main.yml21
1 files changed, 21 insertions, 0 deletions
diff --git a/playbooks/roles/swarm-join/tasks/main.yml b/playbooks/roles/swarm-join/tasks/main.yml
new file mode 100644
index 0000000..5fdb66f
--- /dev/null
+++ b/playbooks/roles/swarm-join/tasks/main.yml
@@ -0,0 +1,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