Note: Features such as GitHub Actions, GitHub Packages, GitHub Mobile and GitHub Advanced Security are available on GitHub Enterprise Server 3.0 or higher. We highly recommend upgrading to 3.0 or later releases to take advantage of critical security updates, bug fixes and feature enhancements.
アップグレードの準備
-
アップグレードの戦略を決定し、アップグレード先のバージョンを選択してください。 For more information, see "Upgrade requirements" and refer to the Upgrade assistant to find the upgrade path from your current release version.
-
GitHub Enterprise Serverバックアップユーティリティ で、プライマリインスタンスの新しいバックアップを作成してください。 詳しい情報については、GitHub Enterprise ServerバックアップユーティリティREADME.md ファイルを参照してください。
-
If GitHub Enterprise Serverインスタンス uses ephemeral self-hosted runners for GitHub Actions and you've disabled automatic updates, upgrade your runners to the version of the runner application that your upgraded instance will run.
-
アップグレードパッケージを使ってアップグレードをする場合は、GitHub Enterprise Server のエンドユーザのためにメンテナンス時間枠をスケジューリングしてください。 ホットパッチを利用しているなら、メンテナンスモードは必要ありません。
注釈: メンテナンスウィンドウは、実行しようとしているアップグレードの種類によります。 ホットパッチを利用するアップグレードは、通常メンテナンスウィンドウを必要としません。 リブートが必要になることもあります。そのリブートは後で行うことができます。 MAJOR.FEATURE.PATCH というバージョン付けのスキームに従ったパッチリリースをアップグレードパッケージを行うには、通常 5 分未満のダウンタイムだけが必要です。 データの移行を含むフィーチャリリースは、ストレージのパフォーマンス及び移行するデータの量に応じて時間が長くかかります。 詳しい情報については"メンテナンスモードの有効化とスケジューリング"を参照してください。
スナップショットの取得
スナップショットは、ある時点での仮想マシン(VM)のチェックポイントです。 アップグレードに失敗した場合にスナップショットからVMを回復できるよう、仮想マシンをアップグレードする前にスナップショットを取っておくことを強くおすすめします。 We only recommend taking a VM snapshot when the appliance is powered down or in maintenance mode and all background jobs have finished.
新しいフィーチャリリースにアップグレードするなら、VM のスナップショットを取らなければなりません。 パッチリリースへのアップグレードをするなら、既存のデータディスクをアタッチできます。
スナップショットには2種類あります。
-
VM スナップショットは、ユーザデータおよび設定データを含む VM の状態全体を保存します。 このスナップショットの手法には大量のディスク領域が必要になり、時間がかかります。
-
データディスクスナップショットはユーザデータだけを保存します。
ノート:
- プラットフォームによっては、ユーザのデータディスクだけのスナップショットを取ることができません。 それらのプラットフォームでは、VM 全体のスナップショットを取る必要があります。
- ハイパーバイザーが完全なVMスナップショットをサポートしていないなら、ルートディスクとデータディスクのスナップショットを時間をおかずに取らなければなりません。
ホットパッチでのアップグレード
GitHub Enterprise Serverは、ホットパッチを利用して最新のパッチリリースへアップグレードできます。ホットパッチにはメンテナンスウィンドウが不要で、通常は再起動も必要ありません。
ホットパッチは新しいパッチリリースへのアップグレードに利用できますが、新しいフィーチャリリースへのアップグレードには利用できません。 たとえば2.10.1
から2.10.5
へのアップグレードは同じフィーチャリリースなので可能ですが、2.10.9
から2.11.0
へは異なるフィーチャリリースなので行えません。
Using the Management Console, you can install a hotpatch immediately or schedule it for later installation. 管理シェルを使って ghe-upgrade
ユーティリティでホットパッチをインストールすることもできます。 詳細は「アップグレードの要求事項」を参照してください。
注釈:
-
GitHub Enterprise Serverインスタンス がリリース候補ビルドを実行している場合、ホットパッチでアップグレードすることはできません。
-
クラスタ環境では、Management Console を使ったホットパッチのインストールはできません。 クラスタ環境でホットパッチをインストールするには、「クラスタをアップグレードする」を参照してください。
ホットパッチでの単一のアプライアンスのアップグレード
Management Console を使ってホットパッチをインストールする
You can use the Management Console to upgrade with a hotpatch by enabling automatic updates. You will then be presented with the latest available version of GitHub Enterprise Server that you can upgrade to.
If the upgrade target you're presented with is a feature release instead of a patch release, you cannot use the Management Console to install a hotpatch. You must install the hotpatch using the administrative shell instead. For more information, see "Installing a hotpatch using the administrative shell."
-
自動アップデートを有効化してください。 詳しい情報については「自動アップデートの有効化」を参照してください。
-
From an administrative account on GitHub Enterprise Server, in the upper-right corner of any page, click .
-
If you're not already on the "Site admin" page, in the upper-left corner, click Site admin.
-
左のサイドバーでManagement Consoleをクリックしてください。
-
Management Consoleの上部でUpdates(アップデート)をクリックしてください。
-
新しいホットパッチがダウンロードされたなら、Install package(パッケージのインストール)ドロップダウンメニューを使ってください。
- すぐにインストールするならNow(即時)を選択してください。
- 後でインストールするなら、後の日付を選択してください。
-
[Install] をクリックします。
管理シェルを使ったホットパッチのインストール
ノート: 自動アップデートチェックを有効にしたなら、アップグレードパッケージをダウンロードする必要はなく、自動的にダウンロードされたファイルを利用できます。 詳しい情報については「自動アップデートチェックの有効化」を参照してください。
-
GitHub Enterprise ServerインスタンスにSSHでアクセスしてください。 If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."
$ ssh -p 122 admin@HOSTNAME
-
GitHub Enterprise Serverのリリースページにアクセスしてください。 アップグレードしたいリリースの隣の Download(ダウンロード)をクリックし、続いて Upgrading(アップグレード)タブをクリックしてください。アップグレードのホットパッケージ(.hpkgファイル)のURLをコピーしてください。
-
cURL
を使ってGitHub Enterprise Serverインスタンスにアップグレードパッケージをダウンロードしてください。admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
パッケージのファイル名を使って
ghe-upgrade
コマンドを実行してください。admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.hpkg *** verifying upgrade package signature...
-
カーネル、MySQL、Elasticsearch やその他のプログラムのアップグレードにリブートが必要なら、ホットパッチアップグレードスクリプトが通知してくれます。
ホットパッチを使ったレプリカインスタンスを持つアプライアンスのアップグレード
注釈: ホットパッチをインストールする場合、メンテナンスモードに入ったりレプリケーションを停止したりする必要はありません。
High Availability と Geo-replication が設定されたアプライアンスは、プライマリインスタンスに加えてレプリカインスタンスを使います。 これらのアプライアンスをアップグレードするには、プライマリインスタンスとすべてのレプリカインスタンスの両方を、1 つずつアップグレードしなければなりません。
プライマリインスタンスのアップグレード
- 「管理シェルを使ってホットパッチをインストールする」の指示に従ってプライマリインスタンスをアップグレードしてください。
レプリカインスタンスのアップグレード
メモ: Geo-replication の一部として複数のレプリカインスタンスを動作させているなら、この手順は各レプリカインスタンス 1 つずつに繰り返してください。
-
「管理シェルを使ってホットパッチをインストールする」の指示に従ってレプリカインスタンスをアップグレードします。 Geo-replication に複数のレプリカを使用している場合は、この手順を繰り返して、各レプリカを一度に 1 つずつアップグレードする必要があります。
-
ポート122のSSH経由でレプリカインスタンスに"admin"ユーザとして接続してください。
$ ssh -p 122 admin@replica-host
-
以下を実行して、アップグレードを検証してください。
$ ghe-version
アップグレードパッケージでのアップグレード
フィーチャシリーズ内の最新のパッチリリースへのアップグレードにはホットパッチが利用できますが、新しいフィーチャリリースへのアップグレードにはアップグレードパッケージを使わなければなりません。 たとえば 2.11.10
から 2.12.4
へのアップグレードの場合、これらは異なるフィーチャシリーズなので、アップグレードパッケージを使わなければなりません。 詳細は「アップグレードの要求事項」を参照してください。
アップグレードパッケージでの単一のアプライアンスのアップグレード
ノート: 自動アップデートチェックを有効にしたなら、アップグレードパッケージをダウンロードする必要はなく、自動的にダウンロードされたファイルを利用できます。 詳しい情報については「自動アップデートチェックの有効化」を参照してください。
-
GitHub Enterprise ServerインスタンスにSSHでアクセスしてください。 If your instance comprises multiple nodes, for example if high availability or geo-replication are configured, SSH into the primary node. If you use a cluster, you can SSH into any node. For more information about SSH access, see "Accessing the administrative shell (SSH)."
$ ssh -p 122 admin@HOSTNAME
-
GitHub Enterprise Serverのリリースページにアクセスしてください。 アップグレードしたいリリースの隣の Download(ダウンロード)をクリックし、続いて Upgrading(アップグレード)タブをクリックしてください。 適切なプラットフォームを選択し、アップグレードパッケージ (.pkgファイル) の URL をコピーしてください。
-
cURL
を使ってGitHub Enterprise Serverインスタンスにアップグレードパッケージをダウンロードしてください。admin@HOSTNAME:~$ curl -L -O UPGRADE-PKG-URL
-
メンテナンスモードを有効にし、GitHub Enterprise Server インスタンス上のすべてのアクティブなプロセスが完了するのを待ってください。 詳しい情報については"メンテナンスモードの有効化とスケジューリング"を参照してください。
メモ: High Availability 構成のプライマリアプライアンスをアップグレードする場合には、「プライマリインスタンスをアップグレードする」の指示に従っているならアプライアンスはメンテナンスモードになっているはずです。
-
パッケージのファイル名を使って
ghe-upgrade
コマンドを実行してください。admin@HOSTNAME:~$ ghe-upgrade GITHUB-UPGRADE.pkg *** verifying upgrade package signature...
-
アップグレードを続けてパッケージ署名検証後に再起動することを承諾します。 新しいルートファイルシステムがセカンダリパーティションに書かれ、インスタンスは自動的にメンテナンスモードで再起動します。
*** applying update... This package will upgrade your installation to version version-number Current root partition: /dev/xvda1 [version-number] Target root partition: /dev/xvda2 Proceed with installation? [y/N]
-
単一アプライアンスのアップグレードであれば、メンテナンスモードを無効化してユーザが GitHub Enterprise Serverインスタンス を利用できるようにしてください。
メモ: High Availability 設定のアプライアンスをアップグレードする場合、すべてのレプリカをアップグレードし、レプリケーションが最新の状態になるまではメンテナンスモードのままでなければなりません。 詳細は「レプリカインスタンスをアップグレードする」を参照してください。
アップグレードパッケージを使ったレプリカインスタンスを持つアプライアンスのアップグレード
High Availability と Geo-replication が設定されたアプライアンスは、プライマリインスタンスに加えてレプリカインスタンスを使います。 これらのアプライアンスをアップグレードするには、プライマリインスタンスとすべてのレプリカインスタンスの両方を、1 つずつアップグレードしなければなりません。
プライマリインスタンスのアップグレード
警告: レプリケーションが停止されると、プライマリに障害があった場合には、レプリカがアップグレードされてレプリケーションが再開されるまでに行われた作業は失われます。
- プライマリインスタンスでメンテナンスモードを有効化し、すべてのアクティブなプロセスが完了するのを待ちます。 詳しい情報については、「メンテナンスモードの有効化」を参照してください。
- ポート122のSSH経由でレプリカインスタンスに"admin"ユーザとして接続してください。
$ ssh -p 122 admin@replica-host
- レプリカインスタンス、あるいは Geo-replication の一部として複数のレプリカインスタンスを動作させている場合は、すべてのレプリカインスタンスで
ghe-repl-stop
を実行してレプリケーションを停止させます。 - 「アップグレードパッケージで単一アプライアンスをアップグレードする」の指示に従い、プライマリインスタンスをアップグレードしてください。
レプリカインスタンスのアップグレード
メモ: Geo-replication の一部として複数のレプリカインスタンスを動作させているなら、この手順は各レプリカインスタンス 1 つずつに繰り返してください。
-
「アップグレードパッケージで単一アプライアンスをアップグレードする」の指示に従い、レプリカインスタンスをアップグレードします。 Geo-replication に複数のレプリカを使用している場合は、この手順を繰り返して、各レプリカを一度に 1 つずつアップグレードする必要があります。
-
ポート122のSSH経由でレプリカインスタンスに"admin"ユーザとして接続してください。
$ ssh -p 122 admin@replica-host
-
以下を実行して、アップグレードを検証してください。
$ ghe-version
-
レプリカインスタンス上でレプリケーションを開始するには、
ghe-repl-start
を実行してください。 -
レプリカインスタンスで、レプリケーションサービスが正しく動作していることを確認するには、
ghe-repl-status
を実行してください。 このコマンドは、レプリケーションが問題なく進行しており、レプリカがアップグレードされていれば、すべてのサービスに対してOK
を返します。 コマンドがReplication is not running
を返すなら、レプリケーションはまだ開始中かもしれません。ghe-repl-status
をもう一度実行する前に 1 分間ほど待ってください。メモ: resync の処理が進んでいる間は、
ghe-repl-status
はレプリケーションが遅れていることを示す期待どおりのメッセージを返すかもしれません。 たとえばCRITICAL: git replication is behind the primary by more than 1007 repositories and/or gists
のようなメッセージです。If
ghe-repl-status
did not returnOK
, contact GitHub Enterprise Support. 詳しい情報については、「GitHub Support からの支援を受ける」を参照してください。 -
最後のレプリカのアップグレードが完了し、resync も完了したなら、ユーザが GitHub Enterprise Serverインスタンス を使えるようにメンテナンスモードを無効化してください。
失敗したアップグレードからのリストア
アップグレードが失敗もしくは中断したなら、インスタンスを以前の状態に復帰させなければなりません。 この処理を完了させるプロセスは、アップグレードの種類によります。
パッチリリースのロールバック
パッチリリースをロールバックするには、--allow-patch-rollback
を付けて ghe-upgrade
コマンドを使います。 Before rolling back, replication must be temporarily stopped by running ghe-repl-stop
on all replica instances. アップグレードをロールバックする場合には、.pkg拡張子を持つアップグレードパッケージを使わなければなりません。 .hpkg拡張子を持つホットパッチのパッケージファイルはサポートされません。
ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg
このコマンドの実行後には再起動が必要です。 パッチリリースでは移行は行われないので、ロールバックはデータパーティションには影響しません。
Once the rollback is complete, restart replication by running ghe-repl-start
on all replicas.
詳細は「コマンドラインユーティリティ」を参照してください。
フィーチャリリースのロールバック
フィーチャリリースからロールバックするには、ルートおよびデータパーティションが整合した状態になることを保証するため、VM スナップショットからリストアしてください。 詳細は「スナップショットを取得する」を参照してください。