]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
purge: stop rgw instances by iteration
authorDimitri Savineau <dsavinea@redhat.com>
Fri, 31 Jan 2020 15:42:10 +0000 (10:42 -0500)
committerGuillaume Abrioux <gabrioux@redhat.com>
Tue, 3 Mar 2020 09:31:48 +0000 (10:31 +0100)
It looks like that the service module doesn't support wildcard anymore
for stopping/disabling multiple services.

fatal: [rgw0]: FAILED! => changed=false
  msg: 'This module does not currently support using glob patterns,
        found ''*'' in service name: ceph-radosgw@*'
...ignoring

Instead we should iterate over the rgw_instances list.

Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
(cherry picked from commit 9d3b49293d785b9b2b6bb902bce0ae8bce6b4e6e)

infrastructure-playbooks/purge-cluster.yml
infrastructure-playbooks/purge-container-cluster.yml
roles/ceph-facts/tasks/facts.yml
roles/ceph-facts/tasks/set_radosgw_address.yml
roles/ceph-rgw/handlers/main.yml

index e4e926778b4711a6d7bb5bdbef4c2c3a15930672..4ce72b05f26c5eeba353ab6907fbf618a8c193be 100644 (file)
   become: true
 
   tasks:
+    - import_role:
+        name: ceph-defaults
 
-  - name: stop ceph rgws with systemd
-    service:
-      name: ceph-radosgw@rgw.*
-      state: stopped
-      enabled: no
-    failed_when: false
+    - import_role:
+        name: ceph-facts
+        tasks_from: set_radosgw_address
+
+    - name: stop ceph rgws with systemd
+      service:
+        name: "ceph-radosgw@rgw.{{ ansible_hostname }}.{{ item.instance_name }}"
+        state: stopped
+        enabled: no
+      failed_when: false
+      with_items: "{{ rgw_instances }}"
 
 
 - name: purge ceph rbd-mirror cluster
index 7fb19e783a84983d3e068565d5f6e3de86b5dad7..4144c8ecc655ce2c40d92f5d61ccd112efe3c9fd 100644 (file)
   become: true
 
   tasks:
+    - import_role:
+        name: ceph-defaults
 
-  - name: disable ceph rgw service
-    service:
-      name: "ceph-radosgw@*"
-      state: stopped
-      enabled: no
-    ignore_errors: true
+    - import_role:
+        name: ceph-facts
+        tasks_from: set_radosgw_address
 
-  - name: remove ceph rgw service
-    file:
-      path: /etc/systemd/system/ceph-radosgw@.service
-      state: absent
+    - name: disable ceph rgw service
+      service:
+        name: "ceph-radosgw@rgw.{{ ansible_hostname }}.{{ item.instance_name }}"
+        state: stopped
+        enabled: no
+      failed_when: false
+      with_items: "{{ rgw_instances }}"
+
+    - name: remove ceph rgw service
+      file:
+        path: /etc/systemd/system/ceph-radosgw@.service
+        state: absent
 
 
 - name: purge ceph rbd-mirror cluster
index 8d27812bb40b9587ff57d72f9a2dcf42e8531004..eb81f588f7e474cb98c91a2c9e72d3daf40a6a44 100644 (file)
   import_tasks: set_radosgw_address.yml
   when: inventory_hostname in groups.get(rgw_group_name, [])
 
-- name: set_fact rgw_instances
-  set_fact:
-    rgw_instances: "{{ rgw_instances|default([]) | union([{'instance_name': 'rgw' + item|string, 'radosgw_address': _radosgw_address, 'radosgw_frontend_port': radosgw_frontend_port|int + item|int}]) }}"
-  with_sequence: start=0 end={{ radosgw_num_instances|int - 1 }}
-  when: inventory_hostname in groups.get(rgw_group_name, [])
-
 - name: set ntp service name depending on OS family
   block:
   - name: set ntp service name for Debian family
index 3b1de111532f692c0e4ef5e489e51e473992dc82..28cb8d6ef4616d6a31211c9f1c9df2e5b4b0ad3e 100644 (file)
@@ -41,3 +41,8 @@
     set_fact:
       _radosgw_address: "{{ hostvars[inventory_hostname][_interface][ip_version][0]['address'] }}"
     when: ip_version == 'ipv6'
+
+- name: set_fact rgw_instances
+  set_fact:
+    rgw_instances: "{{ rgw_instances|default([]) | union([{'instance_name': 'rgw' + item|string, 'radosgw_address': _radosgw_address, 'radosgw_frontend_port': radosgw_frontend_port|int + item|int}]) }}"
+  with_sequence: start=0 end={{ radosgw_num_instances|int - 1 }}
index 803b9ec3ddb5ae5bc4063b9c4a72b1cfd1209e6c..08383e9087e28b33ccca6920fd1340a3f63f7844 100644 (file)
@@ -6,5 +6,6 @@
 
 - name: restart rgw
   service:
-    name: ceph-radosgw@*
+    name: "ceph-radosgw@rgw.{{ ansible_hostname }}.{{ item.instance_name }}"
     state: restarted
+  with_items: "{{ rgw_instances }}"