--- - name: container specific tasks when: containerized_deployment | bool block: - name: umount ceph disk (if on openstack) mount: name: /mnt src: /dev/vdb fstype: ext3 state: unmounted when: ceph_docker_on_openstack | bool - name: generate ceph osd docker run script 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" setype: "bin_t" notify: restart ceph osds # this is for ceph-disk, the ceph-disk command is gone so we have to list /var/lib/ceph - name: get osd ids shell: | set -o pipefail; ls /var/lib/ceph/osd/ | sed 's/.*-//' args: executable: /bin/bash changed_when: false register: osd_ids_non_container - name: set_fact docker_exec_start_osd set_fact: docker_exec_start_osd: "{{ '{{ container_binary }} run --rm --ulimit nofile=1024:4096 --net=host --privileged=true -v /var/run/udev/:/var/run/udev/:z -v /run/lvm/:/run/lvm/ -v /etc/ceph:/etc/ceph:z -v /dev:/dev --entrypoint=ceph-volume ' + ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment else 'ceph-volume' }}" - name: collect osd ids command: "{{ docker_exec_start_osd }} lvm list --format json" changed_when: false failed_when: false register: ceph_osd_ids - name: generate systemd unit file 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 when: containerized_deployment | bool - name: systemd start osd systemd: name: ceph-osd@{{ item }} state: started enabled: yes masked: no daemon_reload: yes with_items: "{{ ((ceph_osd_ids.stdout | from_json).keys() | list) if not containerized_deployment else osd_ids_non_container.stdout_lines }}" - name: ensure systemd service override directory exists file: state: directory path: "/etc/systemd/system/ceph-osd@.service.d/" when: - ceph_osd_systemd_overrides is defined - ansible_service_mgr == 'systemd' - name: add ceph-osd systemd service overrides config_template: src: "ceph-osd.service.d-overrides.j2" dest: "/etc/systemd/system/ceph-osd@.service.d/ceph-osd-systemd-overrides.conf" config_overrides: "{{ ceph_osd_systemd_overrides | default({}) }}" config_type: "ini" when: - ceph_osd_systemd_overrides is defined - ansible_service_mgr == 'systemd'