From 93104a4faee4ae417b891c3f3628b3e06bad1908 Mon Sep 17 00:00:00 2001 From: Teoman ONAY Date: Fri, 24 Nov 2023 18:28:11 +0100 Subject: [PATCH] purge: do not purge infra pkgs by default By default infra pkgs will remain installed after the cluster purge as they might already be there at Ceph installation and could be used by other processes on the nodes. Fixes: https://github.com/ceph/cephadm-ansible/issues/239 Signed-off-by: Teoman ONAY --- ceph_defaults/defaults/main.yml | 5 +++-- cephadm-preflight.yml | 2 +- cephadm-purge-cluster.yml | 21 ++++++++++++--------- 3 files changed, 16 insertions(+), 12 deletions(-) diff --git a/ceph_defaults/defaults/main.yml b/ceph_defaults/defaults/main.yml index 29b62dd..ba8009b 100644 --- a/ceph_defaults/defaults/main.yml +++ b/ceph_defaults/defaults/main.yml @@ -12,11 +12,12 @@ ceph_ibm_key: https://public.dhe.ibm.com/ibmdl/export/pub/storage/ceph/RPM-GPG-K ceph_release: quincy upgrade_ceph_packages: false ceph_pkgs: - - chrony - cephadm - - podman - ceph-common ceph_client_pkgs: - chrony - ceph-common +infra_pkgs: + - chrony + - podman client_group: clients diff --git a/cephadm-preflight.yml b/cephadm-preflight.yml index aa3f57f..ba15fb4 100644 --- a/cephadm-preflight.yml +++ b/cephadm-preflight.yml @@ -191,7 +191,7 @@ - name: install prerequisites packages package: - name: "{{ ceph_pkgs }}" + name: "{{ ceph_pkgs + infra_pkgs }}" state: "{{ (upgrade_ceph_packages | bool) | ternary('latest', 'present') }}" register: result until: result is succeeded diff --git a/cephadm-purge-cluster.yml b/cephadm-purge-cluster.yml index 647f56a..41eef7b 100644 --- a/cephadm-purge-cluster.yml +++ b/cephadm-purge-cluster.yml @@ -55,7 +55,7 @@ - name: check cluster hosts have cephadm and the required fsid {{ fsid }} - hosts: all + hosts: all,!{{ client_group }} gather_facts: false become: true any_errors_fatal: true @@ -70,7 +70,6 @@ register: cephadm_exists changed_when: false failed_when: false - when: group_names != [client_group] - name: fail if cephadm is not available fail: @@ -78,14 +77,12 @@ The cephadm binary is missing on {{ inventory_hostname }}. To purge the cluster you must have cephadm installed on ALL ceph hosts. Install manually or use the preflight playbook. when: - - group_names != [client_group] - cephadm_exists.rc - name: check fsid directory given is valid across the cluster stat: path: /var/lib/ceph/{{ fsid }} register: fsid_exists - when: group_names != [client_group] - name: fail if the fsid directory is missing fail: @@ -93,7 +90,6 @@ The fsid directory '/var/lib/ceph/{{ fsid }}' can not be found on {{ inventory_hostname }} Is the fsid correct? when: - - group_names != [client_group] - not fsid_exists.stat.exists | bool @@ -133,7 +129,7 @@ - name: Purge ceph daemons from all hosts in the cluster - hosts: all + hosts: all,!{{ client_group }} become: true gather_facts: false any_errors_fatal: true @@ -144,7 +140,6 @@ - name: purge ceph daemons command: "cephadm rm-cluster --force --zap-osds --fsid {{ fsid }}" - when: group_names != [client_group] - name: remove ceph packages @@ -157,9 +152,17 @@ import_role: name: ceph_defaults - - name: remove ceph packages + - name: remove ceph packages on servers + package: + name: "{{ ceph_pkgs | unique }}" + state: absent + register: result + until: result is succeeded + + - name: remove ceph packages on clients package: - name: "{{ 'ceph-common' if group_names == [client_group] else ceph_pkgs | unique }}" + name: ceph-common state: absent register: result until: result is succeeded +