41 lines
1.3 KiB
YAML
41 lines
1.3 KiB
YAML
---
|
|
- name: Init a new swarm with default parameters
|
|
community.docker.docker_swarm:
|
|
state: present
|
|
listen_addr: "{{ internal_ip }}:2377"
|
|
advertise_addr: "{{ internal_ip }}:4567"
|
|
register: swarm_create
|
|
|
|
- name: Set join tokens as host facts (manager only)
|
|
ansible.builtin.set_fact:
|
|
swarm_worker_join_token: "{{ swarm_create.swarm_facts.JoinTokens.Worker }}"
|
|
swarm_manager_join_token: "{{ swarm_create.swarm_facts.JoinTokens.Manager }}"
|
|
|
|
- name: Debug
|
|
ansible.builtin.debug:
|
|
var: swarm_create
|
|
|
|
- name: Get worker join token
|
|
ansible.builtin.set_fact:
|
|
swarm_worker_join_token: "{{ swarm_create.swarm_facts.JoinTokens.Worker }}"
|
|
|
|
- name: Get manager join token
|
|
ansible.builtin.set_fact:
|
|
swarm_manager_join_token: "{{ swarm_create.swarm_facts.JoinTokens.Manager }}"
|
|
|
|
- name: Get info on all swarm nodes
|
|
community.docker.docker_node_info:
|
|
register: swarm_node_infos
|
|
|
|
- name: Debug swarm node info
|
|
debug:
|
|
var: swarm_node_infos
|
|
|
|
- name: Set node labels based on hostvars
|
|
community.docker.docker_node:
|
|
hostname: "{{ item }}"
|
|
labels:
|
|
capabilities_gpu: "{{ hostvars[item].capabilities_gpu | default('false') }}"
|
|
capabilities_dedicated_cpu: "{{ hostvars[item].capabilities_dedicated_cpu | default('false') }}"
|
|
loop: "{{ groups['swarm'] }}"
|