--- # For openstack VMs modify the mount point below depending on if the Openstack # VM deploy tool defaults to mounting ephemeral disks - name: umount ceph disk (if on openstack) mount: name: /mnt src: /dev/vdb fstype: ext3 state: unmounted when: - ceph_docker_on_openstack - name: test if the container image has the disk_list function command: docker run --rm --entrypoint=stat {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} disk_list.sh changed_when: false failed_when: false register: disk_list when: - osd_scenario != 'lvm' - name: generate ceph osd docker run script become: true template: src: "{{ role_path }}/templates/ceph-osd-run.sh.j2" dest: "{{ ceph_osd_docker_run_script_path }}/ceph-osd-run.sh" owner: "root" group: "root" mode: "0744" notify: - restart ceph osds - name: generate systemd unit file become: true template: src: "{{ role_path }}/templates/ceph-osd.service.j2" dest: /etc/systemd/system/ceph-osd@.service owner: "root" group: "root" mode: "0644" notify: - restart ceph osds - name: collect osd ids shell: > docker run --rm --privileged=true -v /run/lvm/lvmetad.socket:/run/lvm/lvmetad.socket -v /etc/ceph:/etc/ceph:z -v /dev:/dev --entrypoint=ceph-volume {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }} lvm list --format json | python -c 'import sys, json; print("\n".join(json.load(sys.stdin).keys()))' changed_when: false failed_when: false register: ceph_osd_ids when: - containerized_deployment - osd_scenario == 'lvm' - name: systemd start osd container systemd: name: ceph-osd@{{ item | regex_replace('/dev/', '') if osd_scenario != 'lvm' else item }} state: started enabled: yes daemon_reload: yes with_items: "{{ devices if osd_scenario != 'lvm' else ceph_osd_ids.stdout_lines }}"