In order to guarantee continuity of the services, each computer migration must be planned and executed according to the plan. This principle applies regardless of which operating system is used.
3.2.1. Reconocimiento e identificación de servicios
Simple como parece, este paso es esencial. Un administrador serio realmente conoce los roles principales de cada servidor, pero dichos roles pueden cambiar y a veces usuarios experimentados pueden haber instalado servicios «salvajes». Saber que existen le permitirá, al menos, decidir qué hacer con ellos en lugar de eliminarlos sin orden ni propósito.
Por ello, es buena idea informar a sus usuarios del proyecto antes de migrar el servidor. Involucrarlos en el proyecto puede ser útil para instalar el software libre más común en sus equipos de escritorio antes de la migración, programas con los que se encontrarán luego de la migración a Debian; LibreOffice.org y la suite Mozilla son los mejores ejemplos de tales programas.
3.2.1.1. La red y los procesos
La herramienta nmap
(en el paquete del mismo nombre) identificará rápidamente servicios de internet hospedados en un equipo conectado a la red sin siquiera necesitar iniciar sesión en el mismo. Simplemente ejecute la siguiente orden en otro equipo conectado a la misma red:
$
nmap mirwiz
Starting Nmap 7.80 ( https://nmap.org ) at 2021-04-29 14:41 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
139/tcp open netbios-ssn
445/tcp open microsoft-ds
5666/tcp open nrpe
9999/tcp open abyss
Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
If the server is a Unix machine offering shell accounts to users, it is interesting to determine if processes are executed in the background in the absence of their owner. The command
ps auxw
displays a list of all processes with their user identity. By checking this information against the output of the
who
or
w
commands, which give a list of logged in users, it is possible to identify rogue or undeclared servers or programs running in the background. Looking at
crontabs
(tables listing automatic actions scheduled by users) will often provide interesting information on functions fulfilled by the server (a complete explanation of
cron
is available in
Sección 9.7, “Programación de tareas con cron
y atd
”).
En cualquier caso, es esencial que haga respaldos de sus servidores: de esta forma se asegurará que la información pueda ser recuperada después del hecho, cuando los usuarios informen acerca de problemas concretos derivados de la migración.
3.2.2. Respaldos de la configuración
Es buena idea conservar la configuración de todo servicio identificado para poder instalar el equivalente en el nuevo servidor. Como mínimo debería hacer un respaldo de los archivos de configuración.
En los equipos Unix, los archivos de configuración se encuentran normalmente en /etc/
pero puede que se encuentren en un subdirectorio de /usr/local/
. Este es el caso si el programa se ha instalado desde las fuentes en lugar de utilizar un paquete. En algunos casos podría encontrarlos en /opt/
.
Para servicios que administren datos (como bases de datos), es muy recomendable exportar los datos a un formato estándar que pueda ser importado fácilmente por el nuevo software. Tal formato generalmente está documentado y es texto plano; puede ser, por ejemplo, un volcado SQL para una base de datos o un archivo LDIF para un servidor LDAP.
Cada software de servidor es diferente y es imposible describir en detalle todos los casos posibles. Compare la documentación del software nuevo y el actual para identificar las porciones exportables (y, por lo tanto, importables) y aquellas que necesitarán que intervenga de forma manual. Leer este libro clarificará la configuración de los principales programas de servidor en Linux.
3.2.3. Adopción de un servidor Debian existente
Para efectivamente tomar el control de su mantenimiento, uno podría analizar un equipo que ya ejecuta Debian.
El primer archivo a revisar es /etc/debian_version
que generalmente contiene el número de versión para el sistema Debian instalado (es parte del paquete base-files. Si indica nombre_código/sid
significa que el sistema fue actualizado con paquetes que provienen de alguna de las distribuciones en desarrollo («Testing» o «Unstable»).
El programa apt-show-versions
(que se encuentra en el paquete Debian que lleva el mismo nombre) comprueba la lista de paquetes instalados e identifica las versiones disponibles. Puede utilizar también aptitude
para estas tareas, aunque de un modo menos sistemático.
Revisar el archivo /etc/apt/sources.list
(y el directorio /etc/apt/sources.list.d/
) mostrará de dónde es probable que provengan los paquetes Debian. Si aparecen muchas fuentes desconocidas, el administrador podría elegir reinstalar el sistema completamente para asegurar compatibilidad óptima con el software provisto por Debian.
The sources.list
file is often a good indicator: the majority of administrators keep, at least in comments, the list of APT sources that were previously used. But you should not forget that sources used in the past might have been deleted, and that some random packages grabbed on the Internet might have been manually installed (with the help of the dpkg
command). In this case, the machine is misleading in its appearance of being a “standard” Debian system. This is why you should pay attention to any indication that will give away the presence of external packages (appearance of deb
files in unusual directories, package version numbers with a special suffix indicating that it originated from outside the Debian project, such as ubuntu
or lmde
, etc.).
De la misma forma, es interesante analizar el contenido del directorio /usr/local/
, cuyo propósito es albergar programas compilados e instalados manualmente. Generar una lista de software instalado de esta forma es instructivo, ya que genera dudas sobre las razones para no utilizar el paquete Debian correspondiente, si es que existe.
3.2.4. Instalación de Debian
Una vez que conoce toda la información del servidor actual, puede apagarlo y comenzar a instalar Debian en él.
Para elegir la versión apropiada, debemos saber la arquitectura del equipo. Si es una PC relativamente reciente, es probable que sea amd64 (equipos más antiguos usualmente eran i386). En otros casos podemos reducir las posibilidades según el sistema utilizado previamente.
La
Tabla 3.1 no pretende ser exhaustiva, pero puede ser útil. Tenga en cuenta que este lista las arquitecturas Debian que ya no son compatibles con la versión estable actual. En cualquier caso, la documentación original para el equipo es la fuente más confiable para encontrar esta información.
Tabla 3.1. Emparejando sistema operativo y arquitectura
Sistema operativo | Arquitectura(s) |
---|
DEC Unix (OSF/1) | alpha, mipsel |
HP Unix | ia64, hppa |
IBM AIX | powerpc |
Irix | mips |
OS X | amd64, powerpc, i386 |
z/OS, MVS | s390x, s390 |
Solaris, SunOS | sparc, i386, m68k |
Ultrix | mips |
VMS | alpha |
Windows 95/98/ME | i386 |
Windows NT/2000 | i386, alpha, ia64, mipsel |
Windows XP / Windows Server 2008 | i386, amd64, ia64 |
Windows RT | armel, armhf, arm64 |
Windows Vista / Windows 7-8-10 | i386, amd64 |
3.2.5. Instalación y configuración de los servicios seleccionados
Una vez que Debian está instalado debemos instalar y configurar individualmente, todos los servicios que debe tener este equipo. La nueva configuración debe tener en cuenta la anterior para asegurar una transición fluida. Toda la información recolectada en los primeros dos pasos será útil para completar esta parte exitosamente.
Antes de sumergirse completamente en este ejercicio es muy recomendable que lea el resto de este libro. Luego tendrá un entendimiento más preciso de cómo configurar los servicios esperados.