Add clean install cleanup script
Этот коммит содержится в:
@@ -0,0 +1,111 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
# Virtuality clean install helper.
|
||||||
|
# Default mode preserves user data: VM disks, ISO files, uploaded disk images and backups.
|
||||||
|
# Use --purge-data only when you intentionally want to remove Virtuality data directories too.
|
||||||
|
|
||||||
|
PURGE_DATA=0
|
||||||
|
YES=0
|
||||||
|
|
||||||
|
for arg in "$@"; do
|
||||||
|
case "$arg" in
|
||||||
|
--purge-data) PURGE_DATA=1 ;;
|
||||||
|
--yes|-y) YES=1 ;;
|
||||||
|
*) echo "Unknown argument: $arg" >&2; exit 2 ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ "$EUID" -ne 0 ]]; then
|
||||||
|
exec sudo bash "$0" "$@"
|
||||||
|
fi
|
||||||
|
|
||||||
|
RED="\033[31m"
|
||||||
|
GREEN="\033[32m"
|
||||||
|
YELLOW="\033[33m"
|
||||||
|
BOLD="\033[1m"
|
||||||
|
RESET="\033[0m"
|
||||||
|
|
||||||
|
say() { echo -e "${GREEN}✓${RESET} $*"; }
|
||||||
|
warn() { echo -e "${YELLOW}!${RESET} $*"; }
|
||||||
|
remove_path() {
|
||||||
|
local path="$1"
|
||||||
|
if [[ -e "$path" || -L "$path" ]]; then
|
||||||
|
rm -rf "$path"
|
||||||
|
say "removed: $path"
|
||||||
|
else
|
||||||
|
warn "not found: $path"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
cat <<EOF
|
||||||
|
${BOLD}Virtuality clean install${RESET}
|
||||||
|
|
||||||
|
Will remove:
|
||||||
|
- /opt/virtuality/web
|
||||||
|
- /opt/virtuality/venv
|
||||||
|
- /etc/systemd/system/virtuality-web.service
|
||||||
|
- /var/lib/virtuality/config
|
||||||
|
- /var/lib/virtuality/update
|
||||||
|
- /var/log/virtuality/update.log and install logs
|
||||||
|
|
||||||
|
Will preserve by default:
|
||||||
|
- /opt/virtuality/source
|
||||||
|
- /var/lib/virtuality/iso
|
||||||
|
- /var/lib/virtuality/images
|
||||||
|
- /var/lib/virtuality/disk-images
|
||||||
|
- /var/lib/virtuality/backups
|
||||||
|
- existing libvirt VMs and storage pools
|
||||||
|
EOF
|
||||||
|
|
||||||
|
if [[ "$PURGE_DATA" -eq 1 ]]; then
|
||||||
|
cat <<EOF
|
||||||
|
|
||||||
|
${RED}${BOLD}PURGE DATA MODE ENABLED${RESET}
|
||||||
|
Will also remove:
|
||||||
|
- /var/lib/virtuality/iso
|
||||||
|
- /var/lib/virtuality/images
|
||||||
|
- /var/lib/virtuality/disk-images
|
||||||
|
- /var/lib/virtuality/backups
|
||||||
|
- /var/lib/virtuality/network
|
||||||
|
|
||||||
|
Existing libvirt VM definitions are not deleted automatically.
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$YES" -ne 1 ]]; then
|
||||||
|
echo
|
||||||
|
read -r -p "Continue? Type YES: " answer
|
||||||
|
if [[ "$answer" != "YES" ]]; then
|
||||||
|
echo "Cancelled."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
systemctl stop virtuality-web.service 2>/dev/null || true
|
||||||
|
systemctl disable virtuality-web.service 2>/dev/null || true
|
||||||
|
|
||||||
|
remove_path /etc/systemd/system/virtuality-web.service
|
||||||
|
systemctl daemon-reload || true
|
||||||
|
|
||||||
|
remove_path /opt/virtuality/web
|
||||||
|
remove_path /opt/virtuality/venv
|
||||||
|
remove_path /var/lib/virtuality/config
|
||||||
|
remove_path /var/lib/virtuality/update
|
||||||
|
remove_path /var/log/virtuality/update.log
|
||||||
|
find /var/log/virtuality -maxdepth 1 -type f -name 'install_web_panel_*.log' -delete 2>/dev/null || true
|
||||||
|
say "old installer logs removed"
|
||||||
|
|
||||||
|
if [[ "$PURGE_DATA" -eq 1 ]]; then
|
||||||
|
remove_path /var/lib/virtuality/iso
|
||||||
|
remove_path /var/lib/virtuality/images
|
||||||
|
remove_path /var/lib/virtuality/disk-images
|
||||||
|
remove_path /var/lib/virtuality/backups
|
||||||
|
remove_path /var/lib/virtuality/network
|
||||||
|
fi
|
||||||
|
|
||||||
|
mkdir -p /opt/virtuality /var/log/virtuality /var/lib/virtuality
|
||||||
|
say "base directories recreated"
|
||||||
|
|
||||||
|
echo
|
||||||
|
say "Clean install cleanup finished. Run: sudo bash scripts/install_web_panel.sh"
|
||||||
Ссылка в новой задаче
Block a user