diff --git a/roles/ceph-osd/tasks/scenarios/dmcrypt-dedicated-journal.yml b/roles/ceph-osd/tasks/scenarios/dmcrypt-dedicated-journal.yml index fe0b8e3c5..b78ae73be 100644 --- a/roles/ceph-osd/tasks/scenarios/dmcrypt-dedicated-journal.yml +++ b/roles/ceph-osd/tasks/scenarios/dmcrypt-dedicated-journal.yml @@ -23,6 +23,24 @@ - item.0.get("rc", 0) != 0 - item.1.get("rc", 0) != 0 - not osd_auto_discovery + - osd_objectstore == 'filestore' + - dmcrypt_dedicated_journal + +- name: prepare dmcrypt osd disk(s) with a dedicated journal device + command: "ceph-disk prepare --bluestore --dmcrypt --cluster {{ cluster }} {{ item.2 }} {{ item.3 }}" + with_together: + - "{{ parted_results.results }}" + - "{{ ispartition_results.results }}" + - "{{ devices }}" + - "{{ raw_journal_devices }}" + changed_when: false + when: + - not item.0.get("skipped") + - not item.1.get("skipped") + - item.0.get("rc", 0) != 0 + - item.1.get("rc", 0) != 0 + - not osd_auto_discovery + - osd_objectstore == 'bluestore' - dmcrypt_dedicated_journal - include: ../activate_osds.yml diff --git a/roles/ceph-osd/tasks/scenarios/dmcrypt-journal-collocation.yml b/roles/ceph-osd/tasks/scenarios/dmcrypt-journal-collocation.yml index 528856f5b..0b0970187 100644 --- a/roles/ceph-osd/tasks/scenarios/dmcrypt-journal-collocation.yml +++ b/roles/ceph-osd/tasks/scenarios/dmcrypt-journal-collocation.yml @@ -9,7 +9,7 @@ # NOTE (alahouze): if the device is a partition, the parted command below has # failed, this is why we check if the device is a partition too. -- name: automatic prepare dmcrypt osd disk(s) without partitions with collocated osd data and journal +- name: automatic prepare dmcrypt osd disk(s) without partitions with collocated osd data and journal (filestore) command: ceph-disk prepare --dmcrypt --cluster "{{ cluster }}" "/dev/{{ item.key }}" with_dict: "{{ ansible_devices }}" when: @@ -18,9 +18,22 @@ - item.value.partitions|count == 0 - item.value.holders|count == 0 - dmcrypt_journal_collocation + - osd_objectstore == 'filestore' - osd_auto_discovery -- name: manually prepare dmcrypt osd disk(s) with collocated osd data and journal +- name: automatic prepare dmcrypt osd disk(s) without partitions with collocated osd data and journal (bluestore) + command: ceph-disk prepare --bluestore --dmcrypt --cluster "{{ cluster }}" "/dev/{{ item.key }}" + with_dict: "{{ ansible_devices }}" + when: + - ansible_devices is defined + - item.value.removable == "0" + - item.value.partitions|count == 0 + - item.value.holders|count == 0 + - dmcrypt_journal_collocation + - osd_objectstore == 'bluestore' + - osd_auto_discovery + +- name: manually prepare dmcrypt osd disk(s) with collocated osd data and journal (filestore) command: ceph-disk prepare --dmcrypt --cluster "{{ cluster }}" "{{ item.2 }}" with_together: - "{{ parted_results.results }}" @@ -32,6 +45,22 @@ - item.0.get("rc", 0) != 0 - item.1.get("rc", 0) != 0 - dmcrypt_journal_collocation + - osd_objectstore == 'filestore' + - not osd_auto_discovery + +- name: manually prepare dmcrypt osd disk(s) with collocated osd data and journal (bluestore) + command: ceph-disk prepare --bluestore --dmcrypt --cluster "{{ cluster }}" "{{ item.2 }}" + with_together: + - "{{ parted_results.results }}" + - "{{ ispartition_results.results }}" + - "{{ devices }}" + when: + - not item.0.get("skipped") + - not item.1.get("skipped") + - item.0.get("rc", 0) != 0 + - item.1.get("rc", 0) != 0 + - dmcrypt_journal_collocation + - osd_objectstore == 'bluestore' - not osd_auto_discovery - include: ../activate_osds.yml