sql >> Base de Datos >  >> RDS >> MariaDB

Actualización a la versión más reciente de Jira con la última versión del servidor MariaDB

En el desarrollo de MariaDB Server utilizamos Jira de Atlassian como software de seguimiento de problemas y proyectos, pero también para la planificación. Usamos Jira desde 2012, cuando migramos desde Launchpad. En ese momento usamos Jira en la nube de Atlassian, pero un par de años más tarde decidimos instalar nuestra propia instancia de Jira y ejecutarla sobre MariaDB Server. Previamente escribí una publicación de blog al respecto.

Jira sobre MariaDB Server NO es una combinación admitida todavía. Jira es compatible con MySQL, pero oficialmente aún no con MariaDB. Por supuesto, queremos tantas piezas de software como sea posible para admitir MariaDB Server para que sea más fácil para nuestros clientes y usuarios. No estamos solos pensando de esta manera. La solicitud para admitir el servidor MariaDB en Jira se encuentra aquí y la solicitud más amplia para admitir el servidor MariaDB en los productos de Atlassian en general se encuentra aquí. Agregue su voto para obtener el soporte oficial de MariaDB Server pronto. Pero la cuestión es que, aunque oficialmente no es compatible, la combinación de Jira y MariaDB funciona muy bien. Actualizamos a la versión más reciente de Jira y a la última versión de MariaDB recientemente.

Antes de la actualización Después de la actualización
SO para Jira Ubuntu 14.04 Ubuntu 18.04
SO para MariaDB Ubuntu 14.04 Ubuntu 18.04
Versión de Jira 7.2.1 7.12.1
Versión del servidor MariaDB 10.1.35 10.3.9
Controlador JDBC Conector MariaDB/J 2.1.2 Conector MariaDB/J 2.3.0
Servidor web Nginx 1.10.1 Nginx 1.14.0
Actualizar complementos de Jira

Jira tiene muchos complementos y las versiones de los complementos deben ser compatibles con la versión de Jira que se está ejecutando. Hay una herramienta incluida en Jira, Jira Update Check para complementos, que se encuentra en la URL /plugins/servlet/upm/check . Use esa herramienta para actualizar todos los complementos a las versiones que serán compatibles con la versión de Jira a la que va a actualizar.

Detener el acceso a Jira

Empecemos con la actualización real. Comience haciendo que Jira no esté disponible para los usuarios, mostrando una página de mantenimiento para todos los que intenten acceder a Jira. Esto se hace fácilmente con Nginx. En la ubicación directiva en la configuración de Nginx, busque un archivo de mantenimiento y, si lo encuentra, muéstrelo para todas las URL.

...
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
...
error_page 503 @maintenance;

ubicación @maintenance {
reescribe ^(.*)$ /maintenance.html break;
}

Base de datos y directorios de copia de seguridad

Antes de comenzar una actualización, por supuesto, uno debe asegurarse de que existan copias de seguridad. Cuando se trata de Jira, uno debe tener una copia de seguridad completa de la base de datos y de los directorios que utiliza Jira para almacenar archivos adjuntos e imágenes de avatar de usuario. Teníamos una herramienta de copia de seguridad ejecutándose en el servidor que producía copias de seguridad completas a diario. Además, también hice un volcado de la base de datos usando la utilidad de volcado.

Copia de seguridad de la base de datos con la utilidad de volcado:

$ mysqldump -u username -p databasename > jiradb20180907.sql
$ tar -zcvf jiradb20180907.tar.gz jiradb20180907.sql

Copia de seguridad de archivos adjuntos y avatares:

$ tar -zcvf attachments20180908.tar.gz /data/jira/data/attachments/
$ tar -zcvf avatars20180908.tar.gz /data/jira/data/avatars/

Copie los archivos de copia de seguridad en otro servidor en caso de que algo salga mal en el proceso de actualización.

Actualización del sistema operativo

Nuestro servidor Jira estaba ejecutando Ubuntu 14.04 y, mientras actualizaba el software, también queríamos actualizar el sistema operativo. No entraré en los detalles de la actualización de Ubuntu, pero básicamente ejecuté do-release-upgrade dos veces para llevar el servidor a Ubuntu 18.04. Había un par de cosas que tenía que hacer. Tuve que crear el archivo /etc/update-manager/release-upgrades.d/unauth.cfg y agregar lo siguiente. Esto fue para permitir bibliotecas que el proceso de actualización de la versión no pudo autenticar, que eran las bibliotecas Galera y MariaDB.

[Distro]
AllowUnauthenticated=yes

Después de la actualización, elimine el archivo unauth.cfg.

En mi caso, la actualización (de 16.04 a 18.04) cambió la configuración del servidor SSH y ya no pude usar SSH en el servidor. Supongo que elegí "Sí" en algún lugar que no debería haberlo hecho. Por suerte, tenía acceso a la consola y configuré SSH manualmente.

Nginx se actualiza durante la actualización del sistema operativo. Verifique ejecutando el comando:nginx -v

Actualización del servidor MariaDB

En nuestro caso teníamos instalado MariaDB Server 10.1. Estos fueron los pasos para obtener la última versión estable de GA de MariaDB Server:

  • Detener el servidor MariaDB 10.1:sudo service mysql stop
  • Desinstalar 10.1:sudo apt remove mariadb-server
  • Agregue un repositorio de MariaDB Server 10.2. Usaré el script de configuración del repositorio de mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
    Para obtener más información sobre el script del repositorio, consulte la documentación.
  • Instalar 10.2:sudo apt install mariadb-server
  • Verifique que MariaDB Server 10.2 se esté ejecutando y funcione
  • Detener MariaDB:sudo service mysql stop
  • Desinstalar 10.2:sudo apt remove mariadb-server
  • Agregue un repositorio de MariaDB Server 10.2. Volveré a utilizar el script de configuración del repositorio de mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3
  • Instalar 10.3:sudo apt install mariadb-server
  • Verifique que MariaDB 10.3 se esté ejecutando y funcione. Compruebe que dirección de datos en en /etc/mysql/my.cnf está apuntando al directorio donde tiene sus archivos de base de datos
Actualización de JDBC, conector MariaDB/J

Antes de pasar a actualizar Jira, primero actualicemos el controlador JDBC para no tener que reiniciar Jira varias veces. Actualizar MariaDB Connector/J es sencillo. Obtenga la última versión de Connector/J de downloads.mariadb.com, colóquela en el directorio lib de Jira y elimine la anterior:

$ wget https://downloads.mariadb.com/Connectors/java/connector-java-2.3.0/mariadb-java-client-2.3.0.jar
$ mv /opt/atlassian/jira/lib/mariadb-java-client-2.1.2.jar ~
$ mv mariadb-java-client-2.3.0.jar /opt/atlassian/jira/lib/

Actualización de Jira

Por último, actualice Jira con el instalador de Jira:

  • El instalador de Jira está disponible aquí:https://www.atlassian.com/software/jira/download
  • Configuración de respaldo de Jira:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
  • Detener Jira:sudo service jira stop
  • Iniciar actualización:sudo ./atlassian-jira-software-7.12.1-x64.bin
  • Siga las instrucciones del instalador
  • Intente iniciar Jira:sudo service jira start (que no funcionará porque se reemplazó server.xml)

Como se dijo en el último paso, Jira no se iniciará porque el instalador reemplazó el archivo de configuración server.xml. Ahora necesita volver a cambiarlo a su configuración. Una manera fácil de hacerlo es hacer una diferencia entre el server.xml que tenía antes y este nuevo. Una vez realizada la configuración, inicie Jira.

También recuerde eliminar (o renombrar) el archivo maintenance.html usado por Nginx, en caso de que haya usado esa forma de poner a Jira en modo de mantenimiento.

Después de tener Jira en funcionamiento nuevamente, todo funcionó bien. Supimos un par de días después que había una cosa que no funcionaba como antes. Usamos Tableau para generar informes y hemos instalado el complemento "All-in-One Tableau Connector for Jira". Resultó que este complemento generó consultas SQL SELECT que tenían la columna ROWS en ellas. FILAS es una palabra reservada en 10.3, por lo que cuando se pregunta por una columna nombrada de esa manera, se debe marcar el nombre, es decir, 'FILAS'. Afortunadamente, la compañía detrás de este complemento también quería asegurarse de que funcionara para nosotros y, una vez que encontramos el motivo, nos proporcionaron una nueva versión del complemento un par de horas más tarde.

Hay una cosa más que tenía que hacer. Estábamos usando una versión de copia de seguridad anterior que no es compatible con MariaDB Server 10.3. Le recomendamos que utilice MariaDB Backup para sus copias de seguridad. El tema merece una publicación de blog por separado y lo abordaré un poco más tarde.

Desde nuestra actualización en septiembre, la última versión de Jira ha estado en funcionamiento todo el tiempo además de la última versión de MariaDB sirviendo a los usuarios de Jira de MariaDB.