Actualización

Una nueva versión siempre se extrae en un directorio separado. No debe copiarse sobre la instalación existente ni extraerse directamente allí. El nuevo update.sh actualiza después exactamente la instancia indicada como argumento.

Preparación y copia de seguridad

Antes de cada actualización debe existir una copia de seguridad completa y verificada. Debe incluir al menos:

  • El directorio completo de la instancia, especialmente core/config/QisutuConfig.pm

  • var/secure/security.key

  • La base de datos

  • Personalizaciones propias de Apache, proxy, TLS y systemd

  • Si procede, adjuntos externos o ubicaciones de almacenamiento conectadas

security.key es indispensable para restaurar secretos cifrados de correo, OAuth y autenticación de dos factores. Guárdelo protegido junto con la copia de seguridad correspondiente de la instancia.

Descargar la versión

cd /tmp
wget https://ftp.qisutu.de/qisutu-1.0.2.tar.gz
tar xzf qisutu-1.0.2.tar.gz
cd qisutu-1.0.2

Al actualizar a una versión posterior deben utilizarse, naturalmente, la URL y el nombre de directorio de esa versión de destino.

Iniciar la actualización

Instancia de producción:

sudo ./update.sh /opt/qisutu

Instancia adicional:

sudo ./update.sh /opt/qisututest

El actualizador lee var/install/instance.conf y muestra antes de la confirmación la ruta de instalación, el identificador de instancia, la ruta web, la base de datos y el servicio systemd. Cancele si alguno de estos valores no corresponde a la instancia deseada.

Proceso de actualización

El script realiza, entre otros, los siguientes pasos:

  1. Comprobación de sumas de verificación de la versión, versiones, archivo de esquema, sintaxis de Perl y registro de programas.

  2. Creación opcional de un volcado adicional de la base de datos. Compruebe antes el espacio libre en /var/backups.

  3. Activación del modo de mantenimiento, detención del daemon de la instancia y bloqueo de nuevas recuperaciones de correo.

  4. Actualización de todos los archivos de programa administrados por la versión; se añaden archivos nuevos y se eliminan archivos administrados que ya no se publican.

  5. Conservación de archivos locales de la instancia, configuraciones, registros, datos de ejecución y clave de seguridad.

  6. Comparación del esquema de base de datos y ejecución de todas las migraciones SQL y Perl aún no registradas.

  7. Nueva comprobación del estado objetivo e inicio del daemon.

Comprobación posterior

Tras finalizar correctamente, compruebe:

systemctl status qisutu-daemon.service
journalctl -u qisutu-daemon.service --since today

A continuación, inicie sesión, compruebe las versiones mostradas de Qisutu y de la base de datos, y pruebe al menos el inicio de sesión, la vista de tickets, la recuperación y el envío de correo. Con varias instancias, esta comprobación se realiza por separado para cada instancia actualizada.

Actualización fallida

No ejecute el script repetidamente sin analizar la causa. Guarde la salida y los registros, compruebe el espacio libre, el acceso a la base de datos, los permisos de archivos y el estado del servicio. Si el estado no es claro, restaure conjuntamente la copia completa previamente verificada del directorio del programa y la base de datos.