425 - Actualizando Ubuntu Server a lo loco
Este fin de semana he actualizado Ubuntu Server a lo loco. Y te digo a lo loco, porque he conseguido hacer dos o tres actualizaciones en una... Un locurón
Como suelen decir en las películas, los sucesos que voy a relatar se basan en hechos reales, aunque se han dramatizado ligeramente, para darle mayor intensidad al podcast. Aunque como te puedes imaginar, no tengo muy claro, que si están dramatizados o al revés, es decir, simplemente le he quitado dramatismo. Esto lo dejo a tu entera decisión, para que seas tu el que juzgues los hechos y simplemente le des o quites importancias a cada uno de los hechos acontecidos. Lo que es real es que este sábado pasado estuve actualizando Ubuntu Server a lo loco. Y digo a lo loco, porque no era muy consciente de lo que estaba haciendo. Sin embargo, no quiero adelantarme en la historia, vamos paso a paso.
Actualizando Ubuntu Server a lo loco
Paso a paso
Puesta en marcha
Como bien sabes, estoy completamente emocionado con esto del feedback. Tanto es así, que ayer lo puse en funcionamiento, pero a lo loco, a lo loco, es decir, sin realizar pruebas ni nada… Quizá también dramatizo demasiado, si que he realizado pruebas, pero lo cierto es que no puedo comprobarlo conmigo mismo, con lo que *digamos que las pruebas son un poco *fake*.
Lo he puesto en marcha tanto en Twitter como en Mastodon, de forma que si me citas en cualquiera de estas dos redes sociales, incluyendo el hastag #comentario, #idea o #pregunta debería de desencadenare el proceso.
De hecho, es justo en este punto, donde descubrí un bug en la instancia de Mastodon en la que me encuentro, que comenzó a dar errores si realizas búsquedas mediante la API. Esto el pasado martes funcionaba correctamente, y luego dejó de funcionar, lo cual me escama… Si alguien conoce a alguno de los resposables de la instancia de Mastodon.Social, que me diga, a ver si puedo ponerme en contacto ocon ellos.
Mattermost
Llegados a este punto y para estar al tanto de todo lo que sucede tanto en Mastodon como en Twitter, desactivé un ifttt que tenía en Twitter, que me mandaba un mensaje a Telegram si alguien me mencionaba en esta red social, y lo pasé a este bot.
Sin embargo, para quitar ruido de Telegram, decidí pasar todos estos avisos a mi instancia de Mattermost.
Hace algún tiempo levanté una instancia de Mattermost en mi VPS. Si no lo conoces, decirte que Mattermost, es una red social muy similar a Slack, pero con algunas ventajas respecto a esta red. La primera de las ventajas es que tu puedes levantar y controlar tu propia instancia.
Así que para cada uno de las istuaciones, pregunta, comentario, e idea he creado un canal, de forma que para cada uno de ellos, llegan los mensajes diferenciados…
La verdad es que estoy enamorado de este servicio. Funciona de forma espectacular, y realmente es un servicio muy profesional. No me extraña, que muchos equipos de IT lo utilicen como herramienta de operaciones, porque da mucho juego.
Y llegó el desastre
Una vez levantado todo esto, con su Docker Compose y todas las historias, me di cuenta, de que había una diferencia entre la hora de mi equipo personal, con Manjaro, y la hora del Ubuntu Server.
Esto me molesta muchísimo, porque utilizo la hora para comprobar en los logs, cuando se produce un error, o se envía un mensaje desde los contenedores. Claro, imaginate que el reloj de mi ordenador estaba cinco minutos adelantados, y no me cuadraban los mensajes que se estaban lanzando… Todo llegaba tarde, cuando la realidad, es que mi equipo personal estaba en el futuro.
Yo le eché la culpa al Ubuntu Server. De hecho, me llamó la atención que utilizaba un Servicio de Systemd para controlar que estaba sincronizado la hora. Como estoy acostumbrado a NTP, desactivé este servicio e intenté instalar NTP, y fue el momento en el que me di cuenta que algo no iba bien.
Algunas semanas atrás había actualizado este servidor de Ubuntu 20.04 a 22.04, o al menos eso creía yo, porque cuando fuí a instalar NTP, me di cuenta que no. Es lo que tiene la confianza. No me había dado cuenta, que por culpa de un maldito paquete no se había producido la actualización. Así que, el primer paso, fue, resolver el problema con el maldito paquete y continuar con la instalación.
Ahora tenía la cosa de la sincronización a medias, y la actualización de 20.04 a 22.04 a medias.
Llegados a este punto tengo que decir, que me fascina la sólido que es Linux en general y Ubuntu en particular. Porque este servidor lo tengo en marcha desde el 2018, con Ubuntu 18.04, y solo lo he reiniciado en un par de ocasiones, en concreto después de pasar a 20.04 y ahora al pasar a 22.04… Pero no me quiero adelantar con mis aventuras.
Actualización sobre actualización
A todas estas, mientras estaba haciendo esto, estaba subiendo una actualización del bot de Telegram en Rust, en otra terminal estaba desplegando una herramienta que he implementado en Rust para enviar correos mediante API, y para completar el pastel, estaba actualizando una tercera aplicación también en Rust, de un proyecto secreto que estoy haciendo con Daniel Primo…. Es decir, tenía como cinco consolas abiertas atacando al servidor.
En estas, y sin darme cuenta, pensé que el proceso de actualización había terminado, y lancé un segundo proceso de actualización. Lo cierto, es que no se exactamente en que momento se coló eso, pero se inició.
Así, tenía, la instalación del NTP y un par de upgrade de Ubuntu. Y para colmo de males, estaba la actualización de Docker a la última versión, que parecía que no terminaba nunca… Tenía montado un lio de mucho cuidado*. Sin embargo, al final, todo terminó y terminó correctamente.
Y es que aunque en el caso de Ubuntu de escritorio siempre suelo instalar de nuevo, en el caso de Ubuntu Server, siempre lo hago en caliente, y siempre funciona perfecto, incluido esta ocasión, y a pesar del tremendo lío que monté.
¿Y que pasó con la hora?
Pues llegados a este punto, y después de pensar que era Ubuntu el que iba mal, me di cuenta que estaba completamente equivocado, el que iba mal era Manjaro. El proceso de actualización estaba detenido. Ponerlo en marcha fue tan sencillo, como ejecutar,
sudo systemctl start systemd-timesyncd
Y todo arreglado.
Algunas reflexiones
La primera de las reflexiones es sobre el propio Ubuntu Server. Como te decía, lo tengo instalado desde el 2018 y funciona a las mil maravillas. Solo he tenido que reiniciarlo en la actualización de la 18.04 a la 20.04 y posteriormente a la 22.04.
Y es que como digo, es una auténtica roca. Está funcionando durante años sin necesidad de actuar sobre él. Ojalá el equipo con Windows se comportará así. Hay días que se degrada tanto que necesito reiniciarlo a mitad de día para seguir trabajando con él… Un verdadero infiero. Esto con Linux nunca me ha pasado.
A pesar de todo el lío que he montado con la actualización de versión, se ha resuelto todo, incluida la actualización de Docker, que no se porque ha llevado tanto tiempo. Un poco raro.
¿Y el plugin de compose de Docker? No se exactamente cuando instalé el plugin Compose de docker, pero lo tenía ya instalado como paquete oficial… Estoy sorprendido. Porque me resulta mucho más cómodo y práctico, utilizarlo como plugin que como herramienta externa.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Hola!
¿Que hubiera pasado en caso de no poder recuperar el servidor? ¿Cómo hubieras procedido para recuperar de backup?
Me ha entrado la duda y no se si harías una instalación limpia y luego una sincronización de carpetas o tienes algo más elaborado.
Un saludo, y gracias por tus podcasts.