クラスタのアップグレード
管理シェル (SSH) を使用して GitHub Enterprise Serverクラスタを最新のリリースにアップグレードします。
このガイドの内容
ホットパッチでのアップグレード
You can upgrade GitHub Enterprise Server to the latest patch release using a hotpatch, which does not require a maintenance window and usually does not require a reboot. You can use hotpatching to upgrade to a newer patch release, but not a feature release. For example, you can upgrade from 2.10.1
to 2.10.5
because they are in the same feature series, but not from 2.10.9
to 2.11.0
because they are in a different feature series.
ホットパッチのインストールスクリプトは、ホットパッチをクラスタ内の各ノードにインストールし、サービスを適切な順序で再起動し、ダウンタイムを回避します。
- データをGitHub Enterprise Serverバックアップユーティリティでバックアップしてください。
-
任意のノードの管理シェルから
ghe-cluster-hotpatch
コマンドを使って最新のホットパッチをインストールしてください。 ホットパッチの URL を指定するか、手動でホットパッチをダウンロードしてローカルのファイル名を指定することができます。$ ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
アップグレードパッケージでのアップグレード
アップグレードパッケージを使用して、GitHub Enterprise Server クラスタを最新のフィーチャリリースにアップグレードします。 たとえば2.11
から2.13
へのアップグレードが行えます。
アップグレードの準備
- アップグレードしようとしているバージョンのネットワーク設定をレビューして、必要に応じて設定を更新してください。
- データをGitHub Enterprise Serverバックアップユーティリティでバックアップしてください。
- アップグレード中は通常どおりに使用できないため、GitHub Enterprise Serverクラスタのエンドユーザーに対してメンテナンス期間をスケジュールします。 メンテナンスモードは、クラスタのアップグレードの進行中、ユーザーのアクセスをブロックし、データが変更されないようにします。
- GitHub Enterprise Serverのダウンロードページで、アップグレード .pkg ファイルの URL をクリップボードにコピーします。
-
任意のノードの管理シェルから
ghe-cluster-each
コマンドをcurl
と組み合わせて使い、一度のステップでリリースパッケージを各ノードにダウンロードしてください。 先ほどのステップでコピーした URL を引数として使ってください。$ ghe-cluster-each -- "cd /home/admin && curl -L -O https://PACKAGE-URL.pkg" > ghe-app-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 24.2M 0 0:00:20 0:00:20 --:--:-- 27.4M > ghe-data-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 21.3M 0 0:00:23 0:00:23 --:--:-- 25.8M > ghe-data-node-1: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-1: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.6M > ghe-app-node-2: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-app-node-2: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.8M 0 0:00:25 0:00:25 --:--:-- 17.6M > ghe-data-node-3: % Total % Received % Xferd Average Speed Time Time Time Current > ghe-data-node-3: Dload Upload Total Spent Left Speed > 100 496M 100 496M 0 0 19.7M 0 0:00:25 0:00:25 --:--:-- 25.5M
cluster.conf
でmysql-master = <hostname>
として定義されているプライマリ MySQL ノードを特定します。 このノードは最後にアップグレードされます。
クラスタノードのアップグレード
- 任意のクラスタノードの管理シェルに接続し、
ghe-cluster-maintenance -s
を実行して、スケジュールしたウィンドウに従ってメンテナンスモードを有効にします。 -
プライマリMySQLノードを除き、GitHub Enterprise Serverの各ノードの管理シェルに接続します。 アップグレードの準備のステップ 4 でダウンロードしたパッケージのファイル名を用いて、
ghe-upgrade
コマンドを実行してください。$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - アップグレードプロセスが完了すると、ノードが再起動します。 再起動後に各ノードを
ping
できることを確認してください。 -
プライマリ MySQL ノードの管理シェルに接続してください。 アップグレードの準備のステップ 4 でダウンロードしたパッケージのファイル名を用いて、
ghe-upgrade
コマンドを実行してください。$ ghe-upgrade PACKAGE-FILENAME.pkg > *** verifying upgrade package signature... > 497MB 0:00:04 [ 117MB/s] [==========================================>] 100% > gpg: Signature made Fri 19 Feb 2016 02:33:50 PM UTC using RSA key ID 0D65D57A > gpg: checking the trustdb > gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model > gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u > gpg: Good signature from "GitHub Enterprise (Upgrade Package Key) >
" - アップグレードプロセスが完了すると、プライマリ MySQL ノードが再起動します。 再起動後に各ノードを
ping
できることを確認してください。 - 任意のノードの管理シェルから
ghe-cluster-maintenance -u
を実行して管理モードを終了してください。