From e99305c684d9baa76f02093588b821cca629dc6b Mon Sep 17 00:00:00 2001 From: Guillaume Abrioux Date: Wed, 20 Mar 2019 07:46:23 +0100 Subject: [PATCH] handlers: do not trigger handlers on rolling_update rolling_update playbook already takes care of stopping/starting services during the sequence. There's no need to trigger potential unwanted services restart. Signed-off-by: Guillaume Abrioux --- roles/ceph-handler/handlers/main.yml | 928 ++++++++++++++------------- 1 file changed, 468 insertions(+), 460 deletions(-) diff --git a/roles/ceph-handler/handlers/main.yml b/roles/ceph-handler/handlers/main.yml index 038d2d8ef..14d01612d 100644 --- a/roles/ceph-handler/handlers/main.yml +++ b/roles/ceph-handler/handlers/main.yml @@ -1,461 +1,469 @@ --- -- name: update apt cache - apt: - update-cache: yes - when: - - ansible_os_family == 'Debian' - register: result - until: result is succeeded - -# We only want to restart on hosts that have called the handler. -# This var is set when he handler is called, and unset after the -# restart to ensure only the correct hosts are restarted. -- name: set _mon_handler_called before restart - set_fact: - _mon_handler_called: True - listen: "restart ceph mons" - -- name: copy mon restart script - template: - src: restart_mon_daemon.sh.j2 - dest: /tmp/restart_mon_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph mons" - when: - - mon_group_name in group_names - -- name: restart ceph mon daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_mon_daemon.sh - listen: "restart ceph mons" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mon_group_name in group_names - - not containerized_deployment - - hostvars[item]['_mon_handler_called'] | default(False) - - mon_socket_stat.rc == 0 - with_items: "{{ groups[mon_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph mon daemon(s) - container - command: /usr/bin/env bash /tmp/restart_mon_daemon.sh - listen: "restart ceph mons" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mon_group_name in group_names - - containerized_deployment - - ceph_mon_container_stat.get('rc') == 0 - - hostvars[item]['_mon_handler_called'] | default(False) - - ceph_mon_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[mon_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _mon_handler_called after restart - set_fact: - _mon_handler_called: False - listen: "restart ceph mons" - -- name: set _osd_handler_called before restart - set_fact: - _osd_handler_called: True - listen: "restart ceph osds" - -# This does not just restart OSDs but everything else too. Unfortunately -# at this time the ansible role does not have an OSD id list to use -# for restarting them specifically. -# This does not need to run during a rolling update as the playbook will -# restart all OSDs using the tasks "start ceph osd" or -# "restart containerized ceph osd" -- name: copy osd restart script - template: - src: restart_osd_daemon.sh.j2 - dest: /tmp/restart_osd_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph osds" - when: - - osd_group_name in group_names - - not rolling_update - -- name: restart ceph osds daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_osd_daemon.sh - listen: "restart ceph osds" - when: - - osd_group_name in group_names - - not containerized_deployment - - not rolling_update - # We do not want to run these checks on initial deployment (`socket_osd_container.results[n].rc == 0`) - # except when a crush location is specified. ceph-disk will start the osds before the osd crush location is specified - - osd_socket_stat.rc == 0 - - ceph_current_status.fsid is defined - - handler_health_osd_check - - hostvars[item]['_osd_handler_called'] | default(False) - with_items: "{{ groups[osd_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph osds daemon(s) - container - command: /usr/bin/env bash /tmp/restart_osd_daemon.sh - listen: "restart ceph osds" - when: - # We do not want to run these checks on initial deployment (`socket_osd_container_stat.results[n].rc == 0`) - # except when a crush location is specified. ceph-disk will start the osds before the osd crush location is specified - - osd_group_name in group_names - - containerized_deployment - - not rolling_update - - inventory_hostname == groups.get(osd_group_name) | last - - ceph_osd_container_stat.get('rc') == 0 - - ceph_osd_container_stat.get('stdout_lines', [])|length != 0 - - handler_health_osd_check - - hostvars[item]['_osd_handler_called'] | default(False) - with_items: "{{ groups[osd_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _osd_handler_called after restart - set_fact: - _osd_handler_called: False - listen: "restart ceph osds" - -- name: set _mds_handler_called before restart - set_fact: - _mds_handler_called: True - listen: "restart ceph mdss" - -- name: copy mds restart script - template: - src: restart_mds_daemon.sh.j2 - dest: /tmp/restart_mds_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph mdss" - when: - - mds_group_name in group_names - -- name: restart ceph mds daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_mds_daemon.sh - listen: "restart ceph mdss" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mds_group_name in group_names - - not containerized_deployment - - hostvars[item]['_mds_handler_called'] | default(False) - - mds_socket_stat.rc == 0 - with_items: "{{ groups[mds_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph mds daemon(s) - container - command: /usr/bin/env bash /tmp/restart_mds_daemon.sh - listen: "restart ceph mdss" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mds_group_name in group_names - - containerized_deployment - - ceph_mds_container_stat.get('rc') == 0 - - hostvars[item]['_mds_handler_called'] | default(False) - - ceph_mds_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[mds_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _mds_handler_called after restart - set_fact: - _mds_handler_called: False - listen: "restart ceph mdss" - -- name: set _rgw_handler_called before restart - set_fact: - _rgw_handler_called: True - listen: "restart ceph rgws" - -- name: copy rgw restart script - template: - src: restart_rgw_daemon.sh.j2 - dest: /tmp/restart_rgw_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph rgws" - when: - - rgw_group_name in group_names - -- name: restart ceph rgw daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_rgw_daemon.sh - listen: "restart ceph rgws" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - rgw_group_name in group_names - - not containerized_deployment - - hostvars[item]['_rgw_handler_called'] | default(False) - - rgw_socket_stat.rc == 0 - with_items: "{{ groups[rgw_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph rgw daemon(s) - container - command: /usr/bin/env bash /tmp/restart_rgw_daemon.sh - listen: "restart ceph rgws" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - rgw_group_name in group_names - - containerized_deployment - - ceph_rgw_container_stat.get('rc') == 0 - - hostvars[item]['_rgw_handler_called'] | default(False) - - ceph_rgw_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[rgw_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _rgw_handler_called after restart - set_fact: - _rgw_handler_called: False - listen: "restart ceph rgws" - -- name: set _nfs_handler_called before restart - set_fact: - _nfs_handler_called: True - listen: "restart ceph nfss" - -- name: copy nfs restart script - template: - src: restart_nfs_daemon.sh.j2 - dest: /tmp/restart_nfs_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph nfss" - when: - - nfs_group_name in group_names - -- name: restart ceph nfs daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_nfs_daemon.sh - listen: "restart ceph nfss" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - nfs_group_name in group_names - - not containerized_deployment - - hostvars[item]['_nfs_handler_called'] | default(False) - - nfs_socket_stat.rc == 0 - with_items: "{{ groups[nfs_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph nfs daemon(s) - container - command: /usr/bin/env bash /tmp/restart_nfs_daemon.sh - listen: "restart ceph nfss" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - nfs_group_name in group_names - - containerized_deployment - - ceph_nfs_container_stat.get('rc') == 0 - - hostvars[item]['_nfs_handler_called'] | default(False) - - ceph_nfs_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[nfs_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _nfs_handler_called after restart - set_fact: - _nfs_handler_called: False - listen: "restart ceph nfss" - -- name: set _rbdmirror_handler_called before restart - set_fact: - _rbdmirror_handler_called: True - listen: "restart ceph rbdmirrors" - -- name: copy rbd mirror restart script - template: - src: restart_rbd_mirror_daemon.sh.j2 - dest: /tmp/restart_rbd_mirror_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph rbdmirrors" - when: - - rbdmirror_group_name in group_names - -- name: restart ceph rbd mirror daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_rbd_mirror_daemon.sh - listen: "restart ceph rbdmirrors" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - rbdmirror_group_name in group_names - - not containerized_deployment - - hostvars[item]['_rbdmirror_handler_called'] | default(False) - - rbd_mirror_socket_stat.rc == 0 - with_items: "{{ groups[rbdmirror_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph rbd mirror daemon(s) - container - command: /usr/bin/env bash /tmp/restart_rbd_mirror_daemon.sh - listen: "restart ceph rbdmirrors" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - rbdmirror_group_name in group_names - - containerized_deployment - - ceph_rbd_mirror_container_stat.get('rc') == 0 - - hostvars[item]['_rbdmirror_handler_called'] | default(False) - - ceph_rbd_mirror_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[rbdmirror_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _rbdmirror_handler_called after restart - set_fact: - _rbdmirror_handler_called: False - listen: "restart ceph rbdmirrors" - -- name: set _mgr_handler_called before restart - set_fact: - _mgr_handler_called: True - listen: "restart ceph mgrs" - -- name: copy mgr restart script - template: - src: restart_mgr_daemon.sh.j2 - dest: /tmp/restart_mgr_daemon.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph mgrs" - when: - - mgr_group_name in group_names - -- name: restart ceph mgr daemon(s) - non container - command: /usr/bin/env bash /tmp/restart_mgr_daemon.sh - listen: "restart ceph mgrs" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mgr_group_name in group_names - - not containerized_deployment - - hostvars[item]['_mgr_handler_called'] | default(False) - - mgr_socket_stat.rc == 0 - with_items: "{{ groups[mgr_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: restart ceph mgr daemon(s) - container - command: /usr/bin/env bash /tmp/restart_mgr_daemon.sh - listen: "restart ceph mgrs" - when: - # We do not want to run these checks on initial deployment (`socket.rc == 0`) - - mgr_group_name in group_names - - containerized_deployment - - ceph_mgr_container_stat.get('rc') == 0 - - hostvars[item]['_mgr_handler_called'] | default(False) - - ceph_mgr_container_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[mgr_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _mgr_handler_called after restart - set_fact: - _mgr_handler_called: False - listen: "restart ceph mgrs" - -- name: set _tcmu_runner_handler_called before restart - set_fact: - _tcmu_runner_handler_called: True - listen: "restart ceph tcmu-runner" - -- name: copy tcmu-runner restart script - template: - src: restart_tcmu_runner.sh.j2 - dest: /tmp/restart_tcmu_runner.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph tcmu-runner" - when: - - iscsi_gw_group_name in group_names - -- name: restart tcmu-runner - command: /usr/bin/env bash /tmp/restart_tcmu_runner.sh - listen: "restart ceph tcmu-runner" - when: - - iscsi_gw_group_name in group_names - - ceph_tcmu_runner_stat.get('rc') == 0 - - hostvars[item]['_tcmu_runner_handler_called'] | default(False) - - ceph_tcmu_runner_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[iscsi_gw_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _tcmu_runner_handler_called after restart - set_fact: - _tcmu_runner_handler_called: False - listen: "restart ceph tcmu-runner" - -- name: set _rbd_target_gw_handler_called before restart - set_fact: - _rbd_target_gw_handler_called: True - listen: "restart ceph rbd-target-gw" - -- name: copy rbd-target-gw restart script - template: - src: restart_rbd_target_gw.sh.j2 - dest: /tmp/restart_rbd_target_gw.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph rbd-target-gw" - when: - - iscsi_gw_group_name in group_names - -- name: restart rbd-target-gw - command: /usr/bin/env bash /tmp/restart_rbd_target_gw.sh - listen: "restart ceph rbd-target-gw" - when: - - iscsi_gw_group_name in group_names - - ceph_rbd_target_gw_stat.get('rc') == 0 - - hostvars[item]['_rbd_target_gw_handler_called'] | default(False) - - ceph_rbd_target_gw_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[iscsi_gw_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _rbd_target_gw_handler_called after restart - set_fact: - _rbd_target_gw_handler_called: False - listen: "restart ceph rbd-target-gw" - -- name: set _rbd_target_api_handler_called before restart - set_fact: - _rbd_target_api_handler_called: True - listen: "restart ceph rbd-target-api" - -- name: copy rbd-target-api restart script - template: - src: restart_rbd_target_api.sh.j2 - dest: /tmp/restart_rbd_target_api.sh - owner: root - group: root - mode: 0750 - listen: "restart ceph rbd-target-api" - when: - - iscsi_gw_group_name in group_names - -- name: restart rbd-target-api - command: /usr/bin/env bash /tmp/restart_rbd_target_api.sh - listen: "restart ceph rbd-target-api" - when: - - iscsi_gw_group_name in group_names - - ceph_rbd_target_api_stat.get('rc') == 0 - - hostvars[item]['_rbd_target_api_handler_called'] | default(False) - - ceph_rbd_target_api_stat.get('stdout_lines', [])|length != 0 - with_items: "{{ groups[iscsi_gw_group_name] }}" - delegate_to: "{{ item }}" - run_once: True - -- name: set _rbd_target_api_handler_called after restart - set_fact: - _rbd_target_api_handler_called: False - listen: "restart ceph rbd-target-api" +- name: handlers + when: not rolling_update + block: + - name: update apt cache + apt: + update-cache: yes + when: + - ansible_os_family == 'Debian' + register: result + until: result is succeeded + + # We only want to restart on hosts that have called the handler. + # This var is set when he handler is called, and unset after the + # restart to ensure only the correct hosts are restarted. + - name: set _mon_handler_called before restart + set_fact: + _mon_handler_called: True + listen: "restart ceph mons" + + - name: copy mon restart script + template: + src: restart_mon_daemon.sh.j2 + dest: /tmp/restart_mon_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph mons" + when: + - mon_group_name in group_names + - not rolling_update + + - name: restart ceph mon daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_mon_daemon.sh + listen: "restart ceph mons" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mon_group_name in group_names + - not containerized_deployment + - hostvars[item]['_mon_handler_called'] | default(False) + - mon_socket_stat.rc == 0 + - not rolling_update + with_items: "{{ groups[mon_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph mon daemon(s) - container + command: /usr/bin/env bash /tmp/restart_mon_daemon.sh + listen: "restart ceph mons" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mon_group_name in group_names + - containerized_deployment + - ceph_mon_container_stat.get('rc') == 0 + - hostvars[item]['_mon_handler_called'] | default(False) + - ceph_mon_container_stat.get('stdout_lines', [])|length != 0 + - not rolling_update + with_items: "{{ groups[mon_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _mon_handler_called after restart + set_fact: + _mon_handler_called: False + listen: "restart ceph mons" + + - name: set _osd_handler_called before restart + set_fact: + _osd_handler_called: True + listen: "restart ceph osds" + + # This does not just restart OSDs but everything else too. Unfortunately + # at this time the ansible role does not have an OSD id list to use + # for restarting them specifically. + # This does not need to run during a rolling update as the playbook will + # restart all OSDs using the tasks "start ceph osd" or + # "restart containerized ceph osd" + - name: copy osd restart script + template: + src: restart_osd_daemon.sh.j2 + dest: /tmp/restart_osd_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph osds" + when: + - osd_group_name in group_names + - not rolling_update + + - name: restart ceph osds daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_osd_daemon.sh + listen: "restart ceph osds" + when: + - osd_group_name in group_names + - not containerized_deployment + - not rolling_update + # We do not want to run these checks on initial deployment (`socket_osd_container.results[n].rc == 0`) + # except when a crush location is specified. ceph-disk will start the osds before the osd crush location is specified + - osd_socket_stat.rc == 0 + - ceph_current_status.fsid is defined + - handler_health_osd_check + - hostvars[item]['_osd_handler_called'] | default(False) + with_items: "{{ groups[osd_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph osds daemon(s) - container + command: /usr/bin/env bash /tmp/restart_osd_daemon.sh + listen: "restart ceph osds" + when: + # We do not want to run these checks on initial deployment (`socket_osd_container_stat.results[n].rc == 0`) + # except when a crush location is specified. ceph-disk will start the osds before the osd crush location is specified + - osd_group_name in group_names + - containerized_deployment + - not rolling_update + - inventory_hostname == groups.get(osd_group_name) | last + - ceph_osd_container_stat.get('rc') == 0 + - ceph_osd_container_stat.get('stdout_lines', [])|length != 0 + - handler_health_osd_check + - hostvars[item]['_osd_handler_called'] | default(False) + with_items: "{{ groups[osd_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _osd_handler_called after restart + set_fact: + _osd_handler_called: False + listen: "restart ceph osds" + + - name: set _mds_handler_called before restart + set_fact: + _mds_handler_called: True + listen: "restart ceph mdss" + + - name: copy mds restart script + template: + src: restart_mds_daemon.sh.j2 + dest: /tmp/restart_mds_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph mdss" + when: + - mds_group_name in group_names + + - name: restart ceph mds daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_mds_daemon.sh + listen: "restart ceph mdss" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mds_group_name in group_names + - not containerized_deployment + - hostvars[item]['_mds_handler_called'] | default(False) + - mds_socket_stat.rc == 0 + with_items: "{{ groups[mds_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph mds daemon(s) - container + command: /usr/bin/env bash /tmp/restart_mds_daemon.sh + listen: "restart ceph mdss" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mds_group_name in group_names + - containerized_deployment + - ceph_mds_container_stat.get('rc') == 0 + - hostvars[item]['_mds_handler_called'] | default(False) + - ceph_mds_container_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[mds_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _mds_handler_called after restart + set_fact: + _mds_handler_called: False + listen: "restart ceph mdss" + + - name: set _rgw_handler_called before restart + set_fact: + _rgw_handler_called: True + listen: "restart ceph rgws" + + - name: copy rgw restart script + template: + src: restart_rgw_daemon.sh.j2 + dest: /tmp/restart_rgw_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph rgws" + when: + - rgw_group_name in group_names + + - name: restart ceph rgw daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_rgw_daemon.sh + listen: "restart ceph rgws" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - rgw_group_name in group_names + - not containerized_deployment + - hostvars[item]['_rgw_handler_called'] | default(False) + - rgw_socket_stat.rc == 0 + with_items: "{{ groups[rgw_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph rgw daemon(s) - container + command: /usr/bin/env bash /tmp/restart_rgw_daemon.sh + listen: "restart ceph rgws" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - rgw_group_name in group_names + - containerized_deployment + - ceph_rgw_container_stat.get('rc') == 0 + - hostvars[item]['_rgw_handler_called'] | default(False) + - ceph_rgw_container_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[rgw_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _rgw_handler_called after restart + set_fact: + _rgw_handler_called: False + listen: "restart ceph rgws" + + - name: set _nfs_handler_called before restart + set_fact: + _nfs_handler_called: True + listen: "restart ceph nfss" + + - name: copy nfs restart script + template: + src: restart_nfs_daemon.sh.j2 + dest: /tmp/restart_nfs_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph nfss" + when: + - nfs_group_name in group_names + + - name: restart ceph nfs daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_nfs_daemon.sh + listen: "restart ceph nfss" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - nfs_group_name in group_names + - not containerized_deployment + - hostvars[item]['_nfs_handler_called'] | default(False) + - nfs_socket_stat.rc == 0 + with_items: "{{ groups[nfs_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph nfs daemon(s) - container + command: /usr/bin/env bash /tmp/restart_nfs_daemon.sh + listen: "restart ceph nfss" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - nfs_group_name in group_names + - containerized_deployment + - ceph_nfs_container_stat.get('rc') == 0 + - hostvars[item]['_nfs_handler_called'] | default(False) + - ceph_nfs_container_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[nfs_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _nfs_handler_called after restart + set_fact: + _nfs_handler_called: False + listen: "restart ceph nfss" + + - name: set _rbdmirror_handler_called before restart + set_fact: + _rbdmirror_handler_called: True + listen: "restart ceph rbdmirrors" + + - name: copy rbd mirror restart script + template: + src: restart_rbd_mirror_daemon.sh.j2 + dest: /tmp/restart_rbd_mirror_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph rbdmirrors" + when: + - rbdmirror_group_name in group_names + + - name: restart ceph rbd mirror daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_rbd_mirror_daemon.sh + listen: "restart ceph rbdmirrors" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - rbdmirror_group_name in group_names + - not containerized_deployment + - hostvars[item]['_rbdmirror_handler_called'] | default(False) + - rbd_mirror_socket_stat.rc == 0 + with_items: "{{ groups[rbdmirror_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph rbd mirror daemon(s) - container + command: /usr/bin/env bash /tmp/restart_rbd_mirror_daemon.sh + listen: "restart ceph rbdmirrors" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - rbdmirror_group_name in group_names + - containerized_deployment + - ceph_rbd_mirror_container_stat.get('rc') == 0 + - hostvars[item]['_rbdmirror_handler_called'] | default(False) + - ceph_rbd_mirror_container_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[rbdmirror_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _rbdmirror_handler_called after restart + set_fact: + _rbdmirror_handler_called: False + listen: "restart ceph rbdmirrors" + + - name: set _mgr_handler_called before restart + set_fact: + _mgr_handler_called: True + listen: "restart ceph mgrs" + + - name: copy mgr restart script + template: + src: restart_mgr_daemon.sh.j2 + dest: /tmp/restart_mgr_daemon.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph mgrs" + when: + - mgr_group_name in group_names + + - name: restart ceph mgr daemon(s) - non container + command: /usr/bin/env bash /tmp/restart_mgr_daemon.sh + listen: "restart ceph mgrs" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mgr_group_name in group_names + - not containerized_deployment + - hostvars[item]['_mgr_handler_called'] | default(False) + - mgr_socket_stat.rc == 0 + - not rolling_update + with_items: "{{ groups[mgr_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: restart ceph mgr daemon(s) - container + command: /usr/bin/env bash /tmp/restart_mgr_daemon.sh + listen: "restart ceph mgrs" + when: + # We do not want to run these checks on initial deployment (`socket.rc == 0`) + - mgr_group_name in group_names + - containerized_deployment + - ceph_mgr_container_stat.get('rc') == 0 + - hostvars[item]['_mgr_handler_called'] | default(False) + - ceph_mgr_container_stat.get('stdout_lines', [])|length != 0 + - not rolling_update + with_items: "{{ groups[mgr_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _mgr_handler_called after restart + set_fact: + _mgr_handler_called: False + listen: "restart ceph mgrs" + + - name: set _tcmu_runner_handler_called before restart + set_fact: + _tcmu_runner_handler_called: True + listen: "restart ceph tcmu-runner" + + - name: copy tcmu-runner restart script + template: + src: restart_tcmu_runner.sh.j2 + dest: /tmp/restart_tcmu_runner.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph tcmu-runner" + when: + - iscsi_gw_group_name in group_names + + - name: restart tcmu-runner + command: /usr/bin/env bash /tmp/restart_tcmu_runner.sh + listen: "restart ceph tcmu-runner" + when: + - iscsi_gw_group_name in group_names + - ceph_tcmu_runner_stat.get('rc') == 0 + - hostvars[item]['_tcmu_runner_handler_called'] | default(False) + - ceph_tcmu_runner_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[iscsi_gw_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _tcmu_runner_handler_called after restart + set_fact: + _tcmu_runner_handler_called: False + listen: "restart ceph tcmu-runner" + + - name: set _rbd_target_gw_handler_called before restart + set_fact: + _rbd_target_gw_handler_called: True + listen: "restart ceph rbd-target-gw" + + - name: copy rbd-target-gw restart script + template: + src: restart_rbd_target_gw.sh.j2 + dest: /tmp/restart_rbd_target_gw.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph rbd-target-gw" + when: + - iscsi_gw_group_name in group_names + + - name: restart rbd-target-gw + command: /usr/bin/env bash /tmp/restart_rbd_target_gw.sh + listen: "restart ceph rbd-target-gw" + when: + - iscsi_gw_group_name in group_names + - ceph_rbd_target_gw_stat.get('rc') == 0 + - hostvars[item]['_rbd_target_gw_handler_called'] | default(False) + - ceph_rbd_target_gw_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[iscsi_gw_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _rbd_target_gw_handler_called after restart + set_fact: + _rbd_target_gw_handler_called: False + listen: "restart ceph rbd-target-gw" + + - name: set _rbd_target_api_handler_called before restart + set_fact: + _rbd_target_api_handler_called: True + listen: "restart ceph rbd-target-api" + + - name: copy rbd-target-api restart script + template: + src: restart_rbd_target_api.sh.j2 + dest: /tmp/restart_rbd_target_api.sh + owner: root + group: root + mode: 0750 + listen: "restart ceph rbd-target-api" + when: + - iscsi_gw_group_name in group_names + + - name: restart rbd-target-api + command: /usr/bin/env bash /tmp/restart_rbd_target_api.sh + listen: "restart ceph rbd-target-api" + when: + - iscsi_gw_group_name in group_names + - ceph_rbd_target_api_stat.get('rc') == 0 + - hostvars[item]['_rbd_target_api_handler_called'] | default(False) + - ceph_rbd_target_api_stat.get('stdout_lines', [])|length != 0 + with_items: "{{ groups[iscsi_gw_group_name] }}" + delegate_to: "{{ item }}" + run_once: True + + - name: set _rbd_target_api_handler_called after restart + set_fact: + _rbd_target_api_handler_called: False + listen: "restart ceph rbd-target-api" -- 2.39.5