From 559a47f31475bb660c21a7efba0fa4207adb378a Mon Sep 17 00:00:00 2001 From: Alexandru Avadanii Date: Thu, 16 May 2019 17:49:04 +0200 Subject: [lib] Add uninstall/cleanup option When multiple installers are used on the same jumpserver, it is useful to have the ability of automatic cleanup after a previous deploy. Change-Id: Ib3249f53ee9d6b1ba2409dd71bd13480536faedc Signed-off-by: Alexandru Avadanii (cherry picked from commit 4a9051284f69ded7bfadfb3a113513b6301c6a45) --- ci/deploy.sh | 7 +++++++ mcp/scripts/lib_jump_deploy.sh | 21 +++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/ci/deploy.sh b/ci/deploy.sh index 75a1a8864..a657f7610 100755 --- a/ci/deploy.sh +++ b/ci/deploy.sh @@ -83,6 +83,9 @@ $(notify_i "Input parameters to the build script are:" 2) currently defined on cluster KVM nodes. If specified twice (e.g. -E -E), baremetal nodes (VCP too, implicitly) will be removed, then reprovisioned. Only applicable for baremetal deploys. + If specified 3 times, a complete uninstallation (cleanup) will be performed + on the jumpserver (even for virtual deploys): VMs, virsh networks, + containers, networks, services etc. -f Deploy on existing Salt master. It will skip infrastructure VM creation, but it will still sync reclass configuration from current repo to Salt Master node. @@ -302,6 +305,10 @@ jumpserver_check_requirements "${cluster_states[*]}" "${virtual_nodes[*]}" \ if [ ${DRY_RUN} -eq 1 ]; then notify "[NOTE] Dry run, skipping all deployment tasks" 2 exit 0 +elif [ ${ERASE_ENV} -gt 2 ]; then + notify "[NOTE] Uninstall / cleanup all jumpserver Fuel resources" 2 + cleanup_all "${MCP_STORAGE_DIR}" "${OPNFV_BRIDGES[@]}" + exit 0 elif [ ${USE_EXISTING_INFRA} -gt 0 ]; then notify "[NOTE] Use existing infra: skip first ${USE_EXISTING_INFRA} states" 2 notify "[STATE] Skipping: ${cluster_states[*]::${USE_EXISTING_INFRA}}" 2 diff --git a/mcp/scripts/lib_jump_deploy.sh b/mcp/scripts/lib_jump_deploy.sh index a96becadd..a8444b8cf 100644 --- a/mcp/scripts/lib_jump_deploy.sh +++ b/mcp/scripts/lib_jump_deploy.sh @@ -327,6 +327,27 @@ function create_networks { sudo systemctl restart opnfv-fuel-vetha } +function cleanup_all { + local image_dir=$1; shift + local all_vnode_networks=("$@") + [ ! -e "${image_dir}/docker-compose" ] || COMPOSE_PREFIX="${image_dir}/" + + cleanup_uefi + __cleanup_vms + sudo ip link del veth_mcp0 || true + sudo ip link del veth_mcp2 || true + for net in "mcpcontrol" "${all_vnode_networks[@]}"; do + if ${VIRSH} net-info "${net}" >/dev/null 2>&1; then + ${VIRSH} net-destroy "${net}" || true + ${VIRSH} net-undefine "${net}" + fi + done + sudo rm -f "/etc/systemd/system/multi-user.target.wants/opnfv-fuel"* \ + "/etc/systemd/system/opnfv-fuel"* + sudo systemctl daemon-reload + "${COMPOSE_PREFIX}docker-compose" -f docker-compose/docker-compose.yaml down +} + function create_vms { local image_dir=$1; shift local image=base_image_opnfv_fuel.img -- cgit 1.2.3-korg