mirror of https://github.com/ceph/ceph-ansible.git
293 lines
8.9 KiB
Plaintext
293 lines
8.9 KiB
Plaintext
---
|
|
# Defines deployment design and assigns role to server groups
|
|
|
|
- hosts:
|
|
- mons
|
|
- agents
|
|
- osds
|
|
- mdss
|
|
- rgws
|
|
- nfss
|
|
- restapis
|
|
- rbdmirrors
|
|
- clients
|
|
- iscsigws
|
|
- mgrs
|
|
|
|
gather_facts: false
|
|
become: True
|
|
|
|
vars:
|
|
delegate_facts_host: True
|
|
|
|
pre_tasks:
|
|
- name: gather facts
|
|
setup:
|
|
when:
|
|
- not delegate_facts_host | bool or inventory_hostname in groups.get('clients', [])
|
|
|
|
- name: gather and delegate facts
|
|
setup:
|
|
delegate_to: "{{ item }}"
|
|
delegate_facts: True
|
|
with_items: "{{ groups['all'] | difference(groups.get('clients', [])) }}"
|
|
when:
|
|
- delegate_facts_host | bool
|
|
|
|
- name: check if it is atomic host
|
|
stat:
|
|
path: /run/ostree-booted
|
|
register: stat_ostree
|
|
tags:
|
|
- always
|
|
|
|
- name: set_fact is_atomic
|
|
set_fact:
|
|
is_atomic: '{{ stat_ostree.stat.exists }}'
|
|
tags:
|
|
- always
|
|
|
|
roles:
|
|
- { role: ceph-defaults,
|
|
tags: [with_pkg, fetch_container_image],
|
|
when: "(((containerized_deployment | bool) and not (is_atomic | bool) and not (inventory_hostname in groups.get('clients', [False]))) or ((inventory_hostname == groups.get('clients', [False])|first) and (containerized_deployment | bool) and not (is_atomic | bool)))" }
|
|
- { role: ceph-docker-common,
|
|
tags: [with_pkg, fetch_container_image],
|
|
when: "(((containerized_deployment | bool) and not (is_atomic | bool) and not (inventory_hostname in groups.get('clients', [False]))) or ((inventory_hostname == groups.get('clients', [False])|first) and (containerized_deployment | bool) and not (is_atomic | bool)))" }
|
|
|
|
post_tasks:
|
|
- name: "pull {{ ceph_docker_image }} image"
|
|
command: "docker pull {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
|
|
changed_when: false
|
|
when: "((is_atomic and (ceph_docker_dev_image is undefined or not ceph_docker_dev_image) and not (inventory_hostname in groups.get('clients', [False]))) or (is_atomic and ((ceph_docker_dev_image is undefined) or not (ceph_docker_dev_image)) and (inventory_hostname == groups.get('clients', [False])|first)))"
|
|
|
|
- hosts: mons
|
|
tasks:
|
|
- name: set ceph monitor install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mon:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: mons
|
|
become: True
|
|
gather_facts: false
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-mon
|
|
serial: 1 # MUST be '1' WHEN DEPLOYING MONITORS ON DOCKER CONTAINERS
|
|
|
|
- hosts: mons
|
|
tasks:
|
|
- name: set ceph monitor install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mon:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: mgrs
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph manager install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mgr:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'], when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
- { role: ceph-mgr, when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
post_tasks:
|
|
- name: set ceph manager install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mgr:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: osds
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph osd install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_osd:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-osd
|
|
post_tasks:
|
|
- name: set ceph osd install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_osd:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: mdss
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph mds install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mds:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-mds
|
|
post_tasks:
|
|
- name: set ceph mds install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_mds:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: rgws
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph rgw install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_rgw:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-rgw
|
|
post_tasks:
|
|
- name: set ceph rgw install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_rgw:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: nfss
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph nfs install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_nfs:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'], when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
- { role: ceph-nfs, when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
post_tasks:
|
|
- name: set ceph nfs install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_nfs:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: rbdmirrors
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph rbd mirror install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_rbdmirror:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-rbd-mirror
|
|
post_tasks:
|
|
- name: set ceph rbd mirror install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_rbdmirror:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: restapis
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph rest api install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_restapi:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- ceph-docker-common
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-restapi
|
|
post_tasks:
|
|
- name: set ceph rest api install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_restapi:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
- hosts: clients
|
|
become: True
|
|
gather_facts: false
|
|
pre_tasks:
|
|
- name: set ceph client install 'In Progress'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_client:
|
|
status: "In Progress"
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
roles:
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
|
- { role: ceph-docker-common, when: "inventory_hostname == groups.get('clients', []) | first" }
|
|
- { role: ceph-config, tags: ['ceph_update_config'] }
|
|
- ceph-client
|
|
post_tasks:
|
|
- name: set ceph client install 'Complete'
|
|
run_once: true
|
|
set_stats:
|
|
data:
|
|
installer_phase_ceph_client:
|
|
status: "Complete"
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|