From 2daeb807ed6f447fab272256ec1704020a0c470a Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=C3=A9bastien=20Han?= Date: Wed, 21 Oct 2015 02:12:43 +0200 Subject: [PATCH] Add safety checks prior to deploy a cluster in containers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Sébastien Han --- roles/ceph-mds/tasks/docker/checks.yml | 27 ++++++++++++++++++++++++++ roles/ceph-mds/tasks/docker/main.yml | 9 +++++++++ roles/ceph-mon/tasks/docker/checks.yml | 27 ++++++++++++++++++++++++++ roles/ceph-mon/tasks/docker/main.yml | 9 +++++++++ roles/ceph-osd/tasks/docker/checks.yml | 27 ++++++++++++++++++++++++++ roles/ceph-osd/tasks/docker/main.yml | 9 +++++++++ roles/ceph-rgw/tasks/docker/checks.yml | 27 ++++++++++++++++++++++++++ roles/ceph-rgw/tasks/docker/main.yml | 9 +++++++++ 8 files changed, 144 insertions(+) create mode 100644 roles/ceph-mds/tasks/docker/checks.yml create mode 100644 roles/ceph-mon/tasks/docker/checks.yml create mode 100644 roles/ceph-osd/tasks/docker/checks.yml create mode 100644 roles/ceph-rgw/tasks/docker/checks.yml 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 -- 2.39.5