|
Bogdan Timofte
authored
3 months ago
|
1
|
#!/bin/bash
|
|
|
2
|
|
|
Bogdan Timofte
authored
3 months ago
|
3
|
set -euo pipefail
|
|
|
4
|
|
|
|
5
|
PROJECT_ID="autonas"
|
|
|
6
|
ORG_ID="xdev"
|
|
|
7
|
RUNTIME_DIR="/usr/local/lib/${ORG_ID}/${PROJECT_ID}"
|
|
|
8
|
LEGACY_RUNTIME_DIR="/usr/local/lib/autonas"
|
|
|
9
|
COMMAND_PATH="/usr/local/sbin/autonas"
|
|
|
10
|
UNINSTALL_WRAPPER="/usr/local/sbin/${ORG_ID}-${PROJECT_ID}-uninstall"
|
|
|
11
|
DOC_DIR="/usr/local/share/doc/${ORG_ID}/${PROJECT_ID}"
|
|
|
12
|
DEFAULTS_PATH="/etc/default/${ORG_ID}-${PROJECT_ID}"
|
|
|
13
|
CONFIG_DIR="/etc/pve/autonas"
|
|
|
14
|
ATTACH_UNIT="autonas-attach@.service"
|
|
|
15
|
MAIN_UNIT="autonas.service"
|
|
|
16
|
BOOT_SCAN_UNIT="autonas-boot-scan.service"
|
|
|
17
|
DISK_RULES="99-autonas-disk.rules"
|
|
|
18
|
INTERFACE_RULES="98-autonas-interfaces.rules"
|
|
|
19
|
NFS_DROPIN_DIR="/etc/systemd/system/nfs-server.service.d"
|
|
|
20
|
NFS_DROPIN_FILE="${NFS_DROPIN_DIR}/50-autonas-self-hosted-proxmox.conf"
|
|
Bogdan Timofte
authored
3 months ago
|
21
|
|
|
Bogdan Timofte
authored
3 months ago
|
22
|
FORCE_MODE=0
|
|
Bogdan Timofte
authored
3 months ago
|
23
|
|
|
|
24
|
log_message() {
|
|
Bogdan Timofte
authored
3 months ago
|
25
|
if [[ "${FORCE_MODE}" -eq 0 ]]; then
|
|
|
26
|
echo "$@"
|
|
Bogdan Timofte
authored
3 months ago
|
27
|
fi
|
|
|
28
|
}
|
|
|
29
|
|
|
Bogdan Timofte
authored
3 months ago
|
30
|
require_root() {
|
|
|
31
|
if [[ "${EUID}" -ne 0 ]]; then
|
|
|
32
|
echo "ERROR: this script must be run as root" >&2
|
|
|
33
|
exit 1
|
|
Bogdan Timofte
authored
3 months ago
|
34
|
fi
|
|
Bogdan Timofte
authored
3 months ago
|
35
|
}
|
|
|
36
|
|
|
|
37
|
main() {
|
|
|
38
|
while [[ $# -gt 0 ]]; do
|
|
|
39
|
case "$1" in
|
|
|
40
|
--force)
|
|
|
41
|
FORCE_MODE=1
|
|
|
42
|
shift
|
|
|
43
|
;;
|
|
|
44
|
-h|--help)
|
|
|
45
|
echo "Usage: $0 [--force]"
|
|
|
46
|
exit 0
|
|
|
47
|
;;
|
|
|
48
|
*)
|
|
|
49
|
echo "ERROR: unknown option: $1" >&2
|
|
|
50
|
exit 1
|
|
|
51
|
;;
|
|
|
52
|
esac
|
|
|
53
|
done
|
|
|
54
|
|
|
|
55
|
require_root
|
|
|
56
|
|
|
|
57
|
log_message "=== Uninstalling AutoNAS ==="
|
|
|
58
|
|
|
|
59
|
systemctl disable --now autonas-boot-scan.service >/dev/null 2>&1 || true
|
|
|
60
|
systemctl disable --now autonas.service >/dev/null 2>&1 || true
|
|
|
61
|
systemctl stop "autonas-attach@*.service" >/dev/null 2>&1 || true
|
|
|
62
|
systemctl disable "autonas-attach@*.service" >/dev/null 2>&1 || true
|
|
|
63
|
|
|
|
64
|
rm -f "/etc/systemd/system/${ATTACH_UNIT}"
|
|
|
65
|
rm -f "/etc/systemd/system/${MAIN_UNIT}"
|
|
|
66
|
rm -f "/etc/systemd/system/${BOOT_SCAN_UNIT}"
|
|
|
67
|
rm -f "${NFS_DROPIN_FILE}"
|
|
|
68
|
rmdir "${NFS_DROPIN_DIR}" 2>/dev/null || true
|
|
Bogdan Timofte
authored
3 months ago
|
69
|
systemctl daemon-reload
|
|
Bogdan Timofte
authored
3 months ago
|
70
|
|
|
|
71
|
rm -f "/etc/udev/rules.d/${DISK_RULES}"
|
|
|
72
|
rm -f "/etc/udev/rules.d/${INTERFACE_RULES}"
|
|
|
73
|
udevadm control --reload-rules >/dev/null 2>&1 || true
|
|
|
74
|
|
|
|
75
|
rm -f "${UNINSTALL_WRAPPER}"
|
|
|
76
|
rm -f "${COMMAND_PATH}"
|
|
|
77
|
rm -f "${DEFAULTS_PATH}"
|
|
|
78
|
rm -rf "${DOC_DIR}"
|
|
|
79
|
rm -rf "${RUNTIME_DIR}"
|
|
|
80
|
|
|
|
81
|
rm -f /usr/local/bin/autonas
|
|
|
82
|
rm -f /usr/local/bin/autonas.sh
|
|
|
83
|
rm -f /usr/local/bin/autonas-core.sh
|
|
|
84
|
rm -f /usr/local/bin/autonas-disk-handler.sh
|
|
|
85
|
rm -f /usr/local/bin/autonas-udev-wrapper.sh
|
|
|
86
|
rm -f /usr/local/bin/autonas-boot-scan.sh
|
|
|
87
|
rm -f /usr/local/bin/autonas-network-handler.sh
|
|
|
88
|
rm -f /usr/local/bin/autonas-media-importer.sh
|
|
|
89
|
rm -f /usr/local/bin/autonas-uninstall.sh
|
|
|
90
|
rm -f /usr/local/bin/autonas-interface-debug.sh
|
|
|
91
|
rm -f /usr/local/bin/autonas-test-interface-stability.sh
|
|
|
92
|
rm -rf "${LEGACY_RUNTIME_DIR}"
|
|
|
93
|
|
|
|
94
|
rmdir "/usr/local/lib/${ORG_ID}" 2>/dev/null || true
|
|
|
95
|
rmdir "/usr/local/share/doc/${ORG_ID}" 2>/dev/null || true
|
|
|
96
|
|
|
|
97
|
log_message "Preserved cluster-shared config:"
|
|
|
98
|
log_message " - ${CONFIG_DIR}/"
|
|
|
99
|
if [[ -f "${CONFIG_DIR}/disks.conf" ]]; then
|
|
|
100
|
log_message " - ${CONFIG_DIR}/disks.conf"
|
|
Bogdan Timofte
authored
3 months ago
|
101
|
fi
|
|
Bogdan Timofte
authored
3 months ago
|
102
|
|
|
|
103
|
if mount | grep -q "/mnt/autonas/"; then
|
|
|
104
|
log_message "Preserved mounted data paths under /mnt/autonas/"
|
|
|
105
|
elif [[ -d "/mnt/autonas" ]] && [[ -z "$(ls -A /mnt/autonas 2>/dev/null)" ]]; then
|
|
|
106
|
rmdir /mnt/autonas 2>/dev/null || true
|
|
Bogdan Timofte
authored
3 months ago
|
107
|
fi
|
|
Bogdan Timofte
authored
3 months ago
|
108
|
|
|
|
109
|
if [[ -f /etc/exports ]] && grep -q "/mnt/autonas/" /etc/exports 2>/dev/null; then
|
|
|
110
|
log_message "NFS exports referencing /mnt/autonas/ were preserved for manual review."
|
|
Bogdan Timofte
authored
3 months ago
|
111
|
fi
|
|
Bogdan Timofte
authored
3 months ago
|
112
|
|
|
|
113
|
log_message "Uninstall complete."
|
|
|
114
|
}
|
|
|
115
|
|
|
|
116
|
main "$@"
|