From b1b1895c91361134eafb5149fd3273cad7a9a09e Mon Sep 17 00:00:00 2001 From: Jack Hodgkiss Date: Sat, 7 Oct 2023 11:43:29 +0100 Subject: [PATCH 1/3] feat: add `cephadm` maintenance playbooks --- .../ansible/cephadm-enter-maintenance.yml | 32 +++++++++++++++++++ .../ansible/cephadm-exit-maintenance.yml | 11 +++++++ 2 files changed, 43 insertions(+) create mode 100644 etc/kayobe/ansible/cephadm-enter-maintenance.yml create mode 100644 etc/kayobe/ansible/cephadm-exit-maintenance.yml diff --git a/etc/kayobe/ansible/cephadm-enter-maintenance.yml b/etc/kayobe/ansible/cephadm-enter-maintenance.yml new file mode 100644 index 000000000..36cb0283b --- /dev/null +++ b/etc/kayobe/ansible/cephadm-enter-maintenance.yml @@ -0,0 +1,32 @@ +--- +- name: Ensure a Ceph host has entered host maintenance + gather_facts: true + hosts: ceph + become: true + tasks: + - name: Check if host can enter maintenance mode + import_role: + name: stackhpc.cephadm.commands + vars: + cephadm_commands: + - "orch host ok-to-stop {{ ansible_facts.nodename }}" + + - block: + - name: Extract full name of active Ceph manager + ansible.builtin.set_fact: + active_ceph_mgr: "{{ cephadm_commands_result.results[0].stderr | split | last | replace(\"'\",'') }}" + + - name: Ensure active manager has been switched to another node + import_role: + name: stackhpc.cephadm.commands + vars: + cephadm_commands: + - "mgr fail {{ active_ceph_mgr }}" + when: '"Cannot stop active Mgr daemon" in cephadm_commands_result.results[0].stderr' + + - name: Ensure host is in maintenance mode + import_role: + name: stackhpc.cephadm.commands + vars: + cephadm_commands: + - "orch host maintenance enter {{ ansible_facts.nodename }}" diff --git a/etc/kayobe/ansible/cephadm-exit-maintenance.yml b/etc/kayobe/ansible/cephadm-exit-maintenance.yml new file mode 100644 index 000000000..19f25a65d --- /dev/null +++ b/etc/kayobe/ansible/cephadm-exit-maintenance.yml @@ -0,0 +1,11 @@ +--- +- name: Ensure a Ceph host has exited host maintenance + gather_facts: true + hosts: ceph + become: true + tasks: + - import_role: + name: stackhpc.cephadm.commands + vars: + cephadm_commands: + - "orch host maintenance exit {{ ansible_facts.nodename }}" From 05229859c680aebe3174c69a7539167ce4225c9d Mon Sep 17 00:00:00 2001 From: Jack Hodgkiss Date: Mon, 9 Oct 2023 10:57:51 +0100 Subject: [PATCH 2/3] fix: wrong indentation --- etc/kayobe/ansible/cephadm-enter-maintenance.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/etc/kayobe/ansible/cephadm-enter-maintenance.yml b/etc/kayobe/ansible/cephadm-enter-maintenance.yml index 36cb0283b..1ead0caa0 100644 --- a/etc/kayobe/ansible/cephadm-enter-maintenance.yml +++ b/etc/kayobe/ansible/cephadm-enter-maintenance.yml @@ -12,16 +12,16 @@ - "orch host ok-to-stop {{ ansible_facts.nodename }}" - block: - - name: Extract full name of active Ceph manager - ansible.builtin.set_fact: + - name: Extract full name of active Ceph manager + ansible.builtin.set_fact: active_ceph_mgr: "{{ cephadm_commands_result.results[0].stderr | split | last | replace(\"'\",'') }}" - - name: Ensure active manager has been switched to another node - import_role: - name: stackhpc.cephadm.commands - vars: - cephadm_commands: - - "mgr fail {{ active_ceph_mgr }}" + - name: Ensure active manager has been switched to another node + import_role: + name: stackhpc.cephadm.commands + vars: + cephadm_commands: + - "mgr fail {{ active_ceph_mgr }}" when: '"Cannot stop active Mgr daemon" in cephadm_commands_result.results[0].stderr' - name: Ensure host is in maintenance mode From b2818822feb18dff49a1563f68908b4c867fa422 Mon Sep 17 00:00:00 2001 From: Jack Hodgkiss Date: Tue, 10 Oct 2023 10:49:22 +0100 Subject: [PATCH 3/3] feat: use `FQDN` for `import_role` --- etc/kayobe/ansible/cephadm-enter-maintenance.yml | 6 +++--- etc/kayobe/ansible/cephadm-exit-maintenance.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/etc/kayobe/ansible/cephadm-enter-maintenance.yml b/etc/kayobe/ansible/cephadm-enter-maintenance.yml index 1ead0caa0..8cff8943b 100644 --- a/etc/kayobe/ansible/cephadm-enter-maintenance.yml +++ b/etc/kayobe/ansible/cephadm-enter-maintenance.yml @@ -5,7 +5,7 @@ become: true tasks: - name: Check if host can enter maintenance mode - import_role: + ansible.builtin.import_role: name: stackhpc.cephadm.commands vars: cephadm_commands: @@ -17,7 +17,7 @@ active_ceph_mgr: "{{ cephadm_commands_result.results[0].stderr | split | last | replace(\"'\",'') }}" - name: Ensure active manager has been switched to another node - import_role: + ansible.builtin.import_role: name: stackhpc.cephadm.commands vars: cephadm_commands: @@ -25,7 +25,7 @@ when: '"Cannot stop active Mgr daemon" in cephadm_commands_result.results[0].stderr' - name: Ensure host is in maintenance mode - import_role: + ansible.builtin.import_role: name: stackhpc.cephadm.commands vars: cephadm_commands: diff --git a/etc/kayobe/ansible/cephadm-exit-maintenance.yml b/etc/kayobe/ansible/cephadm-exit-maintenance.yml index 19f25a65d..aada9ce26 100644 --- a/etc/kayobe/ansible/cephadm-exit-maintenance.yml +++ b/etc/kayobe/ansible/cephadm-exit-maintenance.yml @@ -4,7 +4,7 @@ hosts: ceph become: true tasks: - - import_role: + - ansible.builtin.import_role: name: stackhpc.cephadm.commands vars: cephadm_commands: