--- - 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[swarm_initializer_host]['manager_token'].stdout }} {{ hostvars[swarm_initializer_host]['ansible_default_ipv4']['address'] }}:2377 when: - hostvars[swarm_initializer_host]['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