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