このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-06-09. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンのGitHub Enterpriseにアップグレードしてください。 アップグレードに関する支援については、GitHub Enterprise supportに連絡してください。

High Availabilityレプリカの作成

アクティブ/パッシブ設定では、レプリカアプライアンスはプライマリアプライアンスの冗長コピーです。 プライマリアプライアンスに障害が起こると、High Availabilityモードではレプリカがプライマリアプライアンスとして動作し、サービスの中断を最小限にできます。

High Availabilityレプリカの作成

  1. 新しい GitHub Enterprise Server アプライアンスを希望するプラットフォームにセットアップします。 レプリカアプライアンスのCPU、RAM、ストレージ設定は、プライマリアプライアンスと同じにするべきです。 レプリカアプライアンスは、独立した環境にインストールすることをお勧めします。 下位層のハードウェア、ソフトウェア、ネットワークコンポーネントは、プライマリアプライアンスのそれらとは分離されているべきです。 クラウドプロバイダを利用している場合には、別個のリージョンもしくはゾーンを使ってください。 詳細は「"GitHub Enterprise Server インスタンスをセットアップする」を参照してください。

  2. ブラウザで新しいレプリカアプライアンスのIPアドレスにアクセスして、所有するGitHub Enterpriseのライセンスをアップロードしてください。

  3. プライマリアプライアンス上のパスワードと一致する管理者パスワードを設定して続行します。

  4. Configure as Replica(レプリカとして設定)をクリックしてください。 新しいインスタンスをレプリカとして設定するリンクを持つインストールオプション

  5. "Add new SSH key(新しいSSH鍵の追加)"の下でSSH鍵を入力してください。 SSHキーの追加

  6. Add key(鍵の追加)をクリックし、続いてContinue(続ける)をクリックしてください。

  7. SSHを使ってレプリカアプライアンスのIPアドレスに接続してください。

    $ ssh -p 122 admin@REPLICA IP
  8. レプリケーション用の鍵ペアを生成するには、プライマリアプライアンスの IP アドレスを指定した ghe-repl-setup コマンドを使用し、そのコマンドが返す公開鍵をコピーします。

    $ ghe-repl-setup PRIMARY IP
  9. プライマリアプライアンスの認証済みキーのリストに公開鍵を追加するには、https://<PRIMARY-HOSTNAME>/setup/settingsにアクセスし、レプリカからコピーした鍵をリストに追加してください。

  10. プライマリへの接続を確認し、新しいレプリカのレプリカモードを有効にするには、ghe-repl-setup をもう一度実行します。

    $ ghe-repl-setup PRIMARY IP
  11. データストアのレプリケーションを開始するには、ghe-repl-startコマンドを使ってください。

    $ ghe-repl-start

    警告: ghe-repl-startを使うとプライマリサーバーは短期間利用できなくなり、その間ユーザにはinternal server errorが返されます。 もっと親切なメッセージを提供するには、ghe-repl-startをレプリカノードで実行する前にプライマリノード上でghe-maintenance -sを実行し、アプライアンスをメンテナンスモードにしてください。 レプリケーションを開始したら、ghe-maintenance -uでメンテナンスモードを無効化してください。

  12. 各データストアのレプリケーションチャネルのステータスを確認するには、ghe-repl-status コマンドを使用します。

    $ ghe-repl-status

Geo-replicationレプリカの作成

レプリカを作成する以下の例の設定では、1 つのプライマリと 2 つのレプリカを使用しており、これらは 3 つの異なる地域にあります。 3 つのノードは別のネットワークに配置できますが、すべてのノードは他のすべてのノードから到達可能である必要があります。 最低限、必要な管理ポートは他のすべてのノードに対して開かれている必要があります。 ポートの要件に関する詳しい情報については、「ネットワークポート」を参照してください。

  1. 最初のレプリカで ghe-repl-setup を実行することで、標準の 2 ノード構成の場合と同じ方法で最初のレプリカを作成します。

    (replica1)$ ghe-repl-setup PRIMARY IP
    (replica1)$ ghe-repl-start
  2. 2 番目のレプリカを作成して、ghe-repl-setup --add コマンドを使用します。 --add フラグは、既存のレプリケーション設定を上書きするのを防ぎ、新しいレプリカを設定に追加します。

    (replica2)$ ghe-repl-setup --add PRIMARY IP
    (replica2)$ ghe-repl-start
  3. デフォルトでは、レプリカは同じデータセンターに設定され、同じノードにある既存のノードからシードを試行します。 レプリカを別のデータセンターに設定するには、datacenter オプションに異なる値を設定します。 具体的な値は、それらが互いに異なる限り、どのようなものでもかまいません。 各ノードで ghe-repl-node コマンドを実行し、データセンターを指定します。

    プライマリでは以下のコマンドを実行します。

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]

    1 番目のレプリカでは以下のコマンドを実行します。

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]

    2 番目のレプリカでは以下のコマンドを実行します。

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]

    ヒント: --datacenter--active のオプションは同時に設定できます。

  4. アクティブなレプリカノードは、アプライアンスデータのコピーを保存し、エンドユーザーのリクエストに応じます。 アクティブではないノードは、アプライアンスデータのコピーを保存しますが、エンドユーザーのリクエストに応じることはできません。 --active フラグを使用してアクティブモードを有効にするか、--inactive フラグを使用して非アクティブモードを有効にします。

    1 番目のレプリカでは以下のコマンドを実行します。

    (replica1)$ ghe-repl-node --active

    2 番目のレプリカでは以下のコマンドを実行します。

    (replica2)$ ghe-repl-node --active
  5. 設定を適用するには、プライマリで ghe-config-apply コマンドを使用します。

    (primary)$ ghe-config-apply

Geo-replicationのためのDNSの設定

プライマリとレプリカノードの IP アドレスを使って、Geo DNS を設定します。 SSH でプライマリノードにアクセスしたり、backup-utils でバックアップするために、プライマリノード (たとえば、primary.github.example.com) に対して DNS CNAME を作成することもできます。

テストのために、ローカルワークステーションの hosts ファイル (たとえば、/etc/hosts) にエントリを追加することができます。 以下の例のエントリでは、HOSTNAME に対するリクエストが replica2 に決定されることになります。 別の行をコメントアウトすることで、特定のホストをターゲットにすることができます。

# <primary IP>     <em>HOSTNAME</em>
# <replica1 IP>    <em>HOSTNAME</em>
<replica2 IP>    <em>HOSTNAME</em>

参考リンク

問題がまだ解決していませんか?

GitHubコミュニティで質問するサポートへの連絡