diff --git a/roles/ceph-osd/tasks/docker/start_docker_osd.yml b/roles/ceph-osd/tasks/docker/start_docker_osd.yml index 3423a9452..2b0aad3bd 100644 --- a/roles/ceph-osd/tasks/docker/start_docker_osd.yml +++ b/roles/ceph-osd/tasks/docker/start_docker_osd.yml @@ -21,10 +21,12 @@ # starting the next task - name: prepare ceph osd disk shell: | + NAME="ceph-osd-prepare-{{ ansible_hostname }}-dev{{ item.0 | regex_replace('/', '') }}" + docker ps -a | grep -sq $NAME && docker rm $NAME || true docker run --net=host \ --pid=host \ --privileged=true \ - --name="ceph-osd-prepare-{{ ansible_hostname }}-dev{{ item.0 | regex_replace('/', '') }}" \ + --name=$NAME \ -v /etc/ceph:/etc/ceph \ -v /var/lib/ceph/:/var/lib/ceph/ \ -v /dev:/dev \ @@ -41,13 +43,20 @@ - item.1.get("rc", 0) != 0 - ceph_osd_docker_prepare_env is defined - not osd_containerized_deployment_with_kv + # https://github.com/ceph/ceph-ansible/issues/1495 + register: prepare_osd_disk + until: prepare_osd_disk.rc == 0 + retries: 5 + delay: 3 - name: prepare ceph osd disk with kv_store shell: | + NAME="ceph-osd-prepare-{{ ansible_hostname }}-dev-{{ item.0 | regex_replace('/', '') }}" + docker ps -a | grep -sq $NAME && docker rm $NAME || true docker run --net=host \ --pid=host \ --privileged=true \ - --name="ceph-osd-prepare-{{ ansible_hostname }}-dev-{{ item.0 | regex_replace('/', '') }}" \ + --name=$NAME \ -v /dev:/dev \ -v /etc/localtime:/etc/localtime:ro \ -e "OSD_DEVICE={{ item.0 }}" \ @@ -66,6 +75,11 @@ - item.1.get("rc", 0) != 0 - ceph_osd_docker_prepare_env is defined - osd_containerized_deployment_with_kv + # https://github.com/ceph/ceph-ansible/issues/1495 + register: prepare_osd_disk_kv + until: prepare_osd_disk_kv.rc == 0 + retries: 5 + delay: 3 - name: generate ceph osd docker run script become: true