From bbcdf2fde77e1d5791db400b31900ccd0d8a848c Mon Sep 17 00:00:00 2001 From: Krzysztof Goreczny Date: Wed, 10 Feb 2016 13:13:39 +0100 Subject: [PATCH 1/4] Rewrite purge-cluster playbook Signed-off-by: Krzysztof Goreczny --- purge-cluster.yml | 211 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 181 insertions(+), 30 deletions(-) diff --git a/purge-cluster.yml b/purge-cluster.yml index 417ca3ea9..b531a6dd8 100644 --- a/purge-cluster.yml +++ b/purge-cluster.yml @@ -2,42 +2,193 @@ # This playbook purges Ceph # It removes: packages, configuration files and ALL THE DATA -- hosts: - - mons - - osds - - tasks: - - - name: purge ceph - command: ceph-deploy purge {{ ansible_fqdn }} - delegate_to: 127.0.0.1 - - - name: remove osd data - shell: rm -rf /var/lib/ceph/osd/*/* - failed_when: false - - - name: purge remaining data - command: ceph-deploy purgedata {{ ansible_fqdn }} - delegate_to: 127.0.0.1 - -- hosts: - - osds +- name: stop ceph cluster + hosts: + - mons + - osds + - mdss + become: yes vars: - devices: [ '/dev/sdb', '/dev/sdc', '/dev/sdd', '/dev/sde', '/dev/sdf' ] - partitions: [ '1', '2', '3' ] +# When set to true both groups of packages are purged. +# This can couse problem with qemu-kvm + purge_all_packages: true + + ceph_packages: + - ceph + - ceph-common + - ceph-fs-common + - ceph-fuse + - ceph-mds + - ceph-release + + ceph_remaining_packages: + - libcephfs1 + - librados2 + - libradosstriper1 + - librbd1 + - python-cephfs + - python-rados + - python-rbd + tasks: + - name: get osd numbers + shell: ls /var/lib/ceph/osd | cut -d "-" -f 2 + register: osd_ids + changed_when: false + when: + osd_group_name in group_names - - name: disk zap - command: /usr/sbin/sgdisk --zap-all --clear --mbrtogpt -g -- {{ item }} - with_items: devices +# Infernalis + - name: stop ceph.target with systemd + service: + name: ceph.target + state: stopped + enabled: no + when: + ansible_distribution != 'Ubuntu' and + ceph_stable_release == 'infernalis' + + - name: stop ceph-osd with systemd + service: + name: ceph-osd@{{item}} + state: stopped + enabled: no + with_items: "{{ osd_ids.stdout_lines }}" + when: + ansible_distribution != 'Ubuntu' and + ceph_stable_release == 'infernalis' and + osd_group_name in group_names + + - name: stop ceph mons with systemd + service: + name: ceph-mon@{{ ansible_hostname }} + state: stopped + enabled: no + when: + ansible_distribution != 'Ubuntu' and + ceph_stable_release == 'infernalis' and + mon_group_name in group_names + + - name: stop ceph mdss with systemd + service: + name: ceph-mds@{{ ansible_hostname }} + state: stopped + when: + ansible_distribution != 'Ubuntu' and + ceph_stable_release == 'infernalis' and + mds_group_name in group_names + +# before infernalis + - name: stop ceph osds + command: service ceph stop osd + when: + ansible_distribution != 'Ubuntu' and + osd_group_name in group_names and + ceph_stable_release != 'infernalis' + + - name: stop ceph mons + command: service ceph stop mon + when: + ansible_distribution != 'Ubuntu' and + mon_group_name in group_names and + ceph_stable_release != 'infernalis' + + - name: stop ceph mdss + command: service ceph stop mds + when: + ansible_distribution != 'Ubuntu' and + mds_group_name in group_names and + ceph_stable_release != 'infernalis' + +# Ubuntu 14.04 + - name: stop ceph osds on ubuntu + command: stop ceph-osd-all failed_when: false + when: + ansible_distribution == 'Ubuntu' and + osd_group_name in group_names - - name: disk zap again - command: /usr/sbin/sgdisk --zap-all --clear --mbrtogpt -g -- {{ item }} - with_items: devices + - name: stop ceph mons on ubuntu + command: stop ceph-mon-all failed_when: false + when: + ansible_distribution == 'Ubuntu' and + mon_group_name in group_names + + - name: stop ceph mdss on ubuntu + command: stop ceph-mds-all + failed_when: false + when: + ansible_distribution == 'Ubuntu' and + mds_group_name in group_names - - name: call partprobe - command: partprobe +# rc is 2 if file not found, so no mount point, so no error + - name: get osd data mount points + shell: ls /var/lib/ceph/osd + register: mounted_osd + changed_when: false + failed_when: mounted_osd.rc != 0 and mounted_osd.rc != 2 + when: + osd_group_name in group_names + + - name: umount osd data partition + shell: umount /var/lib/ceph/osd/{{ item }} + failed_when: false + with_items: + - "{{ mounted_osd.stdout_lines }}" + when: + osd_group_name in group_names + + - name: zap osd disks + shell: ceph-disk zap "{{ item }}" + with_items: devices + when: + osd_group_name in group_names + + - name: purge ceph packages + package: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_packages }}" + + - name: purge remaining ceph packages + package: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_remaining_packages }}" + when: + purge_all_packages == true + + - name: remove config + file: + path: /etc/ceph + state: absent + + - name: remove data + file: + path: /var/lib/ceph + state: absent + + - name: remove logs + file: + path: /var/log/ceph + state: absent + + - name: remove form SysV + shell: "update-rc.d -f ceph remove" + when: + ansible_distribution == 'Ubuntu' + + - name: remove Upstart nad SysV files + shell: 'find /etc -name "*ceph*" -delete' + when: + ansible_distribution == 'Ubuntu' + + - name: remove Upstart and apt logs and cache + shell: 'find /var -name "*ceph*" -delete' + when: + ansible_distribution == 'Ubuntu' \ No newline at end of file From fc2ace7ba078e17e99f9990a56659c7931580637 Mon Sep 17 00:00:00 2001 From: KGoreczny Date: Mon, 15 Feb 2016 16:01:00 +0100 Subject: [PATCH 2/4] Use yum and apt modules instead of package to provide Ansible <2.0 support; fix typo Signed-off-by: KGoreczny --- purge-cluster.yml | 32 +++++++++++++++++++++++++++----- 1 file changed, 27 insertions(+), 5 deletions(-) diff --git a/purge-cluster.yml b/purge-cluster.yml index b531a6dd8..ec9a44c26 100644 --- a/purge-cluster.yml +++ b/purge-cluster.yml @@ -11,7 +11,7 @@ vars: # When set to true both groups of packages are purged. -# This can couse problem with qemu-kvm +# This can cause problem with qemu-kvm purge_all_packages: true ceph_packages: @@ -147,20 +147,42 @@ when: osd_group_name in group_names - - name: purge ceph packages - package: + - name: purge ceph packages with yum + yum: name: "{{ item }}" state: absent with_items: - "{{ ceph_packages }}" + when: + ansible_distribution != 'Ubuntu' - - name: purge remaining ceph packages - package: + - name: purge ceph packages with apt + apt: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_packages }}" + when: + ansible_distribution == 'Ubuntu' + + - name: purge remaining ceph packages with yum + yum: name: "{{ item }}" state: absent with_items: - "{{ ceph_remaining_packages }}" when: + ansible_distribution != 'Ubuntu' and + purge_all_packages == true + + - name: purge remaining ceph packages with apt + apt: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_remaining_packages }}" + when: + ansible_distribution == 'Ubuntu' and purge_all_packages == true - name: remove config From 4e2303fce5bf30ea7d1139e00be1ef88dc65289c Mon Sep 17 00:00:00 2001 From: KGoreczny Date: Mon, 15 Feb 2016 16:51:16 +0100 Subject: [PATCH 3/4] Add dnf package support; change condition checks for package managers Signed-off-by: KGoreczny --- purge-cluster.yml | 41 ++++++++++++++++++++++++++++++----------- 1 file changed, 30 insertions(+), 11 deletions(-) diff --git a/purge-cluster.yml b/purge-cluster.yml index ec9a44c26..54f8171c8 100644 --- a/purge-cluster.yml +++ b/purge-cluster.yml @@ -47,7 +47,7 @@ state: stopped enabled: no when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and ceph_stable_release == 'infernalis' - name: stop ceph-osd with systemd @@ -57,7 +57,7 @@ enabled: no with_items: "{{ osd_ids.stdout_lines }}" when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and ceph_stable_release == 'infernalis' and osd_group_name in group_names @@ -67,7 +67,7 @@ state: stopped enabled: no when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and ceph_stable_release == 'infernalis' and mon_group_name in group_names @@ -76,7 +76,7 @@ name: ceph-mds@{{ ansible_hostname }} state: stopped when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and ceph_stable_release == 'infernalis' and mds_group_name in group_names @@ -84,21 +84,21 @@ - name: stop ceph osds command: service ceph stop osd when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and osd_group_name in group_names and ceph_stable_release != 'infernalis' - name: stop ceph mons command: service ceph stop mon when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and mon_group_name in group_names and ceph_stable_release != 'infernalis' - name: stop ceph mdss command: service ceph stop mds when: - ansible_distribution != 'Ubuntu' and + ansible_os_family == 'RedHat' and mds_group_name in group_names and ceph_stable_release != 'infernalis' @@ -154,7 +154,16 @@ with_items: - "{{ ceph_packages }}" when: - ansible_distribution != 'Ubuntu' + ansible_pkg_mgr == 'yum' + + - name: purge ceph packages with dnf + dnf: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_packages }}" + when: + ansible_pkg_mgr == 'dnf' - name: purge ceph packages with apt apt: @@ -163,7 +172,7 @@ with_items: - "{{ ceph_packages }}" when: - ansible_distribution == 'Ubuntu' + ansible_pkg_mgr == 'apt' - name: purge remaining ceph packages with yum yum: @@ -172,7 +181,17 @@ with_items: - "{{ ceph_remaining_packages }}" when: - ansible_distribution != 'Ubuntu' and + ansible_pkg_mgr == 'yum' and + purge_all_packages == true + + - name: purge remaining ceph packages with dnf + dnf: + name: "{{ item }}" + state: absent + with_items: + - "{{ ceph_remaining_packages }}" + when: + ansible_pkg_mgr == 'dnf' and purge_all_packages == true - name: purge remaining ceph packages with apt @@ -182,7 +201,7 @@ with_items: - "{{ ceph_remaining_packages }}" when: - ansible_distribution == 'Ubuntu' and + ansible_pkg_mgr == 'apt' and purge_all_packages == true - name: remove config From 6e03f4944b3b8fa64b9c790c0a336f334233166a Mon Sep 17 00:00:00 2001 From: KGoreczny Date: Tue, 16 Feb 2016 13:41:58 +0100 Subject: [PATCH 4/4] Unify quotation marks Signed-off-by: KGoreczny --- purge-cluster.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/purge-cluster.yml b/purge-cluster.yml index 54f8171c8..9d55bd95a 100644 --- a/purge-cluster.yml +++ b/purge-cluster.yml @@ -225,11 +225,11 @@ ansible_distribution == 'Ubuntu' - name: remove Upstart nad SysV files - shell: 'find /etc -name "*ceph*" -delete' + shell: "find /etc -name '*ceph*' -delete" when: ansible_distribution == 'Ubuntu' - name: remove Upstart and apt logs and cache - shell: 'find /var -name "*ceph*" -delete' + shell: "find /var -name '*ceph*' -delete" when: - ansible_distribution == 'Ubuntu' \ No newline at end of file + ansible_distribution == 'Ubuntu'