Previously, installation using the ceph-ansible utility failed on the "fix partitions gpt header or labels of the journal devices" task in the ceph-osd role because of an empty variable. The underlying source code has been modified, and the installation no longer fails in this case.
This bug has been Fixed as part of ceph-ansible version:
ceph-ansible-2.1.6-1.el7scon.noarch
When this ships customers can use this build.
Moving to Verified.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.
https://access.redhat.com/errata/RHSA-2017:0515
a) Description of problem: An installation using ceph-ansible failed on the section "fix partitions gpt header or labels of the journal devices" task in ceph-osd role. The error should look something like “failed to evaluate raw_multi_journal and item.0.rc != 0 conditional”. A few variables definitions from group_vars/osds looks like the following: ~~~ devices: - /dev/sdb - /dev/sdc - /dev/sdd - /dev/sde - /dev/sdf - /dev/sdh - /dev/sdi - /dev/sdj - /dev/sdk - /dev/sdl - /dev/sdn - /dev/sdo - /dev/sdp - /dev/sdq - /dev/sdr raw_multi_journal: true raw_journal_devices: - /dev/sda - /dev/sda - /dev/sda - /dev/sda - /dev/sda - /dev/sdg - /dev/sdg - /dev/sdg - /dev/sdg - /dev/sdg - /dev/sdm - /dev/sdm - /dev/sdm - /dev/sdm - /dev/sdm ~~~ To fix this, the following patch was applied by the customer to get the playbook run properly. ~~~ # git diff HEAD^1 diff --git a/roles/ceph-osd/tasks/check_devices.yml b/roles/ceph-osd/tasks/check_devices.yml index c916ff4..14a9898 100644 --- a/roles/ceph-osd/tasks/check_devices.yml +++ b/roles/ceph-osd/tasks/check_devices.yml @@ -108,7 +108,7 @@ shell: "sgdisk --zap-all --clear --mbrtogpt -g -- {{ item.1 }} || sgdisk --zap-all --clear --mbrtogpt -g -- {{ item.1 }}" with_together: - journal_partition_status.results - - raw_journal_devices + - "{{ raw_journal_devices|default([])|unique }}" changed_when: false when: raw_multi_journal and ~~~ b) Version-Release number of selected component (if applicable): RHCS2.0 c) How reproducible: Always d) Additional info This has been fixed by https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-osd/defaults/main.yml#L129.