Skip to main content

このバージョンの GitHub Enterprise サーバーはこの日付をもって終了となります: 2024-06-29. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの向上、新機能の向上を図るために、最新バージョンの GitHub Enterprise サーバーにアップグレードしてください。 アップグレードに関するヘルプについては、GitHub Enterprise サポートにお問い合わせください

クラスタのアップグレード

管理シェル (SSH) を使用して GitHub Enterprise Server クラスターを最新のリリースにアップグレードします。

この機能を使用できるユーザーについて

GitHub はクラスタリングの適格性を決定し、インスタンスのライセンスの構成を有効にする必要があります。 クラスタリングには、慎重な計画と追加の管理オーバーヘッドが必要です。 詳しくは、「クラスタリングについて」を参照してください。

GitHub Enterprise Server クラスターへのアップグレードについて

GitHub Enterprise Cloud は、GitHub.com で共同作業を行う大規模な企業またはチーム向けに設計されています。

ホットパッチでのアップグレード

ホットパッチを使って GitHub Enterprise Server を最新のパッチ リリースにアップグレードできます。

ホットパッチは新しいパッチリリースへのアップグレードに利用できますが、新しいフィーチャリリースへのアップグレードには利用できません。 たとえば、2.10.1 から 2.10.5 は同じ機能シリーズに含まれているためアップグレードできますが、2.10.9 から 2.11.0 は異なる機能シリーズに含まれているためアップグレードできません。

ホットパッチでは通常、再起動は必要ありません。 ホットパッチで再起動が必要になる場合、GitHub Enterprise Server リリース ノートに要件が示されます。

ホットパッチには構成実行が必要です。構成実行すると、お使いの GitHub Enterprise Server インスタンス の一部または全部のサービスで短い時間、エラーが発生したり、応答しなかったりすることがあります。 ホットパッチのインストール中はメンテナンス モードを有効にする必要はありませんが、有効にすると、エラーまたはタイムアウトではなくメンテナンス ページがユーザーに表示されます。 詳しくは、「メンテナンスモードの有効化とスケジューリング」を参照してください。ホットパッチのインストールスクリプトは、ホットパッチをクラスタ内の各ノードにインストールし、サービスを適切な順序で再起動し、ダウンタイムを回避します。

  1. GitHub Enterprise Server Backup Utilities を使用してデータをバックアップします。

  2. 任意のノードの管理シェルから、ghe-cluster-hotpatch コマンドを使用して最新のホットパッチをインストールします。 ホットパッチの URL を指定するか、手動でホットパッチをダウンロードしてローカルのファイル名を指定することができます。

    ghe-cluster-hotpatch https://HOTPATCH-URL/FILENAME.hpkg
    

アップグレードパッケージでのアップグレード

アップグレードパッケージを使用して、GitHub Enterprise Server クラスタを最新のフィーチャリリースにアップグレードします。 たとえば、2.11 から 2.13 にアップグレードできます。

アップグレードの準備

  1. アップグレードするバージョンの クラスター ネットワーク構成を確認し、必要に応じて構成を更新します。

  2. GitHub Enterprise Server Backup Utilities を使用してデータをバックアップします。

  3. アップグレード中は通常どおりに使用できないため、GitHub Enterprise Serverクラスタのエンドユーザーに対してメンテナンス期間をスケジュールします。 メンテナンスモードは、クラスタのアップグレードの進行中、ユーザーのアクセスをブロックし、データが変更されないようにします。

  4. GitHub Enterprise Server のダウンロード ページで、アップグレード .pkg ファイルの URL をクリップボードにコピーします。

  5. 任意のノードの管理シェルから、ghe-cluster-each コマンドを curl と組み合わせて使用して、1 つの手順でリリース パッケージを各ノードにダウンロードします。 先ほどのステップでコピーした 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
    
  6. cluster.confmysql-master = <hostname> として定義されているプライマリ MySQL ノードを特定します。 このノードは最後にアップグレードされます。

クラスタノードのアップグレード

  1. 任意のクラスター ノードの管理シェルに接続して ghe-cluster-maintenance -s を実行して、スケジュールされた期間に従ってメンテナンス モードを有効にします。

  2. プライマリ 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) > <enterprise@github.com>"
    
  3. アップグレードプロセスが完了すると、ノードが再起動します。 再起動後に各ノードを ping できることを確認します。

  4. プライマリ 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) > <enterprise@github.com>"
    
  5. アップグレードプロセスが完了すると、プライマリ MySQL ノードが再起動します。 再起動後に各ノードを ping できることを確認します。

  6. プライマリ MySQL ノードの管理シェルに接続し、ghe-cluster-config-apply コマンドを実行します。

  7. ghe-cluster-config-apply が完了したら、ghe-cluster-status を実行してサービスが正常な状態であることを確認します。

  8. ghe-cluster-maintenance -u を実行して、任意のノードの管理シェルからメンテナンス モードを終了します。