kayobe/ansible/roles/kolla-ceph/tasks/config.yml
Mark Goddard 1999110bbc Fixes for ceph block device tagging (#1)
* Install galaxy roles before running ansible tests

* Use package module in kolla-ceph to support Debian-based systems

This is required for running tests in TravisCI.

* Fix kolla-ceph unit test

* Add more tests for kolla-ceph

Journal tests are currently failing on my laptop due to partition labels
being truncated.

* Add .gitignore for stackhpc.parted-1-1 galaxy role

* Run all test cases

Run all test cases, collecting failures, then report at the end.
2018-02-09 14:42:38 +01:00

87 lines
2.5 KiB
YAML

---
# (ktibi) Need to remove parted_1_1 module when kayobe will support ansible 2.4
- 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_1_1:
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_1_1:
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_1_1:
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_1_1:
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 }}"