mirror of https://github.com/ceph/ceph-ansible.git
112 lines
4.6 KiB
YAML
112 lines
4.6 KiB
YAML
---
|
|
- name: remove ec profile
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile rm {{ item.value.ec_profile }}"
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is defined
|
|
- item.value.type == 'ec'
|
|
failed_when: false
|
|
|
|
- name: set ec profile
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd erasure-code-profile set {{ item.value.ec_profile }} k={{ item.value.ec_k }} m={{ item.value.ec_m }}"
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is defined
|
|
- item.value.type == 'ec'
|
|
|
|
- name: set crush rule
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd crush rule create-erasure {{ item.key }} {{ item.value.ec_profile }}"
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is defined
|
|
- item.value.type == 'ec'
|
|
|
|
- name: create ec pools for rgw
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} erasure {{ item.value.ec_profile }}"
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is defined
|
|
- item.value.type == 'ec'
|
|
|
|
- name: create replicated pools for rgw
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool create {{ item.key }} {{ item.value.pg_num | default(osd_pool_default_pg_num) }} replicated {{ item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}"
|
|
changed_when: false
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when: item.value.type is not defined or item.value.type == 'replicated'
|
|
|
|
- name: customize replicated pool size
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} size {{ item.value.size | default(osd_pool_default_size) }}"
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is not defined or item.value.type == 'replicated'
|
|
- item.value.size | default(osd_pool_default_size) != ceph_osd_pool_default_size
|
|
|
|
- name: customize replicated pool crush_rule
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} crush_rule {{ item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name) }}"
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
when:
|
|
- item.value.type is not defined or item.value.type == 'replicated'
|
|
- item.value.rule_name | default(ceph_osd_pool_default_crush_rule_name)
|
|
|
|
- name: get pool details
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout=10 --cluster={{ cluster }} --format=json osd pool ls detail"
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
changed_when: false
|
|
check_mode: false
|
|
|
|
- name: set rgw_osd_pool_ls_detail fact
|
|
set_fact:
|
|
rgw_osd_pool_ls_detail: "{{ result.stdout | from_json }}"
|
|
|
|
- name: set the rgw_create_pools pools application to rgw
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool application enable {{ item.key }} rgw"
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when: >
|
|
'rgw' not in (rgw_osd_pool_ls_detail | selectattr('pool_name', 'eq', item.key) | first).application_metadata
|
|
|
|
- name: set pool pg_num
|
|
command: "{{ container_exec_cmd }} ceph --connect-timeout 10 --cluster {{ cluster }} osd pool set {{ item.key }} pg_num {{ item.value.pg_num }}"
|
|
register: result
|
|
retries: 60
|
|
delay: 3
|
|
until: result is succeeded
|
|
loop: "{{ rgw_create_pools | dict2items }}"
|
|
delegate_to: "{{ groups[mon_group_name][0] }}"
|
|
when:
|
|
- item.value.pg_num is defined
|
|
- (rgw_osd_pool_ls_detail | selectattr('pool_name', 'eq', item.key) | first).pg_num != item.value.pg_num
|