openstack-ansible/playbooks/lxc-containers-destroy.yml
Shu Shen 8352a09e32 Ensure flush-net-cache on local host
In a multiple host deployment, the deploying host (which runs the playbooks)
may not be the host for the containers being destroyed. Therefore,
flush-net-cache is not performed on the deploying host.

This would cause connectivity problem between the deploying host and the
containers before the staled net cache timed out ultimately.

Therefore, the local host shall always perform flush-net-cache when a container
is destroyed.

Change-Id: Iac0afa58084d35d285067c404de85e3466ba62e9
Closes-Bug: #1469285
2015-06-28 17:25:28 +00:00

67 lines
2.0 KiB
YAML

---
# Copyright 2014, 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: Destroy lxc containers
hosts: "{{ container_group|default('all_containers') }}"
max_fail_percentage: 20
gather_facts: false
user: root
tasks:
- name: Destroy a container
lxc_container:
name: "{{ container_name }}"
state: "absent"
delegate_to: "{{ physical_host }}"
tags:
- container-destroy
- name: Destroy container service directories
file:
path: "{{ item }}"
state: "absent"
with_items:
- "/openstack/{{ container_name }}"
- "/openstack/backup/{{ container_name }}"
- "/openstack/log/{{ container_name }}"
- "/var/lib/lxc/{{ container_name }}"
- "{{ lxc_container_directory|default('/var/lib/lxc') }}/{{ container_name }}"
delegate_to: "{{ physical_host }}"
tags:
- container-directories
- name: Flush network cache on lxc host
hosts: "hosts"
max_fail_percentage: 20
gather_facts: false
user: root
tasks:
- name: Flush net cache
command: /usr/local/bin/lxc-system-manage flush-net-cache
delegate_to: "{{ physical_host }}"
tags:
- flush-net-cache
- name: Ensure flushing network cache on local host
hosts: 127.0.0.1
connection: local
max_fail_percentage: 20
gather_facts: false
user: root
tasks:
- name: Flush net cache
command: /usr/local/bin/lxc-system-manage flush-net-cache
tags:
- flush-net-cache
- flush-net-cache-local