Este artículo demuestra el proceso completo de actualización a Debian 10 (Buster) de una instancia EC2 corriendo Debian 9 (Stretch) mediante full-upgrade.

No hace falta aclarar que antes de realizar este tipo de tareas se debe generar un snapshot fresco de la instancia y verificar este procedimiento primero en un entorno de pruebas/desarrollo.

Verificación de requisitos

Verificación de requisitos según la documentación oficial de Debian:

root@debian:~# grep PubkeyAcceptedKeyTypes /etc/ssh/sshd_config
root@debian:~# echo /sys/class/net/[e]*
/sys/class/net/eth0
root@debian:~# rgrep -w eth0 /etc
/etc/dhcp/dhclient.conf:#  interface "eth0";
/etc/dhcp/dhclient.conf:#  interface "eth0";
/etc/initramfs-tools/initramfs.conf:# Specify a specific network interface, like eth0
/etc/sysconfig/network-scripts/ec2net-functions:  if [ "${INTERFACE}" == "eth0" ]; then
/etc/sysconfig/network-scripts/ec2net-functions:  if [ "${INTERFACE}" == "eth0" ]; then
/etc/sysconfig/network-scripts/ec2net-functions:  if [ "${INTERFACE}" == "eth0" ]; then
/etc/sysconfig/network-scripts/ec2net-functions:  if [ "${INTERFACE}" == "eth0" ]; then
/etc/network/interfaces:auto eth0
/etc/network/interfaces:iface eth0 inet dhcp
/etc/network/interfaces.d/50-cloud-init.cfg:auto eth0
/etc/network/interfaces.d/50-cloud-init.cfg:iface eth0 inet dhcp
/etc/network/if-up.d/upstart:	# Ignoring unknown interface eth0=eth0.

La configuración de SSH no requiere modificaciones previas al upgrade.

La configuración del nombre de la interfaz de red es provista por el paquete cloud-init (el nombre de la interfaz de red es seteado en la configuración de la instancia EC2). De esta forma no hay riesgo de desconexión al migrar a Buster.

Actualización

Desde la consola de EC2, crear un snapshot fresco.

Editar los repositorios de Debian. Cambiar "stretch" por "buster" en los siguientes archivos:

# sed -i 's/stretch/buster/g' /etc/apt/sources.list
# sed -i 's/stretch/buster/g' /etc/apt/sources.list.d/php.list

Actualizar repositorios:

# apt update

Realizar una limpieza inicial:

# apt autoremove
# apt clean

Ejecutar la actualización mínima:

# apt-get upgrade

Correr la actualización completa del sistema:

# apt full-upgrade

Reiniciar:

# reboot

Ajustar el nombre de host:

# nano /etc/hostname

Tareas post-actualización

En caso de correr una aplicación PHP será necesario reinstalar las dependencias de composer corriendo composer install.

Documentar otros detalles particulares para replicar la actualización en un entorno de producción.

Referencias

Compartí este artículo