Para poder garantizar la continuidad de los servicios, la migración de cada equipo debe ser planificada y realizada de acuerdo al plan. Este principio es aplicable sin importar el sistema operativo que utilice.
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.40 ( https://nmap.org ) at 2017-06-06 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
Si el servidor es un equipo Unix ofreciendo acceso de consola a los usuarios, es interesante determinarlo si se ejecutan procesos en segundo plano en ausencia de su usuario. La orden
ps auxw
muestra una lista de todos los procesos con la identidad de su usuario. Comparar esta información con la salida de la orden
who
, que provee la lista de usuarios con sesiones activas, permite identificar servidores no declarados o independientes o programas ejecutando en segundo plano. Revisar
crontab
(tablas de acciones programadas por usuarios) generalmente proveerá información interesante sobre las funciones que cumple el servidor (una explicación completa de
cron
está disponible en la
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.
El archivo sources.list
es generalmente un buen indicador: la mayoría de los administradores mantienen, al menos como comentarios, la lista de fuentes APT utilizadas anteriormente. Pero no debe olvidar que fuentes utilizadas previamente podrían haber sido eliminadas y se podrían haber instalado manualmente paquetes al azar descargados de internet (con la orden dpkg
). En este caso, la apariencia del equipo como un Debian estándar es engañosa. Es por eso que debe prestar atención a cualquier indicación que revele la presencia de paquetes externos (archivos deb
en directorios inusuales, números de versión de paquetes con sufijos especiales que indican su origen fuera del proyecto Debian como ubuntu
o 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. 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, uno por uno, 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.