ステージング インスタンスについて
GitHub では、お使いの GitHub Enterprise Server インスタンスの構成のバックアップ、更新、または変更をテストするために個別の環境を設定することを推奨しています。 運用システムから分離する必要があるこの環境は、ステージング環境と呼ばれます。
たとえば、データの損失から保護するために、運用インスタンスのバックアップを定期的に検証できます。 運用データのバックアップは、ステージング環境の別の GitHub Enterprise Server インスタンスに定期的に復元できます。 このステージング インスタンスでは、GitHub Enterprise Server の最新の機能リリースへのアップグレードをテストすることもできます。
ヒント
ステージング インスタンスが運用環境の容量で使われていない場合、既存の GitHub Enterprise ライセンス ファイルを再利用できます。
ステージング環境に関する考慮事項
GitHub Enterprise Server を十分にテストし、運用環境とできるだけ似た環境を再現するために、インスタンスを操作する外部システムを検討してください。 たとえば、ステージング環境では次をテストできます。
- 認証 (特に SAML などの外部認証プロバイダーを使用する場合)
- 外部のチケットシステムとの統合
- 継続的インテグレーションサーバとの統合
- GitHub Enterprise Server APIs を利用する外部のスクリプトあるいはソフトウェア
- メール通知のための外部のSMTPサーバ
ステージングインスタンスのセットアップ
ステージング インスタンスを最初からセットアップしたり、必要に応じてインスタンスを設定したりすることができます。 詳細については、「GitHub Enterprise Server インスタンスをセットアップする」および「GitHub Enterprise を設定する」を参照してください。
または、運用インスタンスのバックアップをステージング インスタンスに復元することで、運用構成を反映するステージング インスタンスを作成することもできます。
- 運用インスタンスをバックアップします。
- ステージング インスタンスをセットアップします。
- GitHub Actions を設定します。
- GitHub Packages を設定します。
- 運用バックアップを復元します。
- インスタンスの設定を確認します。
- インスタンスの構成を適用します。
1. 運用インスタンスをバックアップする
運用インスタンスと同じデータと設定を含むインスタンスで変更をテストする場合は、GitHub Enterprise Server Backup Utilities を使用して運用インスタンスからデータと設定をバックアップします。 詳しくは、「Backup Utilities を使用したインスタンスのバックアップの構成」をご覧ください。
警告
運用環境で GitHub Actions または GitHub Packages を使う場合、バックアップには外部ストレージの運用構成が含まれます。 ステージング インスタンスから運用ストレージに書き込むことでデータが失われる可能性を回避するには、バックアップを復元する前に、手順 3 と 4 の各機能を設定する必要があります。
2. ステージング インスタンスをセットアップする
新しいインスタンスをステージング環境として動作するようにセットアップしてください。 ステージングインスタンスのプロビジョニングとインストールについては、本番インスタンスと同じガイドが利用できます。 詳しくは、「GitHub Enterprise Server インスタンスをセットアップする」をご覧ください。
運用インスタンスのバックアップを復元する場合は、次の手順に進みます。 または、インスタンスを手動で設定し、以降の手順にスキップすることもできます。
警告
GitHub Actions でのバックアップの復元は、構成されていないインスタンスでは成功しません。 GitHub Actions を有効にするには、ホスト名が構成されたインスタンスが必要です。 詳しくは、「インスタンスのホスト キーの構成」をご覧ください。
3. GitHub Actions を設定する
必要に応じて、運用インスタンスで GitHub Actions を使用する場合、運用バックアップを復元する前にステージング インスタンスで機能を設定します。 GitHub Actions を使わない場合は、1 に進んでください。GitHub Packages を構成��ます。
警告
運用バックアップを復元する前にステージング インスタンスで GitHub Actions を構成しないと、ステージング インスタントで運用インスタンスの外部ストレージが使われて、データが失われる可能性があります。 ステージング インスタンスには別の外部ストレージを使用することを強くお勧めします。 詳しくは、「ステージング環境を使用する」をご覧ください。
-
ステージング インスタンスに SSH でアクセスします。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
GitHub Actions の外部ストレージ プロバイダーを使用するようにステージング インスタンスを設定するには、次のコマンドのいずれかを入力します。
-
Azure Blob Storage:
Shell ghe-config secrets.actions.storage.blob-provider "azure"
ghe-config secrets.actions.storage.blob-provider "azure"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.blob-provider "s3"
ghe-config secrets.actions.storage.blob-provider "s3"
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.blob-provider "gcs"
ghe-config secrets.actions.storage.blob-provider "gcs"
-
-
次のコマンドを入力して外部ストレージ接続を構成し、プレースホルダーの値を実際の接続の値に置き換えます。
-
Azure Blob Storage:
Shell ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
ghe-config secrets.actions.storage.azure.connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
ghe-config secrets.actions.storage.s3.bucket-name "S3 BUCKET NAME" ghe-config secrets.actions.storage.s3.service-url "S3 SERVICE URL" ghe-config secrets.actions.storage.s3.access-key-id "S3 ACCESS KEY ID" ghe-config secrets.actions.storage.s3.access-secret "S3 ACCESS SECRET"
必要に応じて、S3 のパス スタイルのアドレス指定を強制するには、次のコマンドも入力します。
Shell ghe-config secrets.actions.storage.s3.force-path-style true
ghe-config secrets.actions.storage.s3.force-path-style true
-
Google Cloud Storage:
Shell ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
ghe-config secrets.actions.storage.gcs.service-url "SERVICE URL" ghe-config secrets.actions.storage.gcs.bucket-name "BUCKET NAME" ghe-config secrets.actions.storage.gcs.access-key-id "HMAC ACCESS ID" ghe-config secrets.actions.storage.gcs.access-secret "HMAC SECRET"
-
-
ステージング インスタンスで GitHub Actions を有効にする準備をするには、次のコマンドを入力します。
Shell ghe-config app.actions.enabled true
ghe-config app.actions.enabled true
-
構成の変更を適用するには、次のコマンドを入力します。
Shell ghe-config-apply
ghe-config-apply
4. GitHub Packages を設定する
必要に応じて、運用インスタンスで GitHub Packages を使用する場合、運用バックアップを復元する前にステージング インスタンスで機能を設定します。 GitHub Packages を使わない場合は、1 に進んでください。運用バックアップを復元します。
警告
運用バックアップを復元する前にステージング インスタンスで GitHub Packages を構成しないと、ステージング インスタントで運用インスタンスの外部ストレージが使われて、データが失われる可能性があります。 ステージング インスタンスには別の外部ストレージを使用することを強くお勧めします。
-
ステージング インスタンスに復元するバックアップを確認します。
- GitHub Enterprise Server Backup Utilities 3.5 以降を使用してバックアップを作成した場合、バックアップには、GitHub Packages の設定が含まれます。 次の手順に進みます。
- GitHub Enterprise Server Backup Utilities 3.4 以前を使用してバックアップを作成した場合、ステージング インスタンスで GitHub Packages を設定します。 詳しくは、「Enterprise 向けの GitHub Packages を使い始める」をご覧ください。
-
ステージング インスタンスに SSH でアクセスします。 詳しくは、「管理シェル (SSH) にアクセスする」をご覧ください。
Shell ssh -p 122 admin@HOSTNAME
ssh -p 122 admin@HOSTNAME
-
次のコマンドを入力して外部ストレージ接続を設定し、プレースホルダーの値を接続の実際の値に置き換えます。
-
Azure Blob Storage:
Shell ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
ghe-config secrets.packages.blob-storage-type "azure" ghe-config secrets.packages.azure-container-name "AZURE CONTAINER NAME" ghe-config secrets.packages.azure-connection-string "CONNECTION STRING"
-
Amazon S3:
Shell ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
ghe-config secrets.packages.blob-storage-type "s3" ghe-config secrets.packages.service-url "S3 SERVICE URL" ghe-config secrets.packages.s3-bucket "S3 BUCKET NAME" ghe-config secrets.packages.aws-access-key "S3 ACCESS KEY ID" ghe-config secrets.packages.aws-secret-key "S3 ACCESS SECRET"
-
-
ステージング インスタンスで GitHub Packages を有効にする準備をするには、次のコマンドを入力します。
Shell ghe-config app.packages.enabled true
ghe-config app.packages.enabled true
5. 運用バックアップを復元する
ghe-restore
コマンドを使用して残りのデータをバックアップから復元します。 詳しくは、「Backup Utilities を使用したインスタンスのバックアップの構成」をご覧ください。
ステージング インスタンスが既に設定されており、設定、証明書、ライセンス データを上書きする場合は、コマンドに -c
オプションを追加します。 このオプションの詳しい情報については、GitHub Enterprise Server Backup Utilities ドキュメントの「バックアップおよび復元コマンドの使用」を参照してください。
6. インスタンスの設定を確認する
同じホスト名を使用してステージング インスタンスにアクセスするには、macOS または Linux の /etc/hosts
ファイル、または Windows の C:\Windows\system32\drivers\etc
ファイルを編集して、ステージング インスタンスのホスト名を IP アドレスで解決するようにローカル ホスト ファイルを更新します。
メモ
ステージング インスタンスには、運用インスタンスと同じホスト名からアクセスできる必要があります。 お使いの GitHub Enterprise Server インスタンスのホスト名の変更はサポートされていません。 詳しくは、「インスタンスのホスト キーの構成」をご覧ください。
次に、[Management Console] でステージング インスタンスの設定を確認します。 詳しくは、「Web UI からインスタンスを管理する」をご覧ください。
警告
ステージング インスタンスの GitHub Actions または GitHub Packages を構成した場合、運用データが上書きされるのを避けるため、[Management Console] の外部ストレージ構成が運用インスタンスと同じでないことを確認してください。
7. インスタンスの構成を適用する
[Management Console] から設定を適用するには、 [設定の保存] をクリックします。
ステージング インスタンスをオンラインに戻す
コストの節約のためにステージング インスタンスの電源をオフにし、必要に応じて電源をオンに戻した��することができます。
インスタンスをオフラインのままにできる期間は、60 日間です。
許可されたオフライン期間内にインスタンスをオンラインに戻すと、GitHub Enterprise Server が正常にインスタンス化されます。 許可された期間を超えてインスタンスがオフラインの状態が続くと、GitHub Enterprise Server によるインスタンス化は失敗し、server has been offline for more than the configured server_rejoin_age_max
というテキストのエラー メッセージがシステム ログに表示されることがあります。 「システム ログについて」を参照してください。
インスタンスがエラー状態でスタックしている場合は、これらのコマンドを実行して復旧できます。
sudo mv /data/user/consul/server_metadata.json /data/user/consul/server_metadata.json.bak
ghe-config-apply