ステージング インスタンスについて
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 を使用して運用インスタンスからデータと設定をバックアップします。 詳しくは、「インスタンスでのバックアップの構成」を参照してください。
警告: 運用環境で GitHub Actions または GitHub Packages を使用する場合、バックアップには外部ストレージの運用設定が含まれます。 ステージング インスタンスから運用ストレージに書き込むことでデータが失われる可能性を回避するには、バックアップを復元する前に、手順 3 と 4 の各機能を設定する必要があります。
2. ステージング インスタンスをセットアップする
新しいインスタンスをステージング環境として動作するようにセットアップしてください。 ステージングインスタンスのプロビジョニングとインストールについては、本番インスタンスと同じガイドが利用できます。 詳しくは、「GitHub Enterprise Server インスタンスをセットアップする」を参照してください。
運用インスタンスのバックアップを復元する場合は、次の手順に進みます。 または、インスタンスを手動で設定し、以降の手順にスキップすることもできます。
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
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
コマンドを使用して残りのデータをバックアップから復元します。 詳しくは、「インスタンスでのバックアップの構成」を参照してください。
ステージング インスタンスが既に設定されており、設定、証明書、ライセンス データを上書きする場合は、コマンドに -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] から設定を適用するには、 [設定の保存] をクリックします。