detachbox
SeitenDen Node entfernen

Den Node entfernen

sudo detachbox-node-host uninstall --confirm

Die Deinstallation bringt den Server in den Zustand zurück, in dem die Installation ihn vorgefunden hat. Jedes Terminal endet, und der Node stoppt endgültig.

Zuerst geht, was läuft: node-host und der Tunnel, dann jedes Terminal und der Edge, dann Incus mit jedem Prozess, jeder Bridge, jeder Firewall-Regel und jedem Mount, den es hatte. Danach gehen die Pakete, die die Installation hinzugefügt hat, mit allem, was apt für sie nachgezogen hat, die Repositories von Incus und Cloudflare, der Systembenutzer von Incus, die sysctl-Einstellungen des Nodes sowie Konfiguration, Schlüssel und Zustand der Installation. detachbox-node-host selbst bleibt, solange der Pool bleibt, damit du ihn später entfernen kannst.

Sag danach deinem Ansprechpartner bei detachbox Bescheid, der den Node von deinem Konto nimmt.

Deine Dateien bleiben auf dem Pool

Der Pool boxes mit den Dateien deines Kontos bleibt exportiert stehen, und ZFS bleibt, damit du ihn lesen kannst:

sudo zpool import boxes                          # holt den Pool zurück
sudo zfs list -r boxes/custom                    # listet die Ordner deines Kontos
sudo mount -t zfs boxes/custom/<folder> /mnt     # öffnet einen davon

Brauchst du diese Dateien nicht mehr, zerstört sudo detachbox-node-host uninstall --confirm --destroy-pool den behaltenen Pool mit allem darauf und entfernt ZFS und detachbox-node-host. Führst du uninstall --confirm ohne diese Option noch einmal aus, sagt der Befehl, dass der Node schon deinstalliert ist, und nennt diesen Befehl. Auf einem Server ohne detachbox-node-host gibt die Prüfung der Installation den passenden Befehl aus.

Eine neue Installation auf diesem Server lehnt die Disk des behaltenen Pools ab und sagt, warum: Ein neuer Node übernimmt nie die Dateien des alten. Gib dem neuen Node eine andere Disk, oder entfern den behaltenen Pool vorher mit dem Befehl, den die Prüfung ausgibt. Die OpenZFS-Pakete, die der alte Node behalten hat, übernimmt die neue Installation.

Den Pool mit zerstören

sudo detachbox-node-host uninstall --confirm --destroy-pool

Das zerstört den Pool und jede Datei darauf. Es betrifft nur den Pool, den diese Installation angelegt hat, und löscht die Disk nur, wenn alles darauf von der Installation stammt: dieselbe Disk, auf der der Pool angelegt wurde, erkannt an ihrer WWN oder Seriennummer, mit nur den eigenen Partitionen des Pools. Dann bleibt die Disk leer zurück, so wie die Installation sie vorgefunden hat: die Labels des Pools entfernt, jede Signatur und die Partitionstabelle gelöscht, die Disk so geprüft, wie die Installation sie prüft. Sonst bleibt die Disk, wie sie ist, und die Deinstallation sagt, warum und was zu tun ist, wie Fehlerbehebung am Node zeigt. Danach entfernt es OpenZFS und jedes Paket, das die Installation dafür hinzugefügt hat. Anschließend besteht der Server die Prüfungen der Installation für eine neue Installation.

Wenn ein Schritt scheitert

Die Deinstallation hält bei diesem Schritt an und listet, was noch auf dem Server ist. Nichts, was ein zweiter Lauf braucht, ist weg: ZFS bleibt, solange der Pool bleibt, und node-host behält seine Aufzeichnung bis zum Schluss. Behebe, was die Zeile sagt, und führ denselben Befehl noch einmal aus; er macht bei diesem Schritt weiter.

Mit --destroy-pool entfernt die Deinstallation als Letztes detachbox-node-host selbst; mit behaltenem Pool bleibt das Programm auf dem Server. Das Log der Deinstallation, mit jedem Lauf der Installation davor, bleibt in /var/log/detachbox-node-uninstall.log, nur für root lesbar.

Von Hand entfernen

Nur für den schlimmsten Fall: uninstall hält immer wieder beim selben Schritt an, und kein reparierter node-host kann den Server erreichen, weil ein Node, den detachbox von seinem Konto genommen hat, sich nicht mehr selbst aktualisiert. Führ diese Befehle als root aus, in dieser Reihenfolge, und überspring, was schon weg ist. Hier ist die Disk des Pools /dev/sdb und ihre ZFS-Partition /dev/sdb1:

cp /var/lib/detachbox-node/install/install.log /var/log/detachbox-node-uninstall.log   # das Log behalten
systemctl disable --now detachbox-node-host cloudflared-detachbox
rm -f /etc/systemd/system/detachbox-node-host.service /etc/systemd/system/cloudflared-detachbox.service
# jedes Terminal und der Edge, dann Incus selbst
incus list --all-projects -c ne -f csv | while IFS=, read -r name project; do incus delete --force "$name" --project "$project"; done
systemctl stop incus-startup incus incus.socket incus-user.socket incus-lxcfs
# der Pool, behalten mit deinen Dateien:
zpool export boxes
# oder, nur um ihn mit jeder Datei darauf zu zerstören und seine Disk zu leeren:
zpool import -N boxes 2>/dev/null; zpool destroy -f boxes
zpool labelclear -f /dev/sdb1          # die Labels liegen auf der Partition, nicht auf der ganzen Disk
wipefs -a /dev/sdb1 /dev/sdb9 && wipefs -a /dev/sdb && blockdev --rereadpt /dev/sdb
# Pakete, Quellen, Dateien, Benutzer
apt-mark unhold incus incus-base incus-client cloudflared
apt-get purge incus incus-base incus-client cloudflared 'openzfs-*'   # openzfs-* behalten, wenn du den Pool behalten hast
rm -rf /var/lib/incus /var/lib/incus-lxcfs /etc/apt/sources.list.d/zabbly-incus-stable.sources \
  /etc/apt/sources.list.d/cloudflared.list /etc/apt/keyrings/zabbly.asc /etc/apt/keyrings/cloudflare-main.asc \
  /etc/sysctl.d/90-detachbox.conf /etc/modprobe.d/zfs.conf /usr/src/openzfs-build /etc/cloudflared/detachbox.token \
  /etc/detachbox-node /usr/local/lib/detachbox-node /usr/local/bin/detachbox-node-host /var/lib/detachbox-node
userdel incus; groupdel incus-admin; userdel cloudflared
systemctl daemon-reload; update-initramfs -u -k all; reboot   # der Neustart beendet alles, was noch läuft

Nach dem Neustart entfernt apt-get autoremove --purge, was apt für sie nachgezogen hat, und der Server besteht die Prüfungen der Installation wieder.