domingo, 11 de octubre de 2020

Vamo' a migra' un server

Quiero poner un servicio de correo electrónico donde no está. Y eso es una migración. Y lo voy a hacer de on-premises a eso que llaman "la nube". Aunque lo local sea mi servidor casero y la nube sea un servidor contratado con un servicio de hosting.

Así que lo primero es pagar por, e instalar el servidor remoto. De entre las opciones disponible, he elegido Debian 9 (Stretch), porque me será sencillo migrarlo a Devuan.

Así que una vez creado el servidor, de nombre mercurio, el mensajero de los dioses, le instalo lo mínimo que requiero siempre (es decir, vim, htop y aptitude) y a actualizarlo a Devuan.

El primar paso desde Stretch, siguiendo las indicaciones oficiales de Devuan es instalar sysvinit-core y eliminar libpam-systemd, para sentar las bases del nuevo sistema de arranque. Con esto puede que el escritorio no arranque, pero en serio, ¿alguien tiene un escritorio en un servidor recién instalado? (Ejem, SuSE, ejem) En cambio, aseguramos que el sistema sí arranque. Particularmente, en este tipo de operaciones yo siempre las eliminaciones las hago con purge y no con delete.

El siguiente paso sería cambiar las fuentes, pero yo no lo hago directamente. En su lugar creo un fichero /etc/apt/sources.list.d/beowulf que contiene las líneas que hay que añadir. Así queda todo más claro.

Se actualizan las listas de paquetes, se instala el llavero y se actualizan otra vez. Aquí el documento peca de optimista: te la han podido colar con un MITM justo en ese momento. ¡Ah!

Vamos a evitar esto. Primero, vemos e importamos (ojo, si no la importamos será como si nada) la clave maestra de Devuan con

gpg --keyserver keys.gnupg.net --search-keys BB23C00C61FC752C

tal y como indica la página de la distribución. No me creas a mi, comprueba por ti mismo la huella que tienes que importar. Cuando ya la tienes, la puedes ver y jugar con ella, pero lo importante es que puedes usarla para autentificar paquetes:

gpg --export BB23C00C61FC752C | apt-key add -

En este momento ya se puedes realizar el aptitude update, instalar el paquete devuan-keyring, realizar el segundo aptitude update, y seguir. Para ello hay que instalar libtinfo6 y pasar a meternos en harina. Ahí viene el primer paso de la migración real: la paquetería.

aptitude upgrade

"Sí a todo".

Luego hacer el primer reinicio. Ojo, que puedes perder el acceso remoto al servidor en este paso, si no te has asegurado de que todas las tarjetas de red van a levantar, las IPs están bien asignadas, etc. El renombrado de ens* a eth* puede dar problemas.

Tras el reinicio instalamos eudev y hacemos un full-upgrade, para cambiar lo que queda de la paquetería:

aptitude full-upgrade

Con esto vemos desaparecer systemd, y dejar el sistema listo para los siguientes pasos. Finalmente, puedes sustituir libsystemd0 por libelogind0 y ya no quedará rastro.

Lo siguiente que hago es asegurarme de que todos los paquetes que hay instalados tienen una razón de ser: recorro todo aptitude marcando los paquetes como auto, y los que aparecen para borrar porque no son dependencias de otro decido si los quiero o no.

No hay comentarios: