MariaDB
 sql >> Base de données >  >> RDS >> MariaDB

Mise à niveau vers la dernière version de Jira avec la dernière version de MariaDB Server

Dans le développement de MariaDB Server, nous utilisons Jira d'Atlassian comme logiciel de suivi des problèmes et des projets, mais aussi pour la planification. Nous utilisons Jira depuis 2012, lorsque nous avons migré de Launchpad. À ce stade, nous avons utilisé Jira dans le cloud d'Atlassian, mais quelques années plus tard, nous avons décidé d'installer notre propre instance de Jira et de l'exécuter sur MariaDB Server. J'ai déjà écrit un article de blog à ce sujet.

Jira sur MariaDB Server n'est PAS encore une combinaison prise en charge. Jira prend en charge MySQL, mais officiellement pas encore MariaDB. Bien entendu, nous souhaitons que le plus grand nombre possible de logiciels prennent en charge MariaDB Server afin de faciliter la tâche de nos clients et utilisateurs. Nous ne sommes pas les seuls à penser ainsi. La demande de prise en charge de MariaDB Server dans Jira se trouve ici et la demande plus large de prise en charge de MariaDB Server dans les produits Atlassian en général se trouve ici. Ajoutez votre vote pour, espérons-le, que MariaDB Server soit officiellement pris en charge bientôt. Mais le fait est que, même si ce n'est pas officiellement pris en charge, la combinaison de Jira et MariaDB fonctionne très bien. Nous avons récemment effectué la mise à niveau vers la dernière version de Jira et la dernière version de MariaDB.

Avant la mise à jour Après la mise à jour
OS pour Jira Ubuntu 14.04 Ubuntu 18.04
OS pour MariaDB Ubuntu 14.04 Ubuntu 18.04
Version Jira 7.2.1 7.12.1
Version du serveur MariaDB 10.1.35 10.3.9
Pilote JDBC Connecteur MariaDB/J 2.1.2 Connecteur MariaDB/J 2.3.0
Serveur Web Nginx 1.10.1 Nginx 1.14.0
Mettre à jour les modules complémentaires Jira

Jira a beaucoup de plugins et les versions des plugins doivent être compatibles avec la version de Jira en cours d'exécution. Il existe un outil inclus dans Jira, le Jira Update Check pour les add-ons, qui se trouve dans l'URL /plugins/servlet/upm/check . Utilisez cet outil pour mettre à jour tous les modules complémentaires vers les versions qui seront prises en charge dans la version de Jira vers laquelle vous allez effectuer la mise à niveau.

Arrêter l'accès à Jira

Commençons par la mise à niveau proprement dite. Commencez par rendre Jira indisponible pour les utilisateurs, en proposant une page de maintenance à tous ceux qui tentent d'accéder à Jira. Cela se fait facilement avec Nginx. Dans le lieu directive dans la configuration Nginx, recherchez un fichier de maintenance et, s'il est trouvé, affichez-le pour toutes les URL.

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

location @maintenance {
rewrite ^(.*)$ /maintenance.html break;
}

Sauvegarder la base de données et les répertoires

Avant de commencer une mise à niveau, il faut bien sûr s'assurer que des sauvegardes existent. En ce qui concerne Jira, vous devez disposer d'une sauvegarde complète de la base de données et des répertoires utilisés par Jira pour stocker les pièces jointes et les images d'avatar des utilisateurs. Nous avions un outil de sauvegarde en cours d'exécution sur le serveur produisant des sauvegardes complètes quotidiennement. De plus, j'ai également effectué un vidage de base de données à l'aide de l'utilitaire de vidage.

Sauvegarde de la base de données avec l'utilitaire de vidage :

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

Sauvegarder les pièces jointes et les avatars :

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

Copiez les fichiers de sauvegarde sur un autre serveur au cas où quelque chose tournerait mal dans le processus de mise à niveau.

Mise à niveau du système d'exploitation

Notre serveur Jira exécutait Ubuntu 14.04 et lors de la mise à niveau du logiciel, nous voulions également mettre à niveau le système d'exploitation. Je n'entrerai pas dans les détails de la mise à niveau d'Ubuntu, mais en gros, j'ai exécuté do-release-upgrade deux fois pour faire passer le serveur à Ubuntu 18.04. Il y avait quelques choses que je devais faire. J'ai dû créer le fichier /etc/update-manager/release-upgrades.d/unauth.cfg et ajouter ce qui suit. C'était pour autoriser les bibliothèques que le processus de mise à niveau de la version ne pouvait pas authentifier, à savoir les bibliothèques Galera et MariaDB.

[Distro]
AllowUnauthenticated=yes

Après la mise à niveau, supprimez le fichier unauth.cfg.

Dans mon cas, la mise à niveau (de 16.04 à 18.04) a changé la configuration du serveur SSH et je ne pouvais plus SSH sur le serveur. Je suppose que j'ai choisi "Oui" quelque part que je n'aurais pas dû. Heureusement, j'avais accès à la console et j'ai configuré SSH manuellement.

Nginx est mis à jour lors de la mise à niveau du système d'exploitation. Vérifiez en exécutant la commande :nginx -v

Mise à niveau du serveur MariaDB

Dans notre cas, nous avons installé MariaDB Server 10.1. Voici les étapes pour l'obtenir à la dernière version GA stable de MariaDB Server :

  • Arrêter MariaDB Server 10.1 :sudo service mysql stop
  • Désinstaller 10.1 :sudo apt remove mariadb-server
  • Ajouter un référentiel MariaDB Server 10.2. Je vais utiliser le script de configuration du référentiel mariadb.com :
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
    Pour plus d'informations sur le script du référentiel, veuillez consulter la documentation.
  • Installer 10.2 :sudo apt install mariadb-server
  • Vérifiez que MariaDB Server 10.2 est en cours d'exécution et fonctionne
  • Arrêter MariaDB :sudo service mysql stop
  • Désinstaller 10.2 :sudo apt remove mariadb-server
  • Ajouter un référentiel MariaDB Server 10.2. Je vais à nouveau utiliser le script de configuration du référentiel mariadb.com :
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3
  • Installer 10.3 :sudo apt install mariadb-server
  • Vérifiez que MariaDB 10.3 est en cours d'exécution et fonctionne. Vérifiez que datadir dans /etc/mysql/my.cnf pointe vers le répertoire où se trouvent vos fichiers de base de données
JDBC, MariaDB Connector/Mise à jour J

Avant de passer à la mise à niveau de Jira elle-même, mettons d'abord à jour le pilote JDBC pour ne pas avoir à redémarrer Jira plusieurs fois. La mise à jour de MariaDB Connector/J est simple. Récupérez la dernière version de Connector/J sur downloads.mariadb.com, placez-la dans le répertoire lib de Jira et supprimez l'ancienne :

$ 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/

Mise à jour Jira

Enfin, mettez à niveau Jira avec le programme d'installation de Jira :

  • Le programme d'installation de Jira est disponible ici :https://www.atlassian.com/software/jira/download
  • Configuration Jira de sauvegarde :sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
  • Arrêter Jira :sudo service jira stop
  • Démarrer la mise à niveau :sudo ./atlassian-jira-software-7.12.1-x64.bin
  • Suivez les instructions d'installation
  • Essayez de démarrer Jira :sudo service jira start (qui ne fonctionnera pas depuis le remplacement de server.xml)

Comme indiqué à la dernière étape, Jira ne démarre pas car le programme d'installation a remplacé le fichier de configuration server.xml. Vous devez maintenant le remettre dans votre configuration. Un moyen simple de le faire est de faire un diff entre le server.xml que vous aviez avant et ce nouveau. Une fois la configuration en place, démarrez Jira.

Pensez également à supprimer (ou renommer) le fichier maintenance.html utilisé par Nginx, au cas où vous auriez utilisé cette méthode pour mettre Jira en mode maintenance.

Après avoir remis Jira en marche, tout a bien fonctionné. Nous avons appris quelques jours plus tard qu'il y avait une chose qui ne fonctionnait pas comme avant. Nous utilisons Tableau pour les rapports et nous avons installé le module complémentaire "All-in-One Tableau Connector for Jira". Il s'est avéré que ce module complémentaire générait des requêtes SQL SELECT contenant la colonne ROWS. ROWS est un mot réservé dans 10.3, donc lorsque vous demandez une colonne nommée de cette façon, vous devez cocher le nom, c'est-à-dire "ROWS". Heureusement, la société derrière ce module complémentaire voulait également s'assurer que le module complémentaire fonctionne pour nous et une fois que nous avons trouvé la raison, ils nous ont fourni une nouvelle version du module complémentaire quelques heures plus tard.

Il y a encore une chose que je devais faire. Nous utilisions une version de sauvegarde précédente qui n'est pas compatible avec MariaDB Server 10.3. Nous vous recommandons d'utiliser MariaDB Backup pour vos sauvegardes. Le sujet mérite un article de blog séparé et j'y reviendrai un peu plus tard.

Depuis notre mise à niveau en septembre, la dernière version de Jira a été opérationnelle en permanence par-dessus la dernière version de MariaDB au service des utilisateurs de Jira de MariaDB.