ceph-ansible/roles/ceph-osd/tasks/docker/start_docker_osd.yml

66 lines
1.9 KiB
YAML

---
# 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 }}"