Externalize role
This commit is contained in:
commit
790bec29ab
14 changed files with 1154 additions and 0 deletions
129
tasks/swarm.yml
Normal file
129
tasks/swarm.yml
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
---
|
||||
- name: Create ClusterSwarm group
|
||||
group_by: key=ClusterSwarm
|
||||
when:
|
||||
- docker_swarmmode
|
||||
|
||||
- name: Checking Swarm Mode Status
|
||||
command: "docker info"
|
||||
register: "docker_info"
|
||||
changed_when: false
|
||||
check_mode: no
|
||||
|
||||
- name: Create Master Swarm group
|
||||
group_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
|
||||
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
|
||||
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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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
|
||||
# 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:
|
||||
# - command: "docker swarm init --advertise-addr {{inventory_hostname}}"
|
||||
# - 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:
|
||||
# - 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:
|
||||
## - 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
|
||||
Loading…
Add table
Add a link
Reference in a new issue