記事のバージョン: Enterprise Server 2.17
クラスタのアップグレード
管理シェル (SSH) を使用して GitHub Enterprise Serverクラスタを最新のリリースにアップグレードします。
ホットパッチでのアップグレード
GitHub Enterprise Serverは、ホットパッチを利用して最新のパッチリリースへアップグレードできます。ホットパッチにはメンテナンスウィンドウが不要で、通常は再起動も必要ありません。 ホットパッチは新しいパッチリリースへのアップグレードに利用できますが、新しいフィーチャリリースへのアップグレードには利用できません。 たとえば2.10.1
から2.10.5
へのアップグレードは同じフィーチャリリースなので可能ですが、2.10.9
から2.11.0
へは異なるフィーチャリリースなので行えません。ホットパッチのインストールスクリプトは、ホットパッチをクラスタ内の各ノードにインストールし、サービスを適切な順序で再起動し、ダウンタイムを回避します。
- データを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
を実行して管理モードを終了してください。