I udviklingen af MariaDB Server bruger vi Atlassians Jira som problem- og projektsporingssoftware, men også til planlægning. Vi har brugt Jira siden 2012, hvor vi migrerede fra Launchpad. På det tidspunkt brugte vi Jira i Atlassians sky, men et par år senere besluttede vi at installere vores egen instans af Jira og køre den oven på MariaDB Server. Jeg har tidligere skrevet et blogindlæg om det.
Jira oven på MariaDB Server er IKKE en understøttet kombination endnu. Jira understøtter MySQL, men officielt endnu ikke MariaDB. Vi ønsker selvfølgelig så mange stykker software som muligt til at understøtte MariaDB Server for at gøre det nemmere for vores kunder og brugere. Vi er ikke alene om at tænke på denne måde. Anmodningen om at understøtte MariaDB Server i Jira findes her, og den bredere anmodning om at understøtte MariaDB Server i Atlassian-produkter generelt findes her. Tilføj din stemme for forhåbentlig snart at få MariaDB Server officielt understøttet. Men sagen er, selvom det ikke er officielt understøttet, fungerer kombinationen af Jira og MariaDB fantastisk. Vi har for nylig opgraderet til den seneste Jira og den seneste version af MariaDB.
Før opgradering | Efter opgradering | |
OS til Jira | Ubuntu 14.04 | Ubuntu 18.04 |
OS til MariaDB | Ubuntu 14.04 | Ubuntu 18.04 |
Jira-version | 7.2.1 | 7.12.1 |
MariaDB Server-version | 10.1.35 | 10.3.9 |
JDBC-driver | MariaDB-stik/J 2.1.2 | MariaDB-stik/J 2.3.0 |
Webserver | Nginx 1.10.1 | Nginx 1.14.0 |
Opdater Jira-tilføjelser
Jira har mange plugins, og plugin-versionerne skal være kompatible med den version af Jira, der kører. Der er et værktøj inkluderet i Jira, Jira Update Check for add-ons, som findes i URL'en /plugins/servlet/upm/check . Brug dette værktøj til at opdatere alle tilføjelser til versioner, der vil blive understøttet i den Jira-version, du vil opgradere til.
Stop adgangen til Jira
Lad os komme i gang med selve opgraderingen. Start med at gøre Jira utilgængelig for brugere ved at servere en vedligeholdelsesside til alle, der forsøger at få adgang til Jira. Dette gøres nemt med Nginx. På placeringen direktiv i Nginx-konfiguration, tjek efter en vedligeholdelsesfil, og vis den for alle URL'er, hvis den findes.
...
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
...
error_page 503 @maintenance;
placering @vedligeholdelse {
omskriv ^(.*)$ /maintenance.html pause;
}
Sikkerhedskopi af database og mapper
Inden man starter en opgradering, skal man naturligvis sikre sig, at der findes backups. Når det kommer til Jira, bør man have en fuld backup af databasen og af de mapper Jira bruger til at gemme vedhæftede filer og brugeravatarbilleder. Vi havde et backupværktøj kørende på serveren, der producerede fuld backup på daglig basis. Derudover lavede jeg også en database-dump ved hjælp af dump-værktøjet.
Database backup med dump-værktøjet:
$ mysqldump -u username -p databasename > jiradb20180907.sql
$ tar -zcvf jiradb20180907.tar.gz jiradb20180907.sql
Sikkerhedskopier vedhæftede filer og avatarer:
$ tar -zcvf attachments20180908.tar.gz /data/jira/data/attachments/
$ tar -zcvf avatars20180908.tar.gz /data/jira/data/avatars/
Kopier backup-filerne til en anden server, hvis noget går grueligt galt i opgraderingsprocessen.
Opgradering af OS
Vores Jira-server kørte Ubuntu 14.04, og mens vi opgraderede softwaren, ønskede vi også at opgradere OS. Jeg vil ikke gå i detaljer med opgraderingen af Ubuntu, men grundlæggende kørte jeg do-release-upgrade to gange for at få serveren til Ubuntu 18.04. Der var et par ting, jeg skulle gøre. Jeg var nødt til at oprette filen /etc/update-manager/release-upgrades.d/unauth.cfg og tilføje følgende. Dette var for at tillade biblioteker, som udgivelsesopgraderingsprocessen ikke kunne autentificere, som var Galera- og MariaDB-biblioteker.
[Distro]
AllowUnauthenticated=yes
Efter opgraderingen skal du fjerne unauth.cfg-filen.
I mit tilfælde ændrede opgraderingen (fra 16.04 til 18.04) SSH-serverkonfigurationen, og jeg kunne ikke SSH til serveren længere. Jeg valgte vist "Ja" et sted, jeg ikke burde have. Heldigvis havde jeg konsoladgang og fik SSH konfigureret manuelt.
Nginx bliver opgraderet under OS-opgradering. Bekræft ved at køre kommandoen:nginx -v
MariaDB Server-opgradering
I vores tilfælde havde vi MariaDB Server 10.1 installeret. Dette var trinene til at få den til den seneste stabile GA-version af MariaDB Server:
- Stop MariaDB Server 10.1:sudo service mysql stop
- Afinstaller 10.1:sudo apt fjern mariadb-server
- Tilføj et MariaDB Server 10.2-lager. Jeg vil bruge mariadb.com repository setup script:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
For mere information om repository scriptet, se venligst dokumentationen. - Installer 10.2:sudo apt installer mariadb-server
- Bekræft, at MariaDB Server 10.2 kører og virker
- Stop MariaDB:sudo service mysql stop
- Afinstaller 10.2:sudo apt fjern mariadb-server
- Tilføj et MariaDB Server 10.2-lager. Jeg vil igen bruge mariadb.com repository setup script:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3 - Installer 10.3:sudo apt installer mariadb-server
- Bekræft, at MariaDB 10.3 kører og virker. Tjek det datadir i /etc/mysql/my.cnf peger på den mappe, hvor du har dine databasefiler
JDBC, MariaDB Connector/J-opdatering
Før vi går over til at opgradere selve Jira, lad os først opdatere JDBC-driveren for ikke at skulle genstarte Jira flere gange. Opdatering af MariaDB Connector/J er ligetil. Hent den seneste version af Connector/J fra downloads.mariadb.com, placer den i lib-biblioteket i Jira og fjern den gamle:
$ 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/
Jira-opgradering
Opgrader endelig Jira med Jira-installationsprogrammet:
- Jira-installationsprogrammet er tilgængeligt her:https://www.atlassian.com/software/jira/download
- Backup jira-konfiguration:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
- Stop Jira:sudo service jira stop
- Start opgradering:sudo ./atlassian-jira-software-7.12.1-x64.bin
- Følg installationsvejledningen
- Prøv at starte Jira:sudo service jira start (som ikke vil fungere, da server.xml er blevet erstattet)
Som sagt i sidste trin, vil Jira ikke starte, fordi installationsprogrammet har erstattet server.xml-konfigurationsfilen. Nu skal du ændre det tilbage til din konfiguration. En nem måde at gøre det på er at lave en forskel mellem server.xml, som du havde før, og denne nye. Når konfigurationen er på plads, start Jira.
Husk også at fjerne (eller omdøbe) filen maintenance.html brugt af Nginx, hvis du brugte den måde at sætte Jira i vedligeholdelsestilstand på.
Efter at have haft Jira i gang igen fungerede alt godt. Vi lærte et par dage senere, at der var én ting, der ikke fungerede som før. Vi bruger Tableau til rapportering, og vi har installeret tilføjelsen "All-in-One Tableau Connector for Jira". Det viste sig, at denne tilføjelse genererede SQL SELECT-forespørgsler, der havde kolonnen ROWS i sig. RÆKKER er et reserveret ord i 10.3, så når du beder om en kolonne med navn på den måde, skal du markere navnet, dvs. 'ROWS'. Heldigvis ville virksomheden bag denne tilføjelse også sikre, at tilføjelsen fungerer for os, og da vi fandt årsagen, gav de os en ny version af tilføjelsen et par timer senere.
Der er en ting mere, jeg var nødt til at gøre. Vi brugte en tidligere backupversion, der ikke er kompatibel med MariaDB Server 10.3. Vi anbefaler, at du bruger MariaDB Backup til dine sikkerhedskopier. Emnet fortjener et separat blogindlæg, og det kommer jeg til lidt senere.
Siden vores opgradering i september har den seneste version af Jira været oppe og køre hele tiden oven på den seneste version af MariaDB, der betjener brugere af MariaDBs Jira.