Apt-clone: distintos servidores, mismos paquetes instalados

Supongamos que tenemos inicialmente un servidor A con Debian 9 como sistema operativo. Realizamos la instalación de los paquetes que vayamos a necesitar, ya sea Apache, monit, Python, etc… Posteriormente, creamos un segundo servidor B que debería tener los mismos paquetes que el primero. Tenemos dos formas de lograrlo: con dpkg o apt-clone.

Utilicemos uno u otro debemos tener en cuenta ciertas consideraciones previas:

  • Debemos asegurarnos de que los servidores tengan el mismo contenido en /etc/apt/sources.list para poder instalar los paquetes requeridos.
  • Si en nuestro servidor A tenemos paquetes de 32 bits instalados, no olvidéis lanzar en el otro servidor (o servidores) un dpkg --add-architecture i386 para añadir soporte a los paquetes de dicha arquitectura. Lo mismo aplica si en vez de 32 bits son paquetes de otra arquitectura distinta.

La fórmula con dpkg es más tradicional y se basa en el uso de get-selections para obtener una lista de los paquetes actualmente instalados en nuestro sistema:

# En el servidor inicial A
dpkg --get-selections > paquetes_servidorA.txt

# En el servidor B (donde tendremos que subir el fichero paquetes_servidorA.txt)
dpkg --set-selections < paquetes_servidorA.txt
apt-get update
apt-get dselect-upgrade

La segunda forma es con apt-clone. Es una utilidad escrita en Python que podremos instalar desde repos con un sencillo apt-get install apt-clone. Una vez instalada:

# En el servidor A
apt-clone clone paquetes_servidorA.tar.gz

# En el servidor B (transferimos a este servidor el fichero paquetes_servidorA.tar.gz)
apt-clone restore paquetes_servidorA.tar.gz

Si queremos obtener información del archivo generado lanzamos un apt-clone info paquetes_servidorA.tar.gz

Por otro lado, también podemos utilizar apt-clone como una herramienta de backup del estado de la paquetería de nuestro sistema en un momento dado. Por ejemplo, podríamos obtener cada cierto tiempo (con un cron) una lista de los paquetes instalados e ir haciendo un historial que sirva como control de cambios de paquetería a nivel de sistema.

La utilidad apt-clone también funciona en distros derivadas de Debian como Ubuntu y a su vez derivadas de ésta última como ElementaryOS.