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