MariaDBサーバーの開発では、AtlassianのJiraを問題およびプロジェクト追跡ソフトウェアとして使用しますが、計画にも使用します。 Launchpadから移行した2012年からJiraを使用しています。その時点で、AtlassianのクラウドでJiraを利用しましたが、数年後、Jiraの独自のインスタンスをインストールして、MariaDBサーバー上で実行することにしました。以前にそれについてのブログ投稿を書きました。
MariaDBサーバー上のJiraは、まだサポートされている組み合わせではありません。 JiraはMySQLをサポートしていますが、正式にはまだMariaDBではありません。もちろん、MariaDBサーバーをサポートして、顧客とユーザーが簡単に利用できるように、できるだけ多くのソフトウェアが必要です。このように考えるのは私たちだけではありません。 JiraでMariaDBサーバーをサポートするためのリクエストはここにあり、Atlassian製品全般でMariaDBサーバーをサポートするためのより広範なリクエストはここにあります。投票を追加して、MariaDBサーバーがまもなく正式にサポートされるようにしてください。ただし、公式にはサポートされていませんが、JiraとMariaDBの組み合わせはうまく機能します。最近、最新のJiraと最新バージョンのMariaDBにアップグレードしました。
アップグレード前 | アップグレード後 | |
OS for Jira | Ubuntu 14.04 | Ubuntu 18.04 |
OS for MariaDB | Ubuntu 14.04 | Ubuntu 18.04 |
Jiraバージョン | 7.2.1 | 7.12.1 |
MariaDBサーバーのバージョン | 10.1.35 | 10.3.9 |
JDBCドライバー | MariaDBコネクタ/J2.1.2 | MariaDBコネクタ/J2.3.0 |
Webサーバー | Nginx 1.10.1 | Nginx 1.14.0 |
Jiraアドオンの更新
Jiraには多くのプラグインがあり、プラグインのバージョンは実行中のJiraのバージョンと互換性がある必要があります。 Jiraに含まれているツールであるアドオンのJiraUpdateCheckは、URL / plugins / servlet / upm/checkにあります。そのツールを使用して、アップグレードするJiraバージョンでサポートされるバージョンにすべてのアドオンを更新します。
Jiraへのアクセスを停止する
実際のアップグレードを始めましょう。 Jiraにアクセスしようとしているすべての人にメンテナンスページを提供することにより、ユーザーがJiraを利用できないようにすることから始めます。これはNginxで簡単に実行できます。 場所 Nginx構成のディレクティブで、メンテナンスファイルを確認し、見つかった場合はすべてのURLに表示します。
...
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
...
error_page 503 @maintenance;
location @maintenance {
rewrite ^(。*)$ /maintenance.html break;
}
データベースとディレクトリのバックアップ
もちろん、アップグレードを開始する前に、バックアップが存在することを確認する必要があります。 Jiraに関しては、データベースと、Jiraが添付ファイルとユーザーアバター画像を保存するために使用するディレクトリの完全バックアップが必要です。サーバー上でバックアップツールを実行し、毎日完全バックアップを作成しました。さらに、ダンプユーティリティを使用してデータベースダンプも実行しました。
ダンプユーティリティを使用したデータベースのバックアップ:
$ mysqldump -u username -p databasename > jiradb20180907.sql
$ tar -zcvf jiradb20180907.tar.gz jiradb20180907.sql
バックアップの添付ファイルとアバター:
$ tar -zcvf attachments20180908.tar.gz /data/jira/data/attachments/
$ tar -zcvf avatars20180908.tar.gz /data/jira/data/avatars/
アップグレードプロセスで問題が発生した場合に備えて、バックアップファイルを別のサーバーにコピーします。
OSのアップグレード
JiraサーバーはUbuntu14.04を実行しており、ソフトウェアをアップグレードする際にOSもアップグレードしたいと考えていました。 Ubuntuのアップグレードの詳細については説明しませんが、基本的にdo-release-upgradeを2回実行して、サーバーをUbuntu18.04に移行しました。私がしなければならなかったことがいくつかありました。ファイル/etc/update-manager/release-upgrades.d/unauth.cfgを作成し、以下を追加する必要がありました。これは、リリースアップグレードプロセスで認証できなかったライブラリ(GaleraライブラリとMariaDBライブラリ)を許可するためでした。
[Distro]
AllowUnauthenticated=yes
アップグレード後、unauth.cfgファイルを削除します。
私の場合、アップグレード(16.04から18.04)によってSSHサーバーの構成が変更され、サーバーにSSHで接続できなくなりました。あるべきではないところに「はい」を選んだと思います。幸い、コンソールにアクセスでき、SSHを手動で構成しました。
NginxはOSのアップグレード中にアップグレードされます。次のコマンドを実行して確認します:nginx -v
MariaDBサーバーのアップグレード
この例では、MariaDBサーバー10.1がインストールされています。以下は、MariaDBサーバーの最新の安定したGAバージョンに移行するための手順です。
- MariaDBサーバー10.1を停止します:sudo service mysql stop
- 10.1をアンインストールします:sudo apt remove mariadb-server
- MariaDBServer10.2リポジトリを追加します。 mariadb.comリポジトリ設定スクリプトを使用します:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version =mariadb-10.2
リポジトリスクリプトの詳細については、ドキュメントを参照してください。 - インストール10.2:sudo apt install mariadb-server
- MariaDBサーバー10.2が実行され、機能していることを確認します
- MariaDBを停止します:sudo service mysql stop
- 10.2をアンインストールします:sudo apt remove mariadb-server
- MariaDBServer10.2リポジトリを追加します。再びmariadb.comリポジトリ設定スクリプトを使用します:
curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version =mariadb-10.3 - インストール10.3:sudo apt install mariadb-server
- MariaDB10.3が実行され機能していることを確認します。 datadirを確認してください /etc/mysql/my.cnfにあります データベースファイルがあるディレクトリを指しています
JDBC、MariaDB Connector/Jアップデート
Jira自体のアップグレードに移る前に、まずJDBCドライバーを更新して、Jiraを数回再起動する必要がないようにします。 MariaDB Connector/Jの更新は簡単です。 downloads.mariadb.comからConnector/Jの最新バージョンを取得し、それをJiraのlibディレクトリに配置して、古いバージョンを削除します。
$ 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アップグレード
最後に、Jiraインストーラーを使用してJiraをアップグレードします:
- Jiraインストーラーはhttps://www.atlassian.com/software/jira/download から入手できます。
- バックアップjira構成:sudo tar -zcvf conf20180909.tar.gz / opt / atlassian / jira / conf
- Jiraの停止:sudo service jira stop
- アップグレードを開始します:sudo ./atlassian-jira-software-7.12.1-x64.bin
- インストーラーの指示に従ってください
- Jiraを起動してみてください:sudo service jira start(server.xmlが置き換えられたため機能しません)
前の手順で述べたように、インストーラーがserver.xml構成ファイルを置き換えたため、Jiraは起動しません。次に、構成に戻す必要があります。これを行う簡単な方法は、以前に持っていたserver.xmlとこの新しいものを区別することです。構成が完了したら、Jiraを起動します。
また、Jiraをメンテナンスモードにする方法を使用した場合は、Nginxが使用するmaintenance.htmlファイルを削除(または名前変更)することを忘れないでください。
Jiraを起動して再度実行した後、すべてがうまく機能しました。数日後、以前のように機能しなかったことが1つあることを知りました。レポートにはTableauを使用し、「All-in-One TableauConnectorforJira」アドオンをインストールしました。このアドオンは、列ROWSを含むSQLSELECTクエリを生成したことが判明しました。 ROWSは10.3の予約語であるため、そのように名前が付けられた列を要求するときは、名前、つまり「ROWS」にバックティックを付ける必要があります。幸いなことに、このアドオンの背後にある会社は、アドオンが機能することを確認したいと考えていました。理由が見つかると、数時間後に新しいバージョンのアドオンが提供されました。
私がしなければならなかったことがもう一つあります。 MariaDBサーバー10.3と互換性のない以前のバックアップバージョンを使用していました。バックアップにはMariaDBバックアップを使用することをお勧めします。このトピックは別のブログ投稿に値するので、後で説明します。
9月のアップグレード以来、最新バージョンのJiraは、MariaDBのJiraのユーザーにサービスを提供する最新バージョンのMariaDBに加えて、常に稼働しています。