エンタープライズアップグレードガイド 2.5.1
はじめに
このガイドではBacklogエンタープライズ Ver.1(以下 Ver.1)をBacklogエンタープライズ Ver.2(以下 Ver.2)にアップグレードする方法をご案内します。
前提条件
Ver.1を最新版にアップデートしていること
アップグレードを開始する前に、Ver.1を最新版にアップデートしてください。
Ver.2のシステム要件を満たしていること
Ver.2はAWS CLI、Docker、およびDocker Composeが必要です。サーバーがVer.2のシステム要件を満たす必要があります。
現在の環境で、Ver.2のシステム要件を満たせない場合、別のサーバーを用意してください。
Ver.2のシステム要件
サーバー
ハードウェア
仕様 | |
---|---|
メモリ | 16GB |
ハードディスク | 30GB Backlogに保存したいデータ量やファイル、リポジトリサイズ等に応じて増量してください。 |
CPU | 2.4GHz, 4core |
OS
Dockerが対応しているOS
(https://docs.docker.com/engine/install/)
ソフトウェア
AWS CLI (Command Line Interface)
バージョン2.x
Docker
バージョン20.10.0以上
Docker Compose
バージョンv2.18.1以上
ミドルウェア
データベース
MySQL 5.7
MySQL 8.0
SMTPサーバー
SMTP認証なしでメールを送信できるSMTPサーバー
作業手順
事前準備
Backlogをアップグレードするために必要なものを用意します。
ここではLinux環境での作業を例として記述します。
SSL証明書を用意
Backlogでは通信にHTTPSを使用します。Ver.1ですでにSSL通信を使用していた場合、この手順は不要です。
あらかじめ、サーバーに配置する
- SSL証明書
- 秘密鍵ファイル
をご用意ください。
AWS CLIをインストール
AWS CLIのインストーラーをダウンロード、インストールします。
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
AWS
CLIのインストールに関する詳細は以下のAWS公式ガイドをご覧ください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-chap-getting-started.html
Dockerをインストール
yumリポジトリを追加して、Dockerをインストールします。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Dockerを自動起動するよう設定します。
sudo systemctl enable docker
Dockerを起動します。
sudo systemctl start docker
Docker Composeをインストールします。
sudo curl -L https://github.com/docker/compose/releases/download/v2.18.1/docker-compose-linux-x86_64 \
-o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Dockerのインストールに関する詳細は、詳しくは以下のサイトもご覧ください。
- LinuxでDockerを利用する場合
- Amazon Linux 2023でDockerを利用する場合
データベース(MySQL)を用意
Backlogのデータを保存するデータベース(MySQL)を使用します。Ver.1で使用しているデータベースをそのまま使える場合、この手順は不要です。
Amazon
RDSなどのIaaSを利用したり、Backlogのインストール先と同じサーバーなど、任意のサーバーにインストールしたものを利用できます。
my.cnfには以下の設定を追加してください。
MySQL 8.0の場合
[mysqld]
sql_mode="NO_ENGINE_SUBSTITUTION"
default_authentication_plugin=mysql_native_password
max_allowed_packet=128M
MySQL 5.7の場合
[mysqld]
max_allowed_packet=128M
character-set-server=utf8mb4
sql_mode = "NO_ENGINE_SUBSTITUTION"
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4
SMTPサーバーを用意
Backlogからメールを送信するためのSMTPサーバーを利用します。Ver.1で使用しているSMTPサーバーをそのまま使える場合、この手順は不要です。
SMTP認証なしでメールを送信できるSendmail、Postfixなど、Red Hat
Enterprise
LinuxやCentOSに標準でインストールされるSMTPサーバーが利用できます。
稼働環境の設定
データベースを作成
データベースサーバーにBacklog用のデータベースとデータベースユーザーを作成してください。Ver.1で使用しているデータベースをそのまま使える場合、この手順は不要です。
推奨値 | |
---|---|
データベース名 | backlog |
データベースユーザー名 | backlog |
データベース名、ユーザー名は任意の値を設定できます。
SSL証明書を配置
SSL証明書と秘密鍵をサーバー上の任意のディレクトリに配置します。
mkdir <任意のディレクトリ>
cp <SSL証明書> <任意のディレクトリ>/crt.pem
cp <秘密鍵> <任意のディレクトリ>/key.pem
Ver.1のデータをVer.2のサーバーにコピー
Ver.1と同じサーバーでVer.2へアップグレードする場合、本手順は不要です。Backlogをアップグレードに進んでください。
以下の手順でデータをコピーします。
Ver.1環境での作業
- Backlogを停止
- データをバックアップ
Ver.2環境での作業
- バックアップデータを展開
Ver.1環境での作業
Backlogを停止
以下でVer.1を停止します。root権限で実行してください。
systemctl stop backlog.target
データをバックアップ
以下でデータ領域をアーカイブファイルに圧縮します。root権限で実行してください。
下記ではアーカイブしたファイル名をdata.tar.gz
とします。
cd /opt/backlog/
tar cvfp data.tar.gz data
Ver.1のサーバーでMySQLを動かしている場合、MySQLのデータをダンプします。
下記ではダンプのファイル名をbacklog-dump.sql
、データベース名をbacklog
、データベースユーザー名をbacklog
とします。
mysqldump -ubacklog -p --opt backlog > backlog-dump.sql
Ver.2環境での作業
Ver.1環境での作業で作成した圧縮ファイル、ダンプファイルをscpコマンド等でVer.2をインストールするサーバーへ転送してください。
バックアップデータを展開
以下でデータ領域を展開します。root権限で実行してください。
mkdir -p /opt/backlog
tar xvfp data.tar.gz -C /opt/backlog
MySQLのダンプファイルを作成した場合は、リストアします。
下記ではダンプのファイル名をbacklog-dump.sql
、リストア先のデータベース名をbacklog
、リストア先のデータベースユーザー名をbacklog
とします。
mysql -ubacklog -p backlog < backlog-dump.sql
以上でVer.1のデータをVer.2にコピーする作業は完了です。
Backlogをアップグレード
次の手順でVer.2へアップグレードします。
- Ver.1を停止
- バックアップ
- アップグレードツールをダウンロード
- 検証ツールを起動
- アップグレードツールを起動
Ver.1を停止
以下でVer.1を停止します。root権限で実行してください。
systemctl stop backlog.target
バックアップ
アップグレードする前に必ずデータベースをバックアップしてください。
アップグレードツールをダウンロード
アップグレードツールを以下の手順にてダウンロードします。
エンタープライズ契約管理サイトに記載されたAWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEYを環境変数に設定してください。
export AWS_ACCESS_KEY_ID="XXXX"
export AWS_SECRET_ACCESS_KEY="XXXX"
Dockerにログインします。
aws ecr get-login-password --region ap-northeast-1 | \
docker login --username AWS --password-stdin 019623933850.dkr.ecr.ap-northeast-1.amazonaws.com
次に、アップグレード先のディレクトリでアップグレードツールを起動します。
下記ではアップグレード先のディレクトリをbacklog-enterprise
とします。
アップグレード先のディレクトリとして/opt/backlogおよびそれ以下のディレクトリパスを指定しないでください。
mkdir backlog-enterprise
cd backlog-enterprise
docker run --rm -it -v $PWD:/work \
019623933850.dkr.ecr.ap-northeast-1.amazonaws.com/enterprise-bootstrap:2.5.1 upgrade
Ver.1環境を検証
アップグレードの前に検証ツールを起動します。
cd upgrade-assistant
環境変数を用意
upgrade.envをroot権限で編集してください。
パラメーター名 | 初期値 | 説明 |
---|---|---|
BACKLOG_DB_HOST | 127.0.0.1 | 接続先データベースのホスト |
BACKLOG_DB_PORT | 3306 | 接続先データベースのポート |
BACKLOG_DB_NAME | backlog | 接続先データベースのスキーマ名 |
BACKLOG_DB_USER | backlog | 接続先データベースのユーザー名 |
BACKLOG_DB_PASSWORD | 接続先データベースのパスワード | |
ENTERPRISE_V1_DATA_DIR | /opt/backlog/data | このパラメーターは変更しないでください |
ENTERPRISE_V2_DIR | アップグレード先のディレクトリを絶対パスで指定してください /path/to/backlog-enterprise |
検証ツールを起動
./advance-check.sh
赤文字のメッセージが表示された場合、データ構造の変更により、アプリ側にデータがすべて表示できていない可能性があります。
内容を確認する必要があれば、データベースを直接ご確認ください。
例えば以下のようなメッセージが表示されます。
10 database records will be truncated when the upgrade tool is run due to changes in the database table structure. Please see the red messages above for further details.
アップグレードツールを起動
Backlogをアップグレードします。アップグレードには数分かかる場合があります。
docker pull 019623933850.dkr.ecr.ap-northeast-1.amazonaws.com/enterprise-database-migration:2.5.1
docker pull 019623933850.dkr.ecr.ap-northeast-1.amazonaws.com/enterprise-password-migration-tool:2.5.1
docker pull 019623933850.dkr.ecr.ap-northeast-1.amazonaws.com/enterprise-git-rpc:2.5.1
sudo ./upgrade.sh
以上でBacklogのアップグレードは完了です。
環境設定ツールを起動
Ver.2の起動に必要な環境を設定するツールを起動します。
アップグレード先のディレクトリで実行してください。
backlog-enterprise
とします。
cd /path/to/backlog-enterprise #`/path/to/backlog-enterprise`をアップグレード先のディレクトリの絶対パスに書き換えてください
docker run --rm -it -v $PWD:/work -v $PWD/data:/data -e LANG="ja_JP.UTF-8" \
019623933850.dkr.ecr.ap-northeast-1.amazonaws.com/enterprise-bootstrap:2.5.1
対話形式で8つの項目を設定します。Backlogが稼働する環境に応じて設定してください。
特に以下のことに注意してください。
データベースサーバーのホスト名を入力してください。
[例] backlog-db.example.com, 192.168.0.11
> 10.254.249.1
upgrade.envのBACKLOG_DB_HOSTの値をlocalhostまたは127.0.0.1に設定していると、ここでは10.254.249.1が初期値として表示されます。
Backlogがデータベースにアクセスする際に内部的に使用するホスト名のため変更しないでください。
Backlogエンタープライズのデータベース名を入力してください。
デフォルト値: backlog
> backlog
データベース接続ユーザーのユーザー名を入力してください。
デフォルト値: backlog
> backlog
データベース接続ユーザーのパスワードを入力してください。
>
データベースを作成したデータベースの情報を入力してください。
メール送信に使うSMTPサーバーのホスト名を入力してください。環境変数も使えます。
[例] backlog-smtp.example.com, 192.168.0.12
>
SMTPサーバーを用意で用意したサーバーの情報を入力してください。
Backlogをインストールしたサーバーと同じ環境のSMTPサーバーを使用する場合は、10.254.249.1を設定してください。
タイムゾーン名を入力してください。
[例] Asia/Tokyo, America/New_York, Europe/London
>
タイムゾーン名はデータベースサーバーやSMTPサーバーなど、他のミドルウェアのタイムゾーンと揃えてください。
SSL証明書を格納しているディレクトリを入力してください。
>
SSL証明書を配置したディレクトリを”絶対パス”で入力してください。
以上でVer.2の起動に必要な環境の設定は完了です。
Ver.2を起動
以下でVer.2を起動します。
docker-compose up -d
グローバルバーの全体からキーワード検索機能を有効にするため、以下を実行します。
docker-compose up solr-tool
Ver.1をアンインストール
Ver.2へのアップグレードが完了したら、Ver.1をアンインストールできます。
次の手順でBacklogをdisableにします。root権限が必要です。
systemctl disable backlog.target
次の手順でRPMパッケージをアンインストールします。root権限が必要です。
rpm -aq | grep backlog | xargs rpm -e
次の手順でVer.1のデータ領域を削除します。root権限が必要です。
rm -rf /opt/backlog
アップグレードツールを削除
Ver.2へのアップグレードが完了したら、アップグレードツールを削除できます。root権限が必要です。
cd /path/to/backlog-enterprise #`/path/to/backlog-enterprise`をアップグレード先のディレクトリの絶対パスに書き換えてください
rm -rf upgrade-assistant
商標について
- MySQLとJavaは、Oracle Corporation及びその子会社、関連会社の米国及びその他の国における登録商標です。文中の社名、商品名等は各社の商標または登録商標である場合があります。
- Dockerは、米国及びその他の国におけるDocker, Inc.の商標または登録商標です。
- Amazon Web Services、アマゾンウェブサービス、AWS、AWS CLI、AWSコマンドラインインターフェースは、米国その他の諸国における、Amazon.com, Inc. またはその関連会社の商標です。
- Linuxは、米国およびその他の国におけるLinus Torvaldsの登録商標です。
- その他記載されている会社名および商品名は各社の登録商標または商標です。