Skip to content

Instantly share code, notes, and snippets.

@eldorplus
Forked from gjovanov/docker_swarm_init.yml
Created September 27, 2019 06:44
Show Gist options
  • Select an option

  • Save eldorplus/14c427a66de4977adfbd486561fd9c32 to your computer and use it in GitHub Desktop.

Select an option

Save eldorplus/14c427a66de4977adfbd486561fd9c32 to your computer and use it in GitHub Desktop.
- name: Docker Swarm - Checking Swarm Mode status
command: "docker info"
register: "docker_info"
changed_when: false
check_mode: no
become: true
tags: [docker-swarm]
- name: Docker Swarm - Initializing Docker Swarm Mode on first manager
command: >
docker swarm init
--listen-addr {{ docker_swarm_addr }}:{{ docker_swarm_port }}
--advertise-addr {{ docker_swarm_addr }}
become: true
when: >
'Swarm: inactive' in docker_info.stdout and
inventory_hostname == docker_swarm_primary_manager
tags: [docker-swarm]
- name: Docker Swarm - Capturing Docker Swarm Worker join-token
command: "docker swarm join-token -q worker"
changed_when: false
register: "docker_swarm_worker_token"
become: true
when: >
inventory_hostname == docker_swarm_primary_manager
tags: [docker-swarm]
- name: Docker Swarm - Capturing Docker Swarm Manager join-token
command: "docker swarm join-token -q manager"
changed_when: false
register: "docker_swarm_manager_token"
become: true
when: >
inventory_hostname == docker_swarm_primary_manager
tags: [docker-swarm]
- name: Docker Swarm - Defining Docker Swarm Manager Address
set_fact:
docker_swarm_manager_address: "{{ docker_swarm_addr }}:{{ docker_swarm_port }}"
changed_when: false
when: >
inventory_hostname == docker_swarm_primary_manager
tags: [docker-swarm]
- name: Docker Swarm - Defining Docker Swarm Manager Address
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
tags: [docker-swarm]
- name: Docker Swarm - Defining Docker Swarm Manager join-token
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
tags: [docker-swarm]
- name: Docker Swarm - Defining Docker Swarm Worker join-token
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
tags: [docker-swarm]
- name: Docker Swarm - Joining Additional Docker Swarm Managers To Cluster
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 }}
become: true
when: >
inventory_hostname != docker_swarm_primary_manager 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
tags: [docker-swarm]
- name: Docker Swarm - Joining Docker Swarm Workers To Cluster
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 }}
become: true
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
tags: [docker-swarm]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment