kayobe/ansible/roles/kolla-ceph/tasks/config.yml

86 lines
2.5 KiB
YAML

---
- name: Ensure required packages are installed
package:
name: parted
state: installed
become: True
when: ceph_disks | length > 0
- name: Check the presence of a partition on the OSD disks
become: True
parted:
device: "{{ item.osd }}"
with_items: "{{ ceph_disks }}"
register: "disk_osd_info"
- name: Check the presence of a partition on the journal disks
become: True
parted:
device: "{{ item.journal }}"
with_items: "{{ ceph_disks }}"
register: "disk_journal_info"
when:
- item.journal is defined
- name: Fail if the Ceph OSD disks have already a partition
fail:
msg: >
The physical disk {{ item.item }} already has a partition.
Ensure that each disk in 'ceph_disks' does not have any partitions.
with_items: "{{ disk_osd_info.results }}"
when:
- item.partitions | length > 0
- not item.partitions.0.name.startswith('KOLLA_CEPH')
loop_control:
label: "{{item.item}}"
- name: Fail if the Ceph journal disks have already a partition
fail:
msg: >
The physical disk {{ item.item }} already has a partition.
Ensure that each disk in 'ceph_disks' does not have any partitions.
with_items: "{{ disk_journal_info.results }}"
when:
- not item | skipped
- item.partitions | length > 0
- not item.partitions.0.name.startswith('KOLLA_CEPH')
loop_control:
label: "{{item.item}}"
- name: Create tag partition for Ceph OSD
become: True
parted:
device: "{{ item.item.osd }}"
number: 1
label: gpt
name: "{{ part_label }}"
state: present
with_items: "{{ disk_osd_info.results }}"
when: item.partitions | length == 0
loop_control:
label: "{{item.item}}"
vars:
part_label: "{% if item.item.journal is defined %}{{ part_label_with_journal }}{% else %}KOLLA_CEPH_OSD_BOOTSTRAP{% endif %}"
part_label_with_journal: "KOLLA_CEPH_OSD_BOOTSTRAP_{{ (osd_id | hash('md5'))[:9] }}"
osd_id: "{{ item.item.osd | basename }}{{ ansible_hostname }}"
- name: Create tag partition for Ceph external journal
become: True
parted:
device: "{{ item.item.journal }}"
number: 1
label: gpt
name: "{{ part_label }}"
state: present
with_items: "{{ disk_journal_info.results }}"
when:
- not item | skipped
- item.partitions | length == 0
loop_control:
label: "{{item.item}}"
vars:
part_label: "KOLLA_CEPH_OSD_BOOTSTRAP_{{ (osd_id | hash('md5'))[:9] }}_J"
osd_id: "{{ item.item.osd | basename }}{{ ansible_hostname }}"