]> git.apps.os.sepia.ceph.com Git - ceph-ansible.git/commitdiff
purge: remove docker_* task
authorGuillaume Abrioux <gabrioux@redhat.com>
Tue, 26 Nov 2019 14:26:35 +0000 (15:26 +0100)
committerDimitri Savineau <savineau.dimitri@gmail.com>
Tue, 3 Dec 2019 14:57:11 +0000 (09:57 -0500)
All containers are removed when systemd stops them.
There is no need to call this module in purge container playbook.

This commit also removes all docker_image task and remove all container
images in the final cleanup play.

Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1776736
Signed-off-by: Guillaume Abrioux <gabrioux@redhat.com>
(cherry picked from commit d23383a820ed23e675af28e80b161e17d17fe40d)

infrastructure-playbooks/purge-docker-cluster.yml
roles/ceph-node-exporter/templates/node_exporter.service.j2
roles/ceph-prometheus/templates/alertmanager.service.j2
roles/ceph-prometheus/templates/prometheus.service.j2

index 3231db994fdfa91015c51c0b9f844323668c9081..bef5da01c2be257ff126eae52deab2792c646932 100644 (file)
       enabled: no
     ignore_errors: true
 
-  - name: remove ceph nfs container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "ceph-nfs-{{ ansible_hostname }}"
-      state: absent
-    ignore_errors: true
-
   - name: remove ceph nfs service
     file:
       path: /etc/systemd/system/ceph-nfs@.service
       - /var/lib/nfs/ganesha
       - /var/run/ganesha
 
-  - name: remove ceph nfs image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
 
 - name: purge ceph mds cluster
 
       enabled: no
     ignore_errors: true
 
-  - name: remove ceph mds container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "ceph-mds-{{ ansible_hostname }}"
-      state: absent
-    ignore_errors: true
-
   - name: remove ceph mds service
     file:
       path: /etc/systemd/system/ceph-mds@.service
       state: absent
 
-  - name: remove ceph mds image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-    ignore_errors: true
 
 - name: purge ceph iscsigws cluster
 
       - rbd-target-gw
       - tcmu-runner
 
-  - name: remove ceph iscsigw containers
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "{{ item }}"
-      state: absent
-    ignore_errors: true
-    with_items:
-      - rbd-target-api
-      - rbd-target-gw
-      - tcmu-runner
-
   - name: remove ceph iscsigw systemd unit files
     file:
       path: /etc/systemd/system/{{ item }}.service
       - rbd-target-gw
       - tcmu-runner
 
-  - name: remove ceph iscsigw image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-    ignore_errors: true
 
 - name: purge ceph mgr cluster
 
       enabled: no
     ignore_errors: true
 
-  - name: remove ceph mgr container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "ceph-mgr-{{ ansible_hostname }}"
-      state: absent
-    ignore_errors: true
-
   - name: remove ceph mgr service
     file:
       path: /etc/systemd/system/ceph-mgr@.service
       state: absent
 
-  - name: remove ceph mgr image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-    ignore_errors: true
 
 - name: purge ceph rgw cluster
 
       enabled: no
     ignore_errors: true
 
-  - name: remove ceph rgw container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "ceph-rgw-{{ ansible_hostname }}-*"
-      state: absent
-    ignore_errors: true
-
   - name: remove ceph rgw service
     file:
       path: "{{ item }}"
       - /etc/systemd/system/ceph-rgw@.service
       - /etc/systemd/system/ceph-radosgw@.service
 
-  - name: remove ceph rgw image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags:
-      remove_img
-    ignore_errors: true
-
 
 - name: purge ceph rbd-mirror cluster
 
       enabled: no
     ignore_errors: true
 
-  - name: remove ceph rbd-mirror container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "ceph-rbd-mirror-{{ ansible_hostname }}"
-      state: absent
-    ignore_errors: true
-
   - name: remove ceph rbd-mirror service
     file:
       path: /etc/systemd/system/ceph-rbd-mirror@.service
       state: absent
 
-  - name: remove ceph rbd-mirror image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-
 
 - name: purge ceph osd cluster
 
     with_items: "{{ devices | default([]) }}"
     when: devices | default([]) | length > 0
 
-  - name: remove ceph osd image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-    ignore_errors: true
-
   - name: include vars from group_vars/osds.yml
     include_vars:
       file: "{{ item }}"
       - "ceph-mgr@{{ ansible_hostname }}"
       - "ceph-mon@{{ ansible_hostname }}"
 
-  - name: remove ceph mon and mgr container
-    docker_container:
-      image: "{{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
-      name: "{{ item }}"
-      state: absent
-    ignore_errors: true
-    with_items:
-      - "ceph-mon-{{ ansible_hostname }}"
-      - "ceph-mgr-{{ ansible_hostname }}"
-
   - name: remove ceph mon and mgr service
     file:
       path: "/etc/systemd/system/ceph-{{ item }}@.service"
       - mon
       - mgr
 
-  - name: remove ceph mon and mgr image
-    docker_image:
-      state: absent
-      repository: "{{ ceph_docker_registry }}"
-      name: "{{ ceph_docker_image }}"
-      tag: "{{ ceph_docker_image_tag }}"
-      force: yes
-    tags: remove_img
-    ignore_errors: true
-
 
 - name: purge node-exporter
 
         enabled: no
       failed_when: false
 
-    - name: remove node-exporter container
-      docker_container:
-        name: node_exporter
-        state: absent
-      failed_when: false
-
     - name: remove node_exporter service file
       file:
         name: /etc/systemd/system/node_exporter.service
         state: absent
 
     - name: remove node-exporter image
-      docker_image:
-        image: "{{ ceph_docker_registry }}/prom/node-exporter"
-        state: absent
-        force: yes
+      command: "{{ container_binary }} rmi {{ node_exporter_container_image }}"
       tags:
         - remove_img
-      failed_when: false
-
 
 - name: purge ceph-grafana
 
       with_items: "{{ grafana_services }}"
       failed_when: false
 
-    - name: remove containers
-      docker_container:
-        name: "{{ item }}"
-        state: absent
-      with_items: "{{ grafana_services }}"
-      failed_when: false
-
     - name: remove service files
       file:
         name: "/etc/systemd/system/{{ item }}.service"
       with_items: "{{ grafana_services }}"
       failed_when: false
 
-    - name: remove images
-      docker_image:
-        name: "{{ item }}"
-        state: absent
-        force: yes
+    - name: remove ceph dashboard container images
+      command: "{{ container_binary }} rmi {{ item }}"
       with_items:
-        - "{{ ceph_docker_registry }}/prom/prometheus"
-        - "{{ ceph_docker_registry }}/grafana/grafana"
-        - "{{ ceph_docker_registry }}/prom/alertmanager"
+        - "{{ prometheus_container_image }}"
+        - "{{ grafana_container_image }}"
+        - "{{ alertmanager_container_image }}"
       failed_when: false
+      tags:
+        - remove_img
 
     - name: remove data
       file:
       msg: "It looks like container are still present."
     when: containers_list.stdout_lines|length > 0
 
-- name: remove installed packages
+
+- name: final cleanup
 
   hosts:
     - "{{ mon_group_name|default('mons') }}"
   tags: with_pkg
 
   tasks:
-  - name: check if it is Atomic host
-    stat: path=/run/ostree-booted
-    register: stat_ostree
+    - import_role:
+        name: ceph-defaults
+    - import_role:
+        name: ceph-facts
 
-  - name: set fact for using Atomic host
-    set_fact:
-      is_atomic: "{{ stat_ostree.stat.exists }}"
+    - name: check if it is Atomic host
+      stat: path=/run/ostree-booted
+      register: stat_ostree
 
-  - name: stop docker service
-    service:
-      name: docker
-      state: stopped
-      enabled: no
-    when: not is_atomic
-    ignore_errors: true
+    - name: set fact for using Atomic host
+      set_fact:
+        is_atomic: "{{ stat_ostree.stat.exists }}"
 
-  - name: remove docker on debian/ubuntu
-    apt:
-      name: ['docker-ce', 'docker-engine', 'docker.io', 'python-docker', 'python3-docker']
-      state: absent
-      update_cache: yes
-      autoremove: yes
-    when: ansible_os_family == 'Debian'
-
-  - name: red hat based systems tasks
-    block:
-      - name: yum related tasks on red hat
-        block:
-          - name: remove packages on redhat
-            yum:
-              name: ['epel-release', 'docker', 'python-docker-py']
-              state: absent
-
-          - name: remove package dependencies on redhat
-            command: yum -y autoremove
-            args:
-              warn: no
-
-          - name: remove package dependencies on redhat again
-            command: yum -y autoremove
-            args:
-              warn: no
-        when:
-          ansible_pkg_mgr == "yum"
-
-      - name: dnf related tasks on red hat
-        block:
-          - name: remove docker on redhat
-            dnf:
-              name: ['docker', 'python3-docker']
-              state: absent
-
-          - name: remove package dependencies on redhat
-            command: dnf -y autoremove
-            args:
-              warn: no
-
-          - name: remove package dependencies on redhat again
-            command: dnf -y autoremove
-            args:
-              warn: no
-        when:
-          ansible_pkg_mgr == "dnf"
-    when:
-      ansible_os_family == 'RedHat' and
-      not is_atomic
+    - name: remove ceph container image
+      command: "{{ container_binary }} rmi {{ ceph_docker_registry }}/{{ ceph_docker_image }}:{{ ceph_docker_image_tag }}"
+      tags:
+        - remove_img
+
+    - name: stop docker service
+      service:
+        name: docker
+        state: stopped
+        enabled: no
+      when: not is_atomic
+      ignore_errors: true
+
+    - name: remove docker on debian/ubuntu
+      apt:
+        name: ['docker-ce', 'docker-engine', 'docker.io', 'python-docker', 'python3-docker']
+        state: absent
+        update_cache: yes
+        autoremove: yes
+      when: ansible_os_family == 'Debian'
+
+    - name: red hat based systems tasks
+      block:
+        - name: yum related tasks on red hat
+          block:
+            - name: remove packages on redhat
+              yum:
+                name: ['epel-release', 'docker', 'python-docker-py']
+                state: absent
+
+            - name: remove package dependencies on redhat
+              command: yum -y autoremove
+              args:
+                warn: no
+
+            - name: remove package dependencies on redhat again
+              command: yum -y autoremove
+              args:
+                warn: no
+          when:
+            ansible_pkg_mgr == "yum"
+
+        - name: dnf related tasks on red hat
+          block:
+            - name: remove docker on redhat
+              dnf:
+                name: ['docker', 'python3-docker']
+                state: absent
+
+            - name: remove package dependencies on redhat
+              command: dnf -y autoremove
+              args:
+                warn: no
+
+            - name: remove package dependencies on redhat again
+              command: dnf -y autoremove
+              args:
+                warn: no
+          when:
+            ansible_pkg_mgr == "dnf"
+      when:
+        ansible_os_family == 'RedHat' and
+        not is_atomic
 
 - name: purge ceph directories
 
index a92381b2622e5ddc08d3a34d402a1ac5bd8c7faf..8d95e0c59179b73009e97611ea2e06da7c3fc3f1 100644 (file)
@@ -11,7 +11,7 @@ After=network.target
 [Service]
 EnvironmentFile=-/etc/environment
 ExecStartPre=-/usr/bin/{{ container_binary }} rm -f node-exporter
-ExecStart=/usr/bin/{{ container_binary }} run --name=node-exporter \
+ExecStart=/usr/bin/{{ container_binary }} run --rm --name=node-exporter \
   -v /proc:/host/proc:ro -v /sys:/host/sys:ro \
   --net=host \
   {{ node_exporter_container_image }} \
index 8cd08a8256bec2f905757431df8ffcfc65ad2f8d..6e3b33eb350832d672ef8553d19c0b8b89b2b7df 100644 (file)
@@ -12,7 +12,7 @@ After=network.target
 WorkingDirectory={{ alertmanager_data_dir }}
 EnvironmentFile=-/etc/environment
 ExecStartPre=-/usr/bin/{{ container_binary }} rm -f alertmanager
-ExecStart=/usr/bin/{{ container_binary }} run --name=alertmanager \
+ExecStart=/usr/bin/{{ container_binary }} run --rm --name=alertmanager \
   -v "{{ alertmanager_conf_dir }}:/etc/alertmanager:Z" \
   -v "{{ alertmanager_data_dir }}:/alertmanager:Z" \
   --net=host \
index 4f2d314cce76fc955e902f5b8ecf7142288b90d1..91909081504c0150ca3fc1e3be6c8d62c5282ab3 100644 (file)
@@ -11,7 +11,7 @@ After=network.target
 [Service]
 EnvironmentFile=-/etc/environment
 ExecStartPre=-/usr/bin/{{ container_binary }} rm -f prometheus
-ExecStart=/usr/bin/{{ container_binary }} run --name=prometheus \
+ExecStart=/usr/bin/{{ container_binary }} run --rm --name=prometheus \
   -v "{{ prometheus_conf_dir }}:/etc/prometheus:Z" \
   -v "{{ prometheus_data_dir }}:/prometheus:Z" \
   --net=host \