Bij de ontwikkeling van MariaDB Server gebruiken we Atlassian's Jira als issue- en projecttrackingsoftware, maar ook voor planning. We gebruiken Jira sinds 2012, toen we migreerden van Launchpad. Op dat moment maakten we gebruik van Jira in de cloud van Atlassian, maar een paar jaar later besloten we om onze eigen instantie van Jira te installeren en deze bovenop MariaDB Server te draaien. Ik heb er eerder een blogpost over geschreven.
Jira bovenop MariaDB Server is nog GEEN ondersteunde combinatie. Jira ondersteunt MySQL, maar officieel nog geen MariaDB. We willen natuurlijk zoveel mogelijk stukjes software om MariaDB Server te ondersteunen om het onze klanten en gebruikers gemakkelijker te maken. We zijn niet de enige die er zo over denken. Het verzoek voor ondersteuning van MariaDB Server in Jira vindt u hier en het bredere verzoek voor ondersteuning van MariaDB Server in Atlassian-producten in het algemeen vindt u hier. Voeg uw stem toe om hopelijk binnenkort MariaDB Server officieel ondersteund te krijgen. Maar het punt is dat, hoewel het niet officieel wordt ondersteund, de combinatie van Jira en MariaDB geweldig werkt. We hebben onlangs een upgrade uitgevoerd naar de nieuwste Jira en de nieuwste versie van MariaDB.
Vóór de upgrade | Na upgrade | |
OS voor Jira | Ubuntu 14.04 | Ubuntu 18.04 |
OS voor MariaDB | Ubuntu 14.04 | Ubuntu 18.04 |
Jira-versie | 7.2.1 | 7.12.1 |
MariaDB Server-versie | 10.1.35 | 10.3.9 |
JDBC-stuurprogramma | MariaDB-connector/J 2.1.2 | MariaDB-connector/J 2.3.0 |
Webserver | Nginx 1.10.1 | Nginx 1.14.0 |
Jira-add-ons bijwerken
Jira heeft veel plug-ins en de plug-inversies moeten compatibel zijn met de versie van Jira die wordt uitgevoerd. Er is een tool opgenomen in Jira, de Jira Update Check for add-ons, die te vinden is in de URL /plugins/servlet/upm/check . Gebruik die tool om alle add-ons bij te werken naar versies die worden ondersteund in de Jira-versie waarnaar je gaat upgraden.
Stop de toegang tot Jira
Laten we beginnen met de daadwerkelijke upgrade. Begin met het onbeschikbaar maken van Jira voor gebruikers door een onderhoudspagina te tonen aan iedereen die toegang probeert te krijgen tot Jira. Dit is eenvoudig te doen met Nginx. Op de locatie instructie in de Nginx-configuratie, controleer of er een onderhoudsbestand is en toon het indien gevonden voor alle URL's.
...
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
...
error_page 503 @maintenance;
location @maintenance {
herschrijf ^(.*)$ /maintenance.html break;
}
Back-up database en mappen
Voordat u met een upgrade begint, moet u er natuurlijk voor zorgen dat er back-ups zijn. Als het op Jira aankomt, zou men een volledige back-up moeten hebben van de database en van de mappen die Jira gebruikt voor het opslaan van bijlagen en gebruikersavatarafbeeldingen. We hadden een back-uptool op de server die dagelijks volledige back-ups maakte. Daarnaast heb ik ook een database-dump gedaan met behulp van het dump-hulpprogramma.
Databaseback-up met het dumphulpprogramma:
$ mysqldump -u username -p databasename > jiradb20180907.sql
$ tar -zcvf jiradb20180907.tar.gz jiradb20180907.sql
Back-upbijlagen en avatars:
$ tar -zcvf attachments20180908.tar.gz /data/jira/data/attachments/
$ tar -zcvf avatars20180908.tar.gz /data/jira/data/avatars/
Kopieer de back-upbestanden naar een andere server voor het geval er iets vreselijk mis gaat in het upgradeproces.
OS-upgrade
Onze Jira-server draaide Ubuntu 14.04 en tijdens het upgraden van de software wilden we ook het besturingssysteem upgraden. Ik zal niet ingaan op de details van de upgrade van Ubuntu, maar in feite heb ik do-release-upgrade twee keer uitgevoerd om de server naar Ubuntu 18.04 te krijgen. Er waren een paar dingen die ik moest doen. Ik moest het bestand /etc/update-manager/release-upgrades.d/unauth.cfg maken en het volgende toevoegen. Dit was om bibliotheken toe te staan die het release-upgradeproces niet kon authenticeren, dit waren Galera- en MariaDB-bibliotheken.
[Distro]
AllowUnauthenticated=yes
Verwijder na de upgrade het uauth.cfg-bestand.
In mijn geval veranderde de upgrade (van 16.04 naar 18.04) de SSH-serverconfiguratie en kon ik niet meer SSH naar de server. Ik denk dat ik ergens "Ja" heb gekozen waar ik niet had moeten zijn. Gelukkig had ik consoletoegang en heb ik SSH handmatig geconfigureerd.
Nginx wordt geüpgraded tijdens de upgrade van het besturingssysteem. Verifieer door het commando uit te voeren:nginx -v
MariaDB Server-upgrade
In ons geval hadden we MariaDB Server 10.1 geïnstalleerd. Dit waren de stappen om de nieuwste stabiele GA-versie van MariaDB Server te krijgen:
- Stop MariaDB Server 10.1:sudo service mysql stop
- Verwijder 10.1:sudo apt remove mariadb-server
- Voeg een MariaDB Server 10.2-repository toe. Ik gebruik het installatiescript van de mariadb.com-repository:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
Raadpleeg de documentatie voor meer informatie over het repository-script. - Installeer 10.2:sudo apt install mariadb-server
- Controleer of MariaDB Server 10.2 actief is en werkt
- Stop MariaDB:sudo service mysql stop
- 10.2 verwijderen:sudo apt remove mariadb-server
- Voeg een MariaDB Server 10.2-repository toe. Ik zal opnieuw het installatiescript van de mariadb.com-repository gebruiken:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3 - Installeer 10.3:sudo apt install mariadb-server
- Controleer of MariaDB 10.3 actief is en werkt. Controleer of datadir in in /etc/mysql/my.cnf wijst naar de map waar u uw databasebestanden hebt
JDBC, MariaDB Connector/J-update
Voordat we Jira zelf gaan upgraden, moeten we eerst het JDBC-stuurprogramma updaten, zodat Jira niet meerdere keren opnieuw hoeft te worden opgestart. Het bijwerken van MariaDB Connector/J is eenvoudig. Haal de nieuwste versie van Connector/J op van downloads.mariadb.com, plaats deze in de lib-directory van Jira en verwijder de oude:
$ 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-upgrade
Upgrade Jira ten slotte met het Jira-installatieprogramma:
- Het Jira-installatieprogramma is hier beschikbaar:https://www.atlassian.com/software/jira/download
- Back-up jira-configuratie:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
- Stop Jira:sudo service jira stop
- Upgrade starten:sudo ./atlassian-jira-software-7.12.1-x64.bin
- Volg de installatie-instructies
- Probeer Jira te starten:sudo service jira start (wat niet werkt sinds server.xml is vervangen)
Zoals gezegd in de laatste stap, start Jira niet omdat het installatieprogramma het server.xml-configuratiebestand heeft vervangen. Nu moet u het terugzetten naar uw configuratie. Een makkelijke manier om dit te doen is om een verschil te maken tussen de server.xml die je eerder had en deze nieuwe. Zodra de configuratie is voltooid, start u Jira.
Vergeet ook niet om het bestand maintenance.html dat door Nginx wordt gebruikt te verwijderen (of hernoemen), voor het geval je Jira op die manier in de onderhoudsmodus hebt gezet.
Nadat Jira weer aan de gang was, werkte alles goed. Een paar dagen later hoorden we dat er één ding was dat niet werkte zoals voorheen. We gebruiken Tableau voor rapportage en we hebben de add-on "All-in-One Tableau Connector for Jira" geïnstalleerd. Het bleek dat deze add-on SQL SELECT-query's genereerde met de kolom RIJEN erin. RIJEN is een gereserveerd woord in 10.3, dus als je om een kolom met die naam vraagt, moet je de naam terugvinken, d.w.z. 'ROWS'. Gelukkig wilde het bedrijf achter deze add-on er ook zeker van zijn dat de add-on voor ons werkte en toen we de reden hadden gevonden, gaven ze ons een paar uur later een nieuwe versie van de add-on.
Er is nog één ding dat ik moest doen. We gebruikten een eerdere back-upversie die niet compatibel is met MariaDB Server 10.3. We raden u aan MariaDB Backup te gebruiken voor uw back-ups. Het onderwerp verdient een aparte blogpost en daar kom ik later op terug.
Sinds onze upgrade in september is de nieuwste versie van Jira altijd actief geweest, bovenop de nieuwste versie van MariaDB die gebruikers van MariaDB's Jira bedient.