diff --git a/infrastructure-playbooks/shrink-osd.yml b/infrastructure-playbooks/shrink-osd.yml index e0135284b..89d0bc082 100644 --- a/infrastructure-playbooks/shrink-osd.yml +++ b/infrastructure-playbooks/shrink-osd.yml @@ -81,36 +81,9 @@ - name: set_fact osd_hosts set_fact: - osd_hosts: "{{ osd_hosts | default([]) + [ (item.stdout | from_json).crush_location.host ] }}" + osd_hosts: "{{ osd_hosts | default([]) + [ [ (item.stdout | from_json).crush_location.host, (item.stdout | from_json).osd_fsid ] ] }}" with_items: "{{ find_osd_hosts.results }}" - - name: find lvm osd volumes on each host - ceph_volume: - action: "list" - environment: - CEPH_VOLUME_DEBUG: 1 - CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}" - with_items: "{{ osd_hosts }}" - delegate_to: "{{ item }}" - register: osd_volumes - - - name: filter osd volumes to kill by osd - non container - set_fact: - osd_volumes_to_kill_non_container: "{{ osd_volumes_to_kill_non_container | default([]) + [ (item.1.stdout|from_json)[item.0] ] }}" - with_together: - - "{{ osd_to_kill.split(',') }}" - - "{{ osd_volumes.results }}" - - - name: generate (host / volume) pairs to zap - non container - set_fact: - osd_host_volumes_to_kill_non_container: "{%- set _val = namespace(devs=[]) -%} - {%- for host in osd_hosts -%} - {%- for dev in osd_volumes_to_kill_non_container[loop.index-1] -%} - {%- set _val.devs = _val.devs + [{\"host\": host, \"path\": dev.path}] -%} - {%- endfor -%} - {%- endfor -%} - {{ _val.devs }}" - - name: mark osd(s) out of the cluster command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} osd out {{ item }}" run_once: true @@ -122,20 +95,19 @@ name: ceph-osd@{{ item.0 }} state: stopped enabled: no - with_together: - - "{{ osd_to_kill.split(',') }}" - - "{{ osd_hosts }}" - delegate_to: "{{ item.1 }}" + loop: "{{ osd_to_kill.split(',')|zip(osd_hosts)|list }}" + delegate_to: "{{ item.1.0 }}" - name: zap osd devices ceph_volume: action: "zap" - data: "{{ item.path }}" + osd_fsid: "{{ item.1 }}" environment: CEPH_VOLUME_DEBUG: 1 CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else None }}" - delegate_to: "{{ item.host }}" - with_items: "{{ osd_host_volumes_to_kill_non_container }}" + CEPH_CONTAINER_BINARY: "{{ container_binary }}" + delegate_to: "{{ item.0 }}" + loop: "{{ osd_hosts }}" - name: purge osd(s) from the cluster command: "{{ docker_exec_cmd }} ceph --cluster {{ cluster }} osd purge {{ item }} --yes-i-really-mean-it"