Files
openstack-ansible/playbooks/containers-lxc-destroy.yml
Dmitriy Rabotyagov efbea346bb Delete glusterd data along with container data
When a user deletes a container and selects
`force_containers_data_destroy` it makes sense to also delete gluster
data for the container as well.

Otherwise, once containers respawn, they already do have some stale
data from the previous container which may not really work out and
would require manual cleanup.

With that, when user selects to delete all container data, it's expected
that all data for container should be destryed, so that it would be
created from scratch.

Depends-On: https://review.opendev.org/c/openstack/openstack-ansible-openstack_hosts/+/924994
Change-Id: I85e3768b9611e498cbfefd1e02c12c8b94a6f30b
2024-07-26 07:47:44 +00:00

97 lines
2.9 KiB
YAML

---
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Set lxc containers group
hosts: "{{ container_group | default('all_containers') }}"
gather_facts: false
tasks:
- name: Add hosts to dynamic inventory group
group_by:
key: lxc_containers
parents: all_lxc_containers
when:
- container_tech == 'lxc'
tags:
- always
- lxc-containers-create
- name: Destroy lxc containers
hosts: all_lxc_containers
gather_facts: false
user: root
tasks:
- name: Slurp machine-id
slurp:
src: "/etc/machine-id"
register: _container_machine_id
changed_when: false
failed_when: false
tags:
- always
- name: Destroy a container
lxc_container:
name: "{{ container_name }}"
state: "absent"
delegate_to: "{{ physical_host }}"
when:
- force_containers_destroy | bool
- name: Destroy container journal directories
vars:
container_machine_id: "{{ ((_container_machine_id.content | default('bm9uZQo=')) | b64decode).strip() }}"
file:
path: "/var/log/journal/{{ container_machine_id }}"
state: "absent"
delegate_to: "{{ physical_host }}"
when:
- not _container_machine_id is failed
- force_containers_destroy | bool
- name: Destroy container service directories
file:
path: "{{ item }}"
state: "absent"
with_items:
- "/var/lib/lxc/{{ container_name }}"
delegate_to: "{{ physical_host }}"
when:
- force_containers_destroy | bool
- name: Destroy container data
file:
path: "{{ item }}"
state: "absent"
with_items:
- "/openstack/{{ container_name }}"
- "/openstack/backup/{{ container_name }}"
- "/openstack/log/{{ container_name }}"
- "/openstack/glusterd/{{ container_name }}"
- "/var/log/lxc/lxc-{{ container_name }}.log"
delegate_to: "{{ physical_host }}"
when:
- force_containers_destroy | bool
- force_containers_data_destroy | bool
vars_prompt:
- name: "force_containers_destroy"
prompt: "Are you sure you want to destroy the LXC containers?"
default: "no"
private: no
- name: "force_containers_data_destroy"
prompt: "Are you sure you want to destroy the LXC container data?"
default: "no"
private: no
tags:
- lxc-containers-destroy