Este es un apunte rápido y corto ya que a algunos les vendrá bien. Estoy preparando la migración del servidor principal (el que hace de control, repositorio de software e imágenes) de Menéame. Es una instancia EBS (con dos volúmenes adicionales) con Ubuntu 10.04 y ya toca migrar a la 12.04 o 14.04 por su antigüedad y porque se quedará sin soporte.
En general no tuve problemas, pero hay que tener un poco de cuidado cuando se migra de 12.04 a 14.04. Los pasos a hacer desde la consola web son los siguientes (no hace falta hacer nada con comandos):
- Crear un AMI del servidor a actualizar: esto generará una imagen arrancable idéntica al servidor, hay que seleccionar que cree también la imagen para los otros volúmenes montados.
- Arrancar una nueva instancia con ese AMI creado. Esta instancia debe ser idéntica a la original. Ten cuidado de deshabilitar los procesos que puedan interferir con la otra, por ejemplo los que tengan en cron. Verás que creó un AMI y los snapshots correspondientes a cada volumen.
- Ejecutar do-release-upgrade -d para actualizar a 12.04. Esto pasará a la siguiente versión LTS. Como comencé con 10.04 se actualiza a 12.04. Es un proceso que tarda pocos minutos y no me dio ningún problema. Luego hay que hacerlo nuevamente para actualizar a la versión 14.04, antes es mejor reiniciarlo para estar seguro que todo funciona correctamente (mira los mensajes de arranque con el dmesg).
- Ejecutar de nuevo do-release-upgrade -d para actualizar a 14.04. Como el anterior, pero si no vas con cuidado, luego no arrancará porque no encontrará los dispositivos EBS. El problema es sencillo, en la 14.04 se renombran de dispositivos, por ejemplo, el /dev/sda1 se renombra a /dev/vxda1, el /dev/sdc a /dev/vxdc, etc. Antes de reiniciar con la versión 14.04 debes cambiar el /etc/fstab para indicar esos nuevos nombres. Si te olvidas -como yo- no hay problemas, más abajo te explico cómo arreglarlo rápidamente si la instancia no te arranca.
- Ya está, es relativamente sencillo. Ahora debes verificar que las configuraciones te funcionan, reinstalar los módulos que han instalado con herramientas como el pip (Python), o pecl (PHP). Verifica también la configuración del PHP (si lo usas), ya que cambió la estructura de directorios en /etc/php5. Te aconsejo crear otro AMI de este nuevo servidor y probar que arranque correctamente.
Cómo reparar el /etc/fstab (o cualquier otra configuración que impide arrancar una instancia)
Si en el paso #4 te olvidaste de cambiar los nombres de los dispositivos, o lo hiciste pero te equivocaste (o falla cualquier otro fichero), la instancia no arrancará, pero es relativamente sencillo de arreglarlo:
- Detén el servidor que no arranca (Stop desde la consola web).
- Arranca otra instancia (si no tienes ninguna en marcha) con una imagen que funcione, incluso con una Ubuntu oficial. Cualquiera sirve.
- En la ventana de Volumes haz un deattach del volumen raíz de ese disco (no te olvides de apuntar el nombre de /dev con el que estaba enlazado, habitualmente /dev/sda1 o /dev/sda).
- Haz un attach de ese dispositivo a la otra instancia de trabajo, te sugerirá nombres, usa alguno que no tengas en esa instancia, por ejemplo /dev/sdc.
- Monta el dispositivo en la instancia, por ejemplo: mkdir /work; mount /dev/sdc /work (ojo, si estás trabajando en una Ubuntu 14.04 será mount /dev/vxdc).
- Ahora puedes modificar el /work/etc/fstab (o el fichero que tengas que reparar).
- Desmonta el dispositivo (umount /work) y el deattach del volumen a esa instancia.
- Ya puedes hacer el attach del mismo volumen a la instancia que habías detenido y hacer el start.