2016-02-08 05:30:32 +08:00
|
|
|
---
|
|
|
|
# Defines deployment design and assigns role to server groups
|
|
|
|
|
2017-04-11 20:20:11 +08:00
|
|
|
- hosts:
|
|
|
|
- mons
|
|
|
|
- agents
|
|
|
|
- osds
|
|
|
|
- mdss
|
|
|
|
- rgws
|
|
|
|
- nfss
|
|
|
|
- restapis
|
|
|
|
- rbdmirrors
|
|
|
|
- clients
|
|
|
|
- iscsigws
|
2018-08-20 21:53:03 +08:00
|
|
|
- iscsi-gws # for backward compatibility only!
|
2017-04-11 20:20:11 +08:00
|
|
|
- mgrs
|
2017-12-19 22:10:05 +08:00
|
|
|
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2017-09-28 06:11:53 +08:00
|
|
|
become: True
|
2018-05-04 05:47:54 +08:00
|
|
|
any_errors_fatal: true
|
2017-12-19 22:10:05 +08:00
|
|
|
|
|
|
|
vars:
|
|
|
|
delegate_facts_host: True
|
|
|
|
|
2017-09-28 06:11:53 +08:00
|
|
|
pre_tasks:
|
2017-12-19 22:10:05 +08:00
|
|
|
- name: gather facts
|
|
|
|
setup:
|
|
|
|
when:
|
2018-05-24 21:07:56 +08:00
|
|
|
- not delegate_facts_host | bool
|
2017-12-19 22:10:05 +08:00
|
|
|
|
2017-08-30 16:44:18 +08:00
|
|
|
- name: gather and delegate facts
|
|
|
|
setup:
|
|
|
|
delegate_to: "{{ item }}"
|
|
|
|
delegate_facts: True
|
2018-05-04 00:41:16 +08:00
|
|
|
with_items: "{{ groups['all'] }}"
|
|
|
|
run_once: true
|
2017-12-19 22:10:05 +08:00
|
|
|
when:
|
|
|
|
- delegate_facts_host | bool
|
2016-08-22 16:35:24 +08:00
|
|
|
|
2017-09-28 06:11:53 +08:00
|
|
|
- name: check if it is atomic host
|
|
|
|
stat:
|
|
|
|
path: /run/ostree-booted
|
|
|
|
register: stat_ostree
|
|
|
|
tags:
|
|
|
|
- always
|
|
|
|
|
|
|
|
- name: set_fact is_atomic
|
|
|
|
set_fact:
|
2018-02-17 00:21:24 +08:00
|
|
|
is_atomic: '{{ stat_ostree.stat.exists }}'
|
2017-09-28 06:11:53 +08:00
|
|
|
tags:
|
|
|
|
- always
|
|
|
|
|
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: [with_pkg, fetch_container_image]
|
2018-05-04 05:47:54 +08:00
|
|
|
- role: ceph-validate
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-docker-common
|
|
|
|
tags: [with_pkg, fetch_container_image]
|
|
|
|
when:
|
|
|
|
- not (is_atomic | bool)
|
|
|
|
- (not (inventory_hostname in groups.get('clients', [])) or (inventory_hostname == groups.get('clients', [''])|first))
|
2017-09-28 06:11:53 +08:00
|
|
|
|
|
|
|
post_tasks:
|
|
|
|
- name: "pull {{ ceph_docker_image }} image"
|
|
|
|
command: "docker pull {{ ceph_docker_registry}}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
|
|
|
|
changed_when: false
|
2018-04-10 21:30:16 +08:00
|
|
|
when:
|
|
|
|
- is_atomic
|
|
|
|
- (ceph_docker_dev_image is undefined or not ceph_docker_dev_image)
|
|
|
|
- (not (inventory_hostname in groups.get('clients', [])) or (inventory_hostname == groups.get('clients', [''])|first))
|
2017-09-28 06:11:53 +08:00
|
|
|
|
2018-03-01 00:08:07 +08:00
|
|
|
- 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') }}"
|
|
|
|
|
2016-02-08 05:30:32 +08:00
|
|
|
- hosts: mons
|
|
|
|
become: True
|
2016-08-23 01:42:27 +08:00
|
|
|
gather_facts: false
|
2016-02-08 05:30:32 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-mon
|
2016-02-08 05:30:32 +08:00
|
|
|
serial: 1 # MUST be '1' WHEN DEPLOYING MONITORS ON DOCKER CONTAINERS
|
|
|
|
|
2018-03-01 00:08:07 +08:00
|
|
|
- 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') }}"
|
|
|
|
|
2017-09-22 23:26:28 +08:00
|
|
|
- hosts: mgrs
|
|
|
|
become: True
|
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2017-09-22 23:26:28 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
2018-06-06 12:07:33 +08:00
|
|
|
tags: ['ceph_update_config']
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: 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
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2017-09-22 23:26:28 +08:00
|
|
|
|
2016-02-08 05:30:32 +08:00
|
|
|
- hosts: osds
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-osd
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
|
|
|
|
- hosts: mdss
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
2017-07-29 04:48:13 +08:00
|
|
|
- ceph-mds
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
|
|
|
|
- hosts: rgws
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-rgw
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
|
2016-05-06 02:20:03 +08:00
|
|
|
- hosts: nfss
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-05-06 02:20:03 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: 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
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-05-06 02:20:03 +08:00
|
|
|
|
2017-09-08 15:51:03 +08:00
|
|
|
- hosts: rbdmirrors
|
2016-08-23 02:23:48 +08:00
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-08-23 02:23:48 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-rbd-mirror
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-08-23 02:23:48 +08:00
|
|
|
|
2016-02-08 05:30:32 +08:00
|
|
|
- hosts: restapis
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2016-02-08 05:30:32 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-defaults
|
|
|
|
tags: ['ceph_update_config']
|
|
|
|
- role: ceph-docker-common
|
|
|
|
- role: ceph-config
|
|
|
|
tags: ['ceph_update_config']
|
2018-07-27 22:50:40 +08:00
|
|
|
when:
|
|
|
|
- ceph_release_num[ceph_release] <= ceph_release_num.luminous
|
2018-04-10 21:30:16 +08:00
|
|
|
- role: ceph-restapi
|
2018-07-27 22:50:40 +08:00
|
|
|
when:
|
|
|
|
- ceph_release_num[ceph_release] <= ceph_release_num.luminous
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2017-03-16 17:17:08 +08:00
|
|
|
|
2017-07-07 23:01:58 +08:00
|
|
|
- hosts: clients
|
|
|
|
become: True
|
2017-08-25 20:36:07 +08:00
|
|
|
gather_facts: false
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2017-07-07 23:01:58 +08:00
|
|
|
roles:
|
2018-04-10 21:30:16 +08:00
|
|
|
- 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']
|
|
|
|
- role: ceph-client
|
2018-03-01 00:08:07 +08:00
|
|
|
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') }}"
|
2018-03-23 12:06:58 +08:00
|
|
|
|
2018-08-20 21:53:03 +08:00
|
|
|
- hosts:
|
|
|
|
- iscsigws
|
|
|
|
- iscsi-gws # for backward compatibility only!
|
2018-03-23 12:06:58 +08:00
|
|
|
gather_facts: false
|
|
|
|
become: True
|
|
|
|
pre_tasks:
|
|
|
|
- name: set ceph iscsi gateway install 'In Progress'
|
|
|
|
run_once: true
|
|
|
|
set_stats:
|
|
|
|
data:
|
|
|
|
installer_phase_ceph_iscsi_gw:
|
|
|
|
status: "In Progress"
|
|
|
|
start: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
|
|
|
roles:
|
|
|
|
- { role: ceph-defaults, tags: ['ceph_update_config'] }
|
2018-08-28 01:20:32 +08:00
|
|
|
- { role: ceph-docker-common }
|
2018-03-23 12:06:58 +08:00
|
|
|
- { role: ceph-config, tags: ['ceph_update_config'], when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
|
|
- { role: ceph-iscsi-gw, when: "ceph_release_num[ceph_release] >= ceph_release_num.luminous" }
|
|
|
|
post_tasks:
|
|
|
|
- name: set ceph iscsi gw install 'Complete'
|
|
|
|
run_once: true
|
|
|
|
set_stats:
|
|
|
|
data:
|
|
|
|
installer_phase_ceph_iscsi_gw:
|
|
|
|
status: "Complete"
|
|
|
|
end: "{{ lookup('pipe', 'date +%Y%m%d%H%M%SZ') }}"
|
site: report ceph -s status at the end of the deployment
We now show the output of 'ceph -s'. Example output below:
TASK [display post install message] **********************************************************************************************************************************************************************************************************
ok: [localhost] => {
"msg": [
" cluster:",
" id: 753212df-f32a-4cc9-a097-2db6fe89a251",
" health: HEALTH_OK",
" ",
" services:",
" mon: 1 daemons, quorum ceph-nano-lul-faa32aebf00b",
" mgr: ceph-nano-lul-faa32aebf00b(active)",
" osd: 1 osds: 1 up, 1 in",
" ",
" data:",
" pools: 4 pools, 32 pgs",
" objects: 224 objects, 2546 bytes",
" usage: 1027 MB used, 9212 MB / 10240 MB avail",
" pgs: 32 active+clean",
" "
]
}
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1602910
Signed-off-by: Sébastien Han <seb@redhat.com>
2018-07-25 22:39:35 +08:00
|
|
|
|
|
|
|
- hosts: mons
|
|
|
|
gather_facts: false
|
|
|
|
become: True
|
|
|
|
tasks:
|
|
|
|
- name: get ceph status from the first monitor
|
|
|
|
command: docker exec ceph-mon-{{ hostvars[groups[mon_group_name][0]]['ansible_hostname'] }} ceph --cluster {{ cluster }} -s
|
|
|
|
register: ceph_status
|
|
|
|
changed_when: false
|
|
|
|
delegate_to: "{{ groups['mons'][0] }}"
|
|
|
|
run_once: true
|
|
|
|
ignore_errors: true # we skip the error if mon_group_name is different than 'mons'
|
|
|
|
|
|
|
|
- name: "show ceph status for cluster {{ cluster }}"
|
|
|
|
debug:
|
|
|
|
msg: "{{ ceph_status.stdout_lines }}"
|
|
|
|
delegate_to: "{{ groups['mons'][0] }}"
|
|
|
|
run_once: true
|
|
|
|
when: not ceph_status.failed
|