Foro Confederac.io

Actualizaciones de software en red.confederac.io (Mastodon)

Este tema es una continuación de Actualizaciones de software en Confederac.io. Aquí nos vamos a centrar en las actualizaciones de nuestro servidor Mastodon en https://red.confederac.io.

Hay más información sobre este servidor en Infraestructura técnica.

Para proceder con las actualizaciones es necesario seguir las instrucciones para instalaciones sin Docker.

Antes de proceder con una actualización hay que sacar un snapshot de todo el servidor (copia de seguridad de todo).

Enlaces relacionados:

Cómo borrar media en cache:

cd /home/mastodon/live/

su mastodon

RAILS_ENV=production bin/tootctl media remove

Cómo crear un fichero swap temporal en caso de que algún proceso deje el servidor sin memoria:

(como root)

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
1 Like

Nos habíamos quedado en una vuelta p’atrás a Mastodon v2.6.5 el 28 de enero.

Hoy Mastodon va por v2.7.4 y es hora de actualizar.

La ajetreada actualización paso a paso.

Voy a ir reportando en este post.

Lo primero es sacar un snapshot del servidor por si acaso. Voy a desconectar red.confederac.io…

12:38 Snapshot creado: mastodon-1551956403811 - 45.11 GB.

12:46 El snapshot ha crecido mucho en un mes. Voy a borrar media en cache. Tengo que meter esta tarea en el cron para que limpie a diario, siempre me olvido.

12:51 Removed 46608 media attachments (approx. 13.1 GB). Vale. Procedo con la actualización.

12:53 v2.7.0 tiene pasos especiales. Veamos.

12:54 gem update --system actualiza un porrón de cosas y acaba con RubyGems system software updated. Bien.

12:55 bundle install - Todo bien.

12:56 yarn install resulta en

warning Your current version of Yarn is out of date. The latest version is "1.13.0", while you're on "1.12.3".
info To upgrade, run the following command:
$ sudo apt-get update && sudo apt-get install yarn

OK… Pues venga.

12:59 sudo apt-get update && sudo apt-get install yarn dice yarn is already the newest version (1.12.3-1). Pues vamos bien…

13:00 Bueno, voy a proseguir ignorando este warning y a ver qué pasa.

13:01 SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate - OK

13:02 RAILS_ENV=production bundle exec rails assets:precompile - (se pone a compilar…)

13:06 Ha acabado de compilar. Parece que bien. Durante la espera me he dado cuenta de que estos pasos se deberían hacer DESPUÉS de actualizar el repositorio de Mastodon… Grrrr. Bueno, voy a acabar el proceso y a volver a empezar.

13:08 RAILS_ENV=production bundle exec rails db:migrate - OK

13:10 Qué bien. red.confederac.io no funciona. Bueno, es la hora de la huída hacia adelante. Vamos a actualizar el repositorio.

13:12 git fetch && git checkout v2.7.4 - OK

13:13

gem update --system

rbenv: version `2.6.0' is not installed (set by /home/mastodon/live/.ruby-version)

Recuerdo haber tenido este problema antes. No recuerdo cómo lo solucioné. :frowning: Habrá que buscar.

13:17

rbenv install 2.6.0
ruby-build: definition not found: 2.6.0

The following versions contain `2.6.0' in the name:
  2.6.0-dev
  2.6.0-preview1
  2.6.0-preview2
  2.6.0-preview3

See all available versions with `rbenv install --list'.

If the version you need is missing, try upgrading ruby-build:

  cd /home/mastodon/.rbenv/plugins/ruby-build && git pull && cd -

Vale, probemos.

13:18 cd /home/mastodon/.rbenv/plugins/ruby-build && git pull && cd - - Esto tiene buena pinta.

13:19 rbenv install 2.6.0 - Downloading… Installing…

13:26 Tras una buena espera hasta que finalizara la instalación, rbenv 2.6.0 parece estar en orden. Volvamos al paso anterior.

13:27 gem update --system - OK

13:28 bundle install - Instalando… OK

13:33 yarn install - Ah mira, ahora no se queja. Bien, bien.

13:34 SKIP_POST_DEPLOYMENT_MIGRATIONS=true RAILS_ENV=production bundle exec rails db:migrate - Muchisimo output, pero parece que todo bien.

13:35 RAILS_ENV=production bundle exec rails assets:precompile - Tras un buen rato compilando, OK

13:43 Uups, antes me había dejado este paso aquí: Restart all Mastodon processes - (aquí me hago un lío que os ahorro)

13:57 https://red.confederac.io parece que funciona. Presenta un nuevo tutorial.

14:00 Tras pasar por el tutorial veo mi timeline. Todo parece estar en su sitio. Mastodon v2.7.4. Uffffff! :sweat_smile:

Mastodon 2.7 viene con muchas novedades. Las iremos comentando. Si alguien tiene prisa, aquí hay un blog post en inglés y las release notes.

2 Likes

Muchas gracias por el trabajo.
Creo que seria bueno hacer un post detallado, como este, sobre como actualizar cada uno de los componentes de confederac.io. Para tener una especie de documentación el dia que tengamos más de un admin.

2 Likes

6 mensajes han sido separados a un nuevo tema: Problemas en red.confederac.io (Mastodon)

En unas horas vamos a actualizar nuestro nodo Mastodon a la última versión. Esto significa que el servidor estará tumbado durante los minutos que realicemos la copia de seguridad.

Iremos informando aquí.

2 Likes

Empecemos. Hay que actualizar de v2.7.4. a 2.8.4 y tenemos de todo: actualización de librerías, de base de datos…

Detalles técnicos

20:50 He apagado el servidor para sacar un snapshot.

Cuando acabe el snapshot, lo primero que quiero hacer es ver si puedo solucionar un vejo problema relacionado con una cuenta para @bakunix.

21:27 Snapshot creado. Enciendo el servidor. http://red.confederac.io está como estaba. Bien.
21:45 Tras varios palos de ciego (es que yo el Rails…) doy con el comando acertado para borrar el registro de @bakunix, que por un problema extraño se haba quedado a medio registrar:

RAILS_ENV=production bundle exec rails c
Account.find(30086).destroy

El número de la cuenta lo he visto visitando su página de usuario en el interfaz de administración.

Parece que todo sigue funcionando. Procedamos con la actualización.

21:50 git fetch && git checkout v2.8.4

21:51 Todo bien. Las notas de v2.8.0rc1 dicen que hay que actualizar la versión de Ruby a 2.6.1. rbenv install 2.6.1

22:00 Bien. Seguimos con gem update --system.

22:02 Bien. Las notas también dicen que hay que instalar dependencias. Empezamos con bundle install.

22:06 Bien. Y continuamos con yarn install.

22:07 Bien. Siguiendo con las notas, hay que migrar la base de datos. Aquí es cuando no tan viejos recuerdos me despiertan un sudor en la espalda… RAILS_ENV=production bundle exec rails db:migrate

22:08 ¿Bien? RAILS_ENV=production bundle exec rails assets:precompile

22:19 Mmm… Me da un error “out of memory” al que no encuentro solución en internet. A ver… Las notas de v2.8.1 dicen que hay que limpiar la cache. Voy a probar qué pasa si empiezo por ahí: RAILS_ENV=production bin/tootctl cache clear

22:20 Dice que OK. Ahora vuelvo a RAILS_ENV=production bundle exec rails assets:precompile

22:22 Meh. De aquí no salgo:

RAILS_ENV=production bundle exec rails assets:precompile
yarn install v1.12.3
[1/6] Validating package.json...
[2/6] Resolving packages...
success Already up-to-date.
Done in 1.40s.
Compiling…
Compilation failed:


#
# Fatal error in , line 0
# API fatal error handler returned after process out of memory
#

22:23 Voy a reiniciar Mastodon y a ver qué pasa. exit y luego systemctl restart mastodon-sidekiq seguido de systemctl reload mastodon-web

22:28 … ¿Parece que funciona? La versión en https://red.confederac.io/web/getting-started es v2.8.4 (bien). Pero voy a preguntar a ver si puedo solucionar lo del precompile.

22:41 Parece que enviar y leer funciona, pero un par de páginas sobre el nodo no. He reportado el problema en

https://discourse.joinmastodon.org/t/assets-precompile-fatal-error-out-of-memory/1988

Las nuevas funcionalidades disponibles en Mastodon 2.8 están explicadas aquí:

Hasta aquí el reporte sobre la actualización el resto llega en mensajes aparte.

1 Like

(Para poder completar la actualización he tenido que crear un fichero swap temporal. He copiado las instrucciones en el primer mensaje.)

1 Like

Mastodon 2.9 está disponible, y llega con un importante cambio en el interfaz: pasamos a una columna (quien quiera mantener las múltiples columnas actuales, puede hacerlo en sus preferencias):

Propongo que esperemos un par de semanas, por si acaso sale una 2.9.1 inmediata como a veces pasa tras grandes saltos.

1 Like

Bueno, ya va siendo hora de actualizar a la versión 2.9.x. Mañana por la mañana pararé el servidor para sacar una copia de seguridad y luego procederé con la actualización. Deseadme suerte. :sweat_smile:

CC @Mastomods

3 Likes

Bueno, pues allá vamos…

La actualización paso a paso

10:30 Servidor apagado. Empieza la copia de seguridad.
11:06 Copia de seguridad completada.
11:07 Empiezo con los pasos descritos en https://github.com/tootsuite/mastodon/releases/tag/v2.9.0rc1

11:40 Trans una secuencia de errores que iba a peor, me doy cuenta de que he hecho un error muy tonto, y vuelvo a empezar.

11:41 bundle install OK
11:43 yarn installOK
11:44 RAILS_ENV=production bundle exec rails db:migrate OK
11:45 RAILS_ENV=production bundle exec rails assets:precompile OK!
11:49 RAILS_ENV=production bin/tootctl cache clear OK

Y ya que estoy aquí…

11:50 RAILS_ENV=production bin/tootctl media remove (para borrar imágenes viejas del fediverso cacheadas en nuestro servidor).

Removed 10535 media attachments (approx. 3.03 GB)

11:53 exit
11:53 systemctl restart mastodon-sidekiq OK
11:54 systemctl reload mastodon-web OK

Y https://red.confederac.io muestra v2.9.2 pero de momento no veo la single-column. Voy a investigar, pero la actualización ha sido completada.

1 Like

Ah, para las usuarias existentes hay que “des-chequear” la opción de interfaz avanzada en https://red.confederac.io/settings/preferences/appearance

12 mensajes han sido separados a un nuevo tema: Toots desaparecidos en red.confederac.io

Mastodon actualizado a v2.9.3, más que nada por no quedarnos muy retrasadas. No parece que traiga mucha novedad visible para las usuarias.

Antes de saltar a 3.0.x queremos tener clara la situación de la conexión con GNUSocial, que parece que clara no está:

1 Like

Han pasado tres meses más, nosotras seguimos con Mastodon v2.9.3 (Agosto), y mientras tanto la versión 3.1.2 salió ayer. Es hora de ponernos al día.

1 Like

He tenido un fin de semana de hospitales (no para mi, y la cosa va mejor) o sea que nada. A ver cuando tengo un rato.

1 Like

Hola @icaria36. Lleva toda la mañana sin funcionar ¿estáis actualizando o es el fallo del script de marras?

El fallo de… no se qué.

Dentro una hora saco copia de seguridad y actualizo versión.

1 Like

16:40 - He desconectado la instacia y estoy haciendo una copia de seguridad.

17:00 - Meh, el salto de 2.9.3 a 3.1.2 es muy bestia y creo que va a llevar bastante más rato del que pensaba. Cuando acabe la copia de seguridad enciendo de nuevo la instancia y lo intento de nuevo esta noche con calma, cuando la familia ya esté de camino a la cama. :slight_smile:

17:10 - red.confederac.io vuelve a estar conectada, con la misma versión. Sólo sacar la copia de seguridad lleva media hora (de espera, yo sólo tengo que apretar un botón). A cosa de las 20:30 lo vuelvo a intentar.

1 Like

Una pregunta @icaria36 ¿Confederac.io depende por completo de ti? ¿Si tú no estuvieras operativa el servicio permanecería cerrado en cuanto se diera el fallo del script ese o cualquier otra cosa?

1 Like

Repetimosssss

20:18 Empieza una nueva copia de seguridad.

20:20 Copia de seguridad realizada. Reiniciando la instancia. A ver, ¿dónde está el bisturí? Sudor…

21:40 He tenido que actualizar Ruby, luego Node.js… y aquí seguimos aún en medio de la actualización.

22:00 Bueno, pues parece que ya está todo actualizado a 3.1.2. Aunque ha sido una actualización larga, o ha sido excesivamente caótica. Como siempre esto de ser un admin aficionado tiene sus cosas pero la mayor parte del tiempo ha pasado esperando que los procesos acabaran.

1 Like
Creative Commons License