detachbox
PáginasQuita el nodo

Quita el nodo

sudo detachbox-node-host uninstall --confirm

La desinstalación deja el servidor tal como lo encontró la instalación. Cada terminal se finaliza, y el nodo se detiene para siempre.

Primero se va lo que está en marcha: node-host y el túnel, después cada terminal y el edge, después Incus con cada proceso, bridge, regla de firewall y montaje que tenía. Luego se van los paquetes que añadió la instalación, con todo lo que apt trajo para ellos, los repositorios de Incus y Cloudflare, el usuario de sistema de Incus, los ajustes sysctl del nodo, y la configuración, las claves y el estado de la instalación. El propio detachbox-node-host se queda mientras exista el pool, para que puedas quitarlo más tarde.

Después avisa a tu contacto en detachbox, que quita el nodo de tu cuenta.

Tus archivos se quedan en el pool

El pool boxes con los archivos de tu cuenta se queda, exportado, y con ZFS para leerlo:

sudo zpool import boxes                          # vuelve a traer el pool
sudo zfs list -r boxes/custom                    # lista las carpetas de tu cuenta
sudo mount -t zfs boxes/custom/<folder> /mnt     # abre una

Cuando ya no necesites esos archivos, sudo detachbox-node-host uninstall --confirm --destroy-pool destruye el pool conservado con todo lo que contiene y quita ZFS y detachbox-node-host. Si vuelves a ejecutar uninstall --confirm sin esa opción, dice que el nodo ya está desinstalado y nombra ese comando. En un servidor donde ya no está detachbox-node-host, la comprobación de la instalación imprime el comando que hay que usar.

Una nueva instalación en este servidor rechaza el disco del pool conservado y dice por qué: un nodo nuevo nunca se queda con los archivos del nodo anterior. Dale al nodo nuevo otro disco, o quita antes el pool conservado con el comando que imprime la comprobación. Los paquetes de OpenZFS que conservó el nodo anterior pasan a ser los de la nueva instalación.

Destruye también el pool

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

Esto destruye el pool y todos sus archivos. Solo toca el pool que creó esta instalación, y solo limpia el disco cuando todo lo que hay en él es de la instalación: el mismo disco en el que se creó el pool, según su WWN o su número de serie, y solo con las particiones del propio pool. Entonces el disco queda vacío, tal como lo encontró la instalación: las etiquetas del pool borradas, cada firma y la tabla de particiones limpiadas, y el disco comprobado igual que lo comprueba la instalación. Si no, el disco se queda como está, y la desinstalación dice por qué y qué hacer, como muestra Solución de problemas del nodo. Después quita OpenZFS y cada paquete que la instalación añadió para él. Al terminar, el servidor pasa las comprobaciones de la instalación para instalar de nuevo.

Si falla un paso

La desinstalación se detiene en ese paso y lista lo que sigue en el servidor. No falta nada que necesite una segunda ejecución: ZFS se queda mientras exista el pool, y node-host conserva su historial hasta el final. Arregla lo que dice la línea y vuelve a ejecutar el mismo comando; sigue desde ese paso.

Con --destroy-pool, lo último que quita la desinstalación es el propio detachbox-node-host; si conservas el pool, el programa se queda en el servidor. El log de la desinstalación, con cada ejecución de la instalación que la precedió, se queda en /var/log/detachbox-node-uninstall.log, legible solo por root.

Quítalo a mano

Solo para el peor caso: uninstall se detiene en el mismo paso una y otra vez, y ningún node-host corregido puede llegar al servidor, porque un nodo retirado de su cuenta ya no se actualiza solo. Ejecuta esto como root, en este orden, y sáltate lo que ya no esté. Aquí el disco del pool es /dev/sdb y su partición ZFS, /dev/sdb1:

cp /var/lib/detachbox-node/install/install.log /var/log/detachbox-node-uninstall.log   # conserva el log
systemctl disable --now detachbox-node-host cloudflared-detachbox
rm -f /etc/systemd/system/detachbox-node-host.service /etc/systemd/system/cloudflared-detachbox.service
# cada terminal y el edge, después el propio Incus
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
# el pool, conservado con tus archivos:
zpool export boxes
# o, solo para destruirlo con todos sus archivos y vaciar su disco:
zpool import -N boxes 2>/dev/null; zpool destroy -f boxes
zpool labelclear -f /dev/sdb1          # las etiquetas están en la partición, no en el disco entero
wipefs -a /dev/sdb1 /dev/sdb9 && wipefs -a /dev/sdb && blockdev --rereadpt /dev/sdb
# paquetes, repositorios, archivos, usuarios
apt-mark unhold incus incus-base incus-client cloudflared
apt-get purge incus incus-base incus-client cloudflared 'openzfs-*'   # conserva openzfs-* si conservaste el pool
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   # el reinicio termina lo que siga en marcha

Tras el reinicio, apt-get autoremove --purge quita lo que apt trajo para ellos, y el servidor vuelve a pasar las comprobaciones de la instalación.