ansible-role-docker/tasks/swarm.yml
Adrien Reslinger 43ebb7b044
Some checks reported errors
continuous-integration/drone/push Build encountered an error
Fix linter issues
2022-11-30 07:38:08 +01:00

132 lines
5 KiB
YAML

---
- name: Create ClusterSwarm group
ansible.builtin.group_by: key=ClusterSwarm
when:
- docker_swarmmode
- name: Checking Swarm Mode Status
ansible.builtin.command: "docker info"
register: "docker_info"
changed_when: false
check_mode: false
- name: Create Master Swarm group
gansible.builtin.roup_by: key=MasterSwarm
when:
- '"Swarm: active" in docker_info.stdout'
- '" Is Manager: true" in docker_info.stdout'
- name: Init Docker Swarm Mode On First Manager
ansible.builtin.command: >
docker swarm init
--listen-addr {{ internal_interface }}:{{ docker_swarm_port }}
--advertise-addr {{ internal_interface }}
when:
- not MasterSwarm is defined
- '"Swarm: inactive" in docker_info.stdout'
- inventory_hostname == groups['ClusterSwarm'][0]
- name: Add the new master to MasterSwarm group
ansible.builtin.add_host:
name: '{{ inventory_hostname }}'
groups: MasterSwarm
when:
- not MasterSwarm is defined
- inventory_hostname == groups['ClusterSwarm'][0]
# - name: cluster | Capturing Docker Swarm Worker join-token
# ansible.builtin.command: "docker swarm join-token -q worker"
# changed_when: false
# register: "docker_swarm_worker_token"
# delegate_to: groups['MasterSwarm'][0]
# when:
# - inventory_hostname != groups['MasterSwarm'][0]
# - '"Swarm: inactive" in docker_info.stdout'
# - name: cluster | Capturing Docker Swarm Manager join-token
# ansible.builtin.command: "docker swarm join-token -q manager"
# changed_when: false
# register: "docker_swarm_manager_token"
# when: >
# inventory_hostname == groups['MasterSwarm'][0]
# - name: cluster | Defining Docker Swarm Manager Address
# ansible.builtin.set_fact:
# docker_swarm_manager_address: "{{ docker_swarm_addr }}:{{ docker_swarm_port }}"
# changed_when: false
# when: >
# inventory_hostname == groups['MasterSwarm'][0]
# - name: cluster | Defining Docker Swarm Manager Address
# ansible.builtin.set_fact:
# docker_swarm_manager_address: "{{ hostvars[docker_swarm_primary_manager]['docker_swarm_manager_address'] }}"
# changed_when: false
# when: >
# inventory_hostname != docker_swarm_primary_manager
# - name: cluster | Defining Docker Swarm Manager join-token
# ansible.builtin.set_fact:
# docker_swarm_manager_token: "{{ hostvars[docker_swarm_primary_manager]['docker_swarm_manager_token'] }}"
# changed_when: false
# when: >
# inventory_hostname != docker_swarm_primary_manager
# - name: cluster | Defining Docker Swarm Worker join-token
# ansible.builtin.set_fact:
# docker_swarm_worker_token: "{{ hostvars[docker_swarm_primary_manager]['docker_swarm_worker_token'] }}"
# changed_when: false
# when: >
# inventory_hostname != docker_swarm_primary_manager
# - name: cluster | Joining Additional Docker Swarm Managers To Cluster
# ansible.builtin.command: >
# docker swarm join
# --listen-addr {{ docker_swarm_addr }}:{{ docker_swarm_port }}
# --advertise-addr {{ docker_swarm_addr }}
# --token {{ docker_swarm_manager_token.stdout }}
# {{ docker_swarm_manager_address }}
# when: >
# inventory_hostname != groups['MasterSwarm'][0] and
# inventory_hostname not in groups[docker_swarm_workers_ansible_group] and
# 'Swarm: active' not in docker_info.stdout and
# 'Swarm: pending' not in docker_info.stdout
# - name: cluster | Joining Docker Swarm Workers To Cluster
# ansible.builtin.command: >
# docker swarm join
# --listen-addr {{ docker_swarm_addr }}:{{ docker_swarm_port }}
# --advertise-addr {{ docker_swarm_addr }}
# --token {{ docker_swarm_worker_token.stdout }}
# {{ docker_swarm_manager_address }}
# when: >
# inventory_hostname in groups[docker_swarm_workers_ansible_group] and
# 'Swarm: active' not in docker_info.stdout and
# 'Swarm: pending' not in docker_info.stdout
#
###############
# - name: Initialize Swarm Master
# hosts: swarm-master
# gather_facts: yes
# tasks:
# - ansible.builtin.command: "docker swarm init --advertise-addr {{inventory_hostname}}"
# - ansible.builtin.command: "docker swarm join-token -q worker"
# register: swarm_token
# - set_fact: swarmtoken="{{swarm_token.stdout}}"
#
# - name: Join Swarm Nodes
# hosts: swarm-nodes
# gather_facts: yes
# tasks:
# - ansible.builtin.command: >
# docker swarm join --advertise-addr {{inventory_hostname}}
# --token {{hostvars[groups['swarm-master'][0]].swarmtoken}}
# {{hostvars[groups['swarm-master'][0]].inventory_hostname}}:2377
#
## - name: Leave Swarm
## hosts: swarm-master:swarm-nodes
## gather_facts: yes
## tasks:
## - ansible.builtin.command: "docker swarm leave --force"
#
## - name: docker_swarm | Managing Docker Swarm Networks
## docker_network:
## name: "{{ item.name }}"
## driver: "{{ item.driver }}"
## state: "{{ item.state }}"
## with_items: '{{ docker_swarm_networks }}'
## when: >
## inventory_hostname == docker_swarm_primary_manager