Skip to main content

メンテナンスモードの有効化とスケジューリング

お使いの GitHub Enterprise Server インスタンス のアップグレードやバックアップの復元など、一部の標準的なメンテナンス手順では、通常の使用のためにインスタンスをオフラインにする必要があります。

メンテナンスモードについて

操作の種類によっては、お使いの GitHub Enterprise Server インスタンス をオフラインにしてメンテナンス モードにする必要があります。

  • GitHub Enterprise Server の新規バージョンにアップグレードする
  • 仮想マシンに割り当てられている CPU、メモリ、またはストレージリソースを拡大する
  • ある仮想マシンから別の仮想マシンへデータを移行する
  • GitHub Enterprise Server Backup Utilities スナップショットからデータを復元する
  • 特定の種類の重要なアプリケーション問題のトラブルシューティング

メンテナンスウィンドウのスケジュールは、ユーザに準備時間を与えるために少なくとも30分は先にすることをおすすめします。 メンテナンスウィンドウがスケジューリングされると、すべてのユーザにはサイトにアクセスしたときにバナーが表示されます。

インスタンスがメンテナンスモードに入ると、通常のHTTP及びGitアクセスはすべて拒否されます。 これには、アプライアンスが状態コード 503 (サービス利用不可) で応答する Web 要求と API 要求が含まれます。 Git のフェッチ、複製、およびプッシュ操作も拒否され、サイトが一時的に使用できないことを示すエラー メッセージが表示されます。 高可用性構成では、Git レプリケーションは一時停止されます。 GitHub Actions ジョブは実行されません。 サイトにブラウザーでアクセスすると、メンテナンスページが表示されます。

メンテナンス操作の初期検証を実行するには、指定された IP アドレスと範囲からのみ お使いの GitHub Enterprise Server インスタンス へのアクセスを許可するように IP 例外リストを構成します。 IP 例外リストで指定されていない IP アドレスから お使いの GitHub Enterprise Server インスタンス にアクセスしようとすると、インスタンスがメンテナンス モードのときに送信された応答と一致する応答を受け取ります。

メンテナンスモードの即時有効化あるいは後のためのメンテナンスウィンドウのスケジューリング

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. 上部のナビゲーション バーで [メンテナンス] をクリックします。

    [Management Console] のヘッダーのスクリーンショット。 [メンテナンス] というラベルが付いたタブが、オレンジ色の枠線で強調表示されています。

  5. [有効化とスケジュール] で [メンテナンス モードを有効にする] を選び、 メンテナンス モードをすぐに有効にするか、今後のメンテナンス期間をスケジュールするかを決めます。

    • メンテナンス モードを直ちに有効にするには、ドロップダウン メニューを選んで [今すぐ] をクリックします。
    • 今後のメンテナンス期間をスケジュール設定するには、ドロップダウン メニューを選んで開始時間をクリックします。
  6. (オプション) メンテナンス期間中にユーザーに表示するカスタム メッセージを設定するには、[Set a maintenance mode message] (メンテナンス モード メッセージの設定) フィールドにメッセージを入力します。

  7. ウィンドウのタイミングとオプションのメッセージに問題がなければ、[保存] をクリックします。 [今すぐ] を選択した場合、インスタンスはすぐにメンテナンス モードになります。

IP 例外リストを使い、メンテナンス モードで変更を検証する

IP 例外リストは、お使いの GitHub Enterprise Server インスタンス への制御および制限付きアクセスを提供します。これは、メンテナンス操作後のサーバー正常性の初期検証に最適です。 有効にすると、お使いの GitHub Enterprise Server インスタンス はメンテナンス モードから外され、構成済みの IP アドレスでのみ使用できるようになります。 メンテナンス モードのチェック ボックスは、状態の変化を反映するように更新されます。

メンテナンス モードを再度有効にすると、IP 例外リストが無効になり、お使いの GitHub Enterprise Server インスタンス がメンテナンス モードに戻ります。 IP 例外リストを無効にした場合、お使いの GitHub Enterprise Server インスタンス は通常の操作に戻ります。

コマンド ライン ユーティリティを使って IP 例外リストを構成することもできます。 詳細については、「コマンド ライン ユーティリティ」および「管理シェル (SSH) にアクセスする」を参照してください。

  1. GitHub Enterprise Server の管理アカウントから、任意のページの右上隅で をクリックします。

  2. [サイト管理者] ページにまだ表示されていない場合は、左上隅の [サイト管理者] をクリックします。

  3. [ サイト管理者] サイドバーで [Management Console] をクリックします。

  4. 上部のナビゲーション バーで [メンテナンス] をクリックし、メンテナンス モードが既に有効になっていることを確認します。

    [Management Console] のヘッダーのスクリーンショット。 [メンテナンス] というラベルが付いたタブが、オレンジ色の枠線で強調表示されています。

  5. [IP 例外リストの有効化と構成] で [IP 例外リストの有効化] を選びます。

  6. 一覧を有効にするチェック ボックスの右側に、お使いの GitHub Enterprise Server インスタンス へのアクセスを許可する必要がある、空白で区切られた IP アドレスまたは CIDR ブロックの有効な一覧を入力します。

  7. (オプション) メンテナンス期間中にユーザーに表示するカスタム メッセージを設定するには、[Set a maintenance mode message] (メンテナンス モード メッセージの設定) フィールドにメッセージを入力します。

  8. [保存] をクリックします。

REST API を使用したメンテナンス モードの管理

REST API を使用して、お使いの GitHub Enterprise Server インスタンス のメンテナンス モードを管理できます。 詳しくは、「GitHub Enterprise Server の管理用の REST API エンドポイント」をご覧ください。

GitHub CLI を使用したメンテナンス モードの管理

GitHub CLI の gh es 拡張機能を使用して、お使いの GitHub Enterprise Server インスタンス のメンテナンス モードを管理できます。 詳細については、GH ES CLI の使用に関するドキュメントで gh es maintenance setgh es maintenance get を参照してください。

詳しくは、「GitHub CLI を使用したインスタンスの管理」をご覧ください。

SSH を使用したメンテナンス モードの管理

SSH アクセス権がある場合は、コマンド ライン ユーティリティ ghe-maintenance を使用して、1 つのノードまたは高可用性構成の複数のノードを持つ GitHub Enterprise Server インスタンスに対して、メンテナンス モードを設定または設定解除できます。 詳細については、「管理シェル (SSH) にアクセスする」および「コマンド ライン ユーティリティ」を参照してください。

SSH を使用したクラスターのメンテナンス モードの管理

GitHub Enterprise Server インスタンスへの SSH アクセス権がある場合は、コマンド ライン ユーティリティ ghe-cluster-maintenance を使用して、クラスター内のすべてのノードに対してメンテナンス モードを設定または設定解除できます。 詳細については、「管理シェル (SSH) にアクセスする」および「コマンド ライン ユーティリティ」を参照してください。

$ ghe-cluster-maintenance -h
# Shows options
$ ghe-cluster-maintenance -q
# Queries the current mode
$ ghe-cluster-maintenance -s
# Sets maintenance mode
$ ghe-cluster-maintenance -s "MESSAGE"
# Sets maintenance mode with a custom message
$ ghe-cluster-maintenance -m "MESSAGE"
# Updates the custom message
$ ghe-cluster-maintenance -u
# Unsets maintenance mode