]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
day2: set noout at the bucket level instead refact_module_osd_flag 6147/head
authorGuillaume Abrioux <gabrioux@redhat.com>
Wed, 16 Dec 2020 10:38:20 +0000 (11:38 +0100)
committerGuillaume Abrioux <gabrioux@redhat.com>
Wed, 6 Jul 2022 01:38:35 +0000 (03:38 +0200)
It is safer to set the `noout` flag at the bucket level instead of the
whole cluster.
This commit updates the 3 playbooks where we set `noout` flag so it
doesn't set it at the whole cluster level anymore.

Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
infrastructure-playbooks/cephadm-adopt.yml
infrastructure-playbooks/rolling_update.yml
infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml

index 40e06a34cb0b2b38a39e55867f62ee7015b6c31a..35f6dd855052229a69329d0834a6471d25dfb74e 100644 (file)
         CEPHADM_IMAGE: '{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}'
 
 
-- name: set osd flags
-  hosts: "{{ osd_group_name|default('osds') }}"
+- name: set osd flag nodeep-scrub
+  hosts: "{{ mon_group_name|default('mons') }}[0]"
   become: true
   gather_facts: false
   any_errors_fatal: True
       command: "{{ ceph_cmd }} --cluster {{ cluster }} osd pool ls detail -f json"
       register: pool_list
       run_once: true
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       changed_when: false
       check_mode: false
 
       command: "{{ ceph_cmd }} --cluster {{ cluster }} balancer status -f json"
       register: balancer_status_adopt
       run_once: true
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       changed_when: false
       check_mode: false
 
         cluster: "{{ cluster }}"
         pg_autoscale_mode: false
       with_items: "{{ pools_pgautoscaler_mode }}"
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       run_once: true
       when:
         - pools_pgautoscaler_mode is defined
       with_items:
         - noout
         - nodeep-scrub
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       run_once: true
       environment:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         tasks_from: container_binary.yml
       when: containerized_deployment | bool
 
+    - name: set osd flag noout
+      command: "{{ cephadm_cmd }} shell --fsid {{ fsid }} -- ceph --cluster {{ cluster }} osd set-group noout {{ inventory_hostname }}"
+      changed_when: false
+      environment:
+        CEPHADM_IMAGE: '{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}'
+
     - name: get osd list
       ceph_volume:
         cluster: "{{ cluster }}"
       environment:
         CEPHADM_IMAGE: '{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}'
 
-- name: unset osd flags
-  hosts: "{{ osd_group_name|default('osds') }}"
+    - name: unset osd flag noout
+      command: "{{ cephadm_cmd }} shell --fsid {{ fsid }} -- ceph --cluster {{ cluster }} osd unset-group noout {{ inventory_hostname }}"
+      changed_when: false
+      environment:
+        CEPHADM_IMAGE: '{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}'
+
+- name: unset osd flag nodeep-scrub
+  hosts: "{{ mon_group_name|default('mons') }}[0]"
   become: true
   gather_facts: false
   any_errors_fatal: True
         cluster: "{{ cluster }}"
         pg_autoscale_mode: true
       with_items: "{{ pools_pgautoscaler_mode }}"
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       run_once: true
       when:
         - pools_pgautoscaler_mode is defined
       with_items:
         - noout
         - nodeep-scrub
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       run_once: true
+
+    - name: unset osd flag nodeep-scrub
+      command: "{{ cephadm_cmd }} shell --fsid {{ fsid }} -- ceph --cluster {{ cluster }} osd unset nodeep-scrub"
+      changed_when: false
       environment:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         CEPH_CONTAINER_BINARY: "{{ container_binary }}"
     - name: re-enable balancer
       command: "{{ ceph_cmd }} --cluster {{ cluster }} balancer on"
       run_once: true
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       changed_when: false
       when: (balancer_status_adopt.stdout | from_json)['active'] | bool
 
index 4532d4998b194a3c821822a4cd13f5da1acef8c8..0be31173c59b4a0898072b28c5140443f804b9d8 100644 (file)
         name: ceph-mgr
 
 
-- name: set osd flags
-  hosts: "{{ osd_group_name | default('osds') }}"
-  tags: osds
+- name: set osd flag nodeep-scrub
+  hosts: "{{ mon_group_name | default('mons') }}[0]"
   become: True
   gather_facts: false
   tasks:
 
     - name: set osd flags, disable autoscaler and balancer
       run_once: true
-      delegate_to: "{{ groups[mon_group_name][0] }}"
       block:
         - name: get pool list
           command: "{{ ceph_cmd }} --cluster {{ cluster }} osd pool ls detail -f json"
             - noout
             - nodeep-scrub
 
+    - name: set osd flag nodeep-scrub
+      ceph_osd_flag:
+        name: "nodeep-scrub"
+        cluster: "{{ cluster }}"
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
+
 - name: upgrade ceph osds cluster
   vars:
     health_osd_check_retries: 600
     - import_role:
         name: ceph-facts
 
+    - name: set osd flag noout
+      ceph_osd_flag:
+        name: noout
+        level: bucket
+        bucket: "{{ inventory_hostname }}"
+        cluster: "{{ cluster }}"
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
+
     - name: get osd numbers - non container
       shell: if [ -d /var/lib/ceph/osd ] ; then ls /var/lib/ceph/osd | sed 's/.*-//' ; fi  # noqa 306
       register: osd_ids
       retries: "{{ health_osd_check_retries }}"
       delay: "{{ health_osd_check_delay }}"
 
+    - name: unset osd flag noout
+      ceph_osd_flag:
+        name: noout
+        state: absent
+        level: bucket
+        bucket: "{{ inventory_hostname }}"
+        cluster: "{{ cluster }}"
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
+
 
 - name: complete osd upgrade
   hosts: "{{ osd_group_name | default('osds') }}"
           changed_when: false
           when: (balancer_status_update.stdout | from_json)['active'] | bool
 
+    - name: unset osd flag nodeep-scrub
+      ceph_osd_flag:
+        name: "nodeep-scrub"
+        cluster: "{{ cluster }}"
+        state: absent
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
+
+
 - name: upgrade ceph mdss cluster, deactivate all rank > 0
   hosts: "{{ mon_group_name | default('mons') }}[0]"
   tags: mdss
index d07e271d0bb154061f7a381057c132c13fb6937e..a8d7f4f2be59f5141706c0d5efdf0e5426586ded 100644 (file)
         name: ceph-mgr
 
 
-- name: set osd flags
+- name: set osd flag nodeep-scrub
   hosts: "{{ mon_group_name | default('mons') }}[0]"
   become: True
   tasks:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         CEPH_CONTAINER_BINARY: "{{ container_binary }}"
 
-    - name: set osd flags
+    - name: set osd flag nodeep-scrub
       ceph_osd_flag:
-        name: "{{ item }}"
+        name: "nodeep-scrub"
         cluster: "{{ cluster }}"
       environment:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         CEPH_CONTAINER_BINARY: "{{ container_binary }}"
-      with_items:
-        - noout
-        - nodeep-scrub
 
 
 - name: switching from non-containerized to containerized ceph osd
     - import_role:
         name: ceph-defaults
 
+    - import_role:
+        name: ceph-facts
+        tasks_from: container_binary.yml
+
+    - name: set osd flag noout
+      ceph_osd_flag:
+        name: noout
+        level: bucket
+        bucket: "{{ inventory_hostname }}"
+        cluster: "{{ cluster }}"
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
+
     - name: collect running osds
       shell: |
         set -o pipefail;
       delay: "{{ health_osd_check_delay }}"
       changed_when: false
 
+    - name: unset osd flag noout
+      ceph_osd_flag:
+        name: noout
+        state: absent
+        level: bucket
+        bucket: "{{ inventory_hostname }}"
+        cluster: "{{ cluster }}"
+      delegate_to: "{{ groups[mon_group_name][0] }}"
+      environment:
+        CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
+        CEPH_CONTAINER_BINARY: "{{ container_binary }}"
 
-- name: unset osd flags
+- name: unset osd flag nodeep-scrub
   hosts: "{{ mon_group_name | default('mons') }}[0]"
   become: True
   tasks:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         CEPH_CONTAINER_BINARY: "{{ container_binary }}"
 
-    - name: unset osd flags
+    - name: set osd flag nodeep-scrub
       ceph_osd_flag:
-        name: "{{ item }}"
+        name: "nodeep-scrub"
         cluster: "{{ cluster }}"
         state: absent
       environment:
         CEPH_CONTAINER_IMAGE: "{{ ceph_docker_registry + '/' + ceph_docker_image + ':' + ceph_docker_image_tag if containerized_deployment | bool else None }}"
         CEPH_CONTAINER_BINARY: "{{ container_binary }}"
-      with_items:
-        - noout
-        - nodeep-scrub
 
     - name: re-enable balancer
       command: "{{ ceph_cmd }} --cluster {{ cluster }} balancer on"