From: Sébastien Han Date: Wed, 21 Oct 2015 00:12:43 +0000 (+0200) Subject: Add safety checks prior to deploy a cluster in containers X-Git-Tag: v1.0.0~101^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F424%2Fhead;p=ceph-ansible.git Add safety checks prior to deploy a cluster in containers Signed-off-by: Sébastien Han --- diff --git a/roles/ceph-mds/tasks/docker/checks.yml b/roles/ceph-mds/tasks/docker/checks.yml new file mode 100644 index 000000000..8bf007836 --- /dev/null +++ b/roles/ceph-mds/tasks/docker/checks.yml @@ -0,0 +1,27 @@ +--- +- name: set config and keys paths + set_fact: + ceph_config_keys: + - /etc/ceph/ceph.client.admin.keyring + - /etc/ceph/ceph.conf + - /etc/ceph/monmap + - /etc/ceph/ceph.mon.keyring + - /var/lib/ceph/bootstrap-osd/ceph.keyring + - /var/lib/ceph/bootstrap-rgw/ceph.keyring + - /var/lib/ceph/bootstrap-mds/ceph.keyring + +- name: stat for ceph config and keys + stat: + path: {{ item }} + with_items: ceph_config_keys + changed_when: false + failed_when: false + register: statleftover + +- name: fail if we find existing cluster files + fail: + msg: "looks like no cluster is running but ceph files are present, please remove them" + with_together: + - ceph_config_keys + - statleftover.results + when: item.1.stat.exists == true diff --git a/roles/ceph-mds/tasks/docker/main.yml b/roles/ceph-mds/tasks/docker/main.yml index 0b859c242..fe9ca1d53 100644 --- a/roles/ceph-mds/tasks/docker/main.yml +++ b/roles/ceph-mds/tasks/docker/main.yml @@ -1,4 +1,13 @@ --- +- name: check if a cluster is already running + shell: "docker ps | grep -sq 'ceph/daemon'" + register: ceph_health + changed_when: false + failed_when: false + +- include: checks.yml + when: ceph_health.rc != 0 + - include: pre_requisite.yml - include: fetch_configs.yml - include: start_docker_mds.yml diff --git a/roles/ceph-mon/tasks/docker/checks.yml b/roles/ceph-mon/tasks/docker/checks.yml new file mode 100644 index 000000000..8bf007836 --- /dev/null +++ b/roles/ceph-mon/tasks/docker/checks.yml @@ -0,0 +1,27 @@ +--- +- name: set config and keys paths + set_fact: + ceph_config_keys: + - /etc/ceph/ceph.client.admin.keyring + - /etc/ceph/ceph.conf + - /etc/ceph/monmap + - /etc/ceph/ceph.mon.keyring + - /var/lib/ceph/bootstrap-osd/ceph.keyring + - /var/lib/ceph/bootstrap-rgw/ceph.keyring + - /var/lib/ceph/bootstrap-mds/ceph.keyring + +- name: stat for ceph config and keys + stat: + path: {{ item }} + with_items: ceph_config_keys + changed_when: false + failed_when: false + register: statleftover + +- name: fail if we find existing cluster files + fail: + msg: "looks like no cluster is running but ceph files are present, please remove them" + with_together: + - ceph_config_keys + - statleftover.results + when: item.1.stat.exists == true diff --git a/roles/ceph-mon/tasks/docker/main.yml b/roles/ceph-mon/tasks/docker/main.yml index e7ae9d442..d59291b15 100644 --- a/roles/ceph-mon/tasks/docker/main.yml +++ b/roles/ceph-mon/tasks/docker/main.yml @@ -1,4 +1,13 @@ --- +- name: check if a cluster is already running + shell: "docker ps | grep -sq 'ceph/daemon'" + register: ceph_health + changed_when: false + failed_when: false + +- include: checks.yml + when: ceph_health.rc != 0 + - include: pre_requisite.yml - include: fetch_configs.yml - include: start_docker_monitor.yml diff --git a/roles/ceph-osd/tasks/docker/checks.yml b/roles/ceph-osd/tasks/docker/checks.yml new file mode 100644 index 000000000..8bf007836 --- /dev/null +++ b/roles/ceph-osd/tasks/docker/checks.yml @@ -0,0 +1,27 @@ +--- +- name: set config and keys paths + set_fact: + ceph_config_keys: + - /etc/ceph/ceph.client.admin.keyring + - /etc/ceph/ceph.conf + - /etc/ceph/monmap + - /etc/ceph/ceph.mon.keyring + - /var/lib/ceph/bootstrap-osd/ceph.keyring + - /var/lib/ceph/bootstrap-rgw/ceph.keyring + - /var/lib/ceph/bootstrap-mds/ceph.keyring + +- name: stat for ceph config and keys + stat: + path: {{ item }} + with_items: ceph_config_keys + changed_when: false + failed_when: false + register: statleftover + +- name: fail if we find existing cluster files + fail: + msg: "looks like no cluster is running but ceph files are present, please remove them" + with_together: + - ceph_config_keys + - statleftover.results + when: item.1.stat.exists == true diff --git a/roles/ceph-osd/tasks/docker/main.yml b/roles/ceph-osd/tasks/docker/main.yml index 149043f7a..956ac924e 100644 --- a/roles/ceph-osd/tasks/docker/main.yml +++ b/roles/ceph-osd/tasks/docker/main.yml @@ -1,4 +1,13 @@ --- +- name: check if a cluster is already running + shell: "docker ps | grep -sq 'ceph/daemon'" + register: ceph_health + changed_when: false + failed_when: false + +- include: checks.yml + when: ceph_health.rc != 0 + - include: pre_requisite.yml - include: fetch_configs.yml - include: start_docker_osd.yml diff --git a/roles/ceph-rgw/tasks/docker/checks.yml b/roles/ceph-rgw/tasks/docker/checks.yml new file mode 100644 index 000000000..8bf007836 --- /dev/null +++ b/roles/ceph-rgw/tasks/docker/checks.yml @@ -0,0 +1,27 @@ +--- +- name: set config and keys paths + set_fact: + ceph_config_keys: + - /etc/ceph/ceph.client.admin.keyring + - /etc/ceph/ceph.conf + - /etc/ceph/monmap + - /etc/ceph/ceph.mon.keyring + - /var/lib/ceph/bootstrap-osd/ceph.keyring + - /var/lib/ceph/bootstrap-rgw/ceph.keyring + - /var/lib/ceph/bootstrap-mds/ceph.keyring + +- name: stat for ceph config and keys + stat: + path: {{ item }} + with_items: ceph_config_keys + changed_when: false + failed_when: false + register: statleftover + +- name: fail if we find existing cluster files + fail: + msg: "looks like no cluster is running but ceph files are present, please remove them" + with_together: + - ceph_config_keys + - statleftover.results + when: item.1.stat.exists == true diff --git a/roles/ceph-rgw/tasks/docker/main.yml b/roles/ceph-rgw/tasks/docker/main.yml index 43676be1a..48ef901b9 100644 --- a/roles/ceph-rgw/tasks/docker/main.yml +++ b/roles/ceph-rgw/tasks/docker/main.yml @@ -1,4 +1,13 @@ --- +- name: check if a cluster is already running + shell: "docker ps | grep -sq 'ceph/daemon'" + register: ceph_health + changed_when: false + failed_when: false + +- include: checks.yml + when: ceph_health.rc != 0 + - include: pre_requisite.yml - include: fetch_configs.yml - include: start_docker_rgw.yml