mirror of https://github.com/ceph/ceph-ansible.git
79 lines
3.2 KiB
YAML
79 lines
3.2 KiB
YAML
---
|
|
- name: compile a list of pool names
|
|
set_fact:
|
|
cephfs_pool_names: "{{ cephfs_pools | map(attribute='name') | list }}"
|
|
|
|
- name: check if filesystem pool already exists
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
block:
|
|
- name: get and store list of filesystem pools
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool ls"
|
|
changed_when: false
|
|
register: osd_pool_ls
|
|
|
|
- name: look whether pools to be created are present in the output
|
|
set_fact:
|
|
fs_pools_created: True
|
|
when: osd_pool_ls.stdout_lines | intersect(cephfs_pool_names) | length > 0
|
|
|
|
- name: deploy filesystem pools
|
|
when: fs_pools_created is not defined
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
block:
|
|
- name: create filesystem pools
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool create {{ item.name }} {{ item.pgs | default(osd_pool_default_pg_num) }}"
|
|
changed_when: false
|
|
with_items: "{{ cephfs_pools }}"
|
|
|
|
- name: customize pool size
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool set {{ item.name }} size {{ item.size | default(osd_pool_default_size) }}"
|
|
with_items: "{{ cephfs_pools | unique }}"
|
|
changed_when: false
|
|
when:
|
|
- item.size | default(osd_pool_default_size) != ceph_osd_pool_default_size
|
|
|
|
- name: customize pool min_size
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool set {{ item.name }} min_size {{ item.min_size | default(osd_pool_default_min_size) }}"
|
|
with_items: "{{ cephfs_pools | unique }}"
|
|
changed_when: false
|
|
when:
|
|
- (item.min_size | default(osd_pool_default_min_size))|int > ceph_osd_pool_default_min_size
|
|
|
|
- name: check if ceph filesystem already exists
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs get {{ cephfs }}"
|
|
register: check_existing_cephfs
|
|
changed_when: false
|
|
failed_when: false
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
|
|
- name: create ceph filesystem
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs new {{ cephfs }} {{ cephfs_metadata }} {{ cephfs_data }}"
|
|
changed_when: false
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when:
|
|
- check_existing_cephfs.rc != 0
|
|
|
|
- name: assign application to cephfs pools
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} osd pool application enable {{ item }} {{ cephfs }}"
|
|
with_items:
|
|
- "{{ cephfs_data }}"
|
|
- "{{ cephfs_metadata }}"
|
|
changed_when: false
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when:
|
|
- check_existing_cephfs.rc != 0
|
|
|
|
- name: allow multimds
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs set {{ cephfs }} allow_multimds true --yes-i-really-mean-it"
|
|
changed_when: false
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when:
|
|
- ceph_release_num[ceph_release] == ceph_release_num.luminous
|
|
|
|
- name: set max_mds
|
|
command: "{{ docker_exec_cmd | default('') }} ceph --cluster {{ cluster }} fs set {{ cephfs }} max_mds {{ mds_max_mds }}"
|
|
changed_when: false
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when:
|
|
- mds_max_mds > 1
|