ノート: GitHub Enterprise Serverでは、最大で8つのHigh Availabilityレプリカ(パッシブ及びアクティブ/Goのいずれでも)が利用できます。
High Availabilityレプリカの作成
-
新しい GitHub Enterprise Server アプライアンスを希望するプラットフォー� にセットアップします。 レプリカアプライアンスのCPU、RAM、ストレージ設定は、プライマリアプライアンスと同じにするべきです。 レプリカアプライアンスは、独立した環境にインストールすることをお勧めします。 下位層のハードウェア、ソフトウェア、ネットワークコンポーネントは、プライマリアプライアンスのそれらとは分離されているべきです。 クラウドプロバイダを利用している� �合には、別個のリージョンもしくはゾーンを使ってく� さい。 詳細は「"GitHub Enterprise Server インスタンスをセットアップする」を参照してく� さい。
-
Ensure that both the primary appliance and the new replica appliance can communicate with each other over ports 122/TCP and 1194/UDP. 詳しい情� �については"ネットワークポート"を参照してく� さい。
-
ブラウザで新しいレプリカアプライアンスのIPアドレスにアクセスして、所有するGitHub Enterpriseのライセンスをアップロードしてく� さい。
-
プライマリアプライアンス上のパスワードと一致する管理者パスワードを設定して続行します。
-
Configure as Replica(レプリカとして設定)をクリックしてく� さい。

-
"Add new SSH key(新しいSSH鍵の追� )"の下でSSH鍵を入力してく� さい。

-
Add key(キーの追� )をクリックしてく� さい。
-
SSHを使ってレプリカアプライアンスのIPアドレスに接続してく� さい。
$ ssh -p 122 admin@REPLICA IP -
レプリケーション用の鍵ペアを生成するには、プライマリアプライアンスの IP アドレスを指定した
ghe-repl-setupコマンドを使用し、そのコマンドが返す公開鍵をコピーします。$ ghe-repl-setup PRIMARY IP -
プライマリアプライアンスの認証済みキーのリストに公開鍵を追� するには、
https://<PRIMARY-HOSTNAME>/setup/settingsにアクセスし、レプリカからコピーした鍵をリストに追� してく� さい。 -
プライマリへの接続を確認し、新しいレプリカのレプリカモードを有効にするには、
ghe-repl-setupをもう一度実行します。$ ghe-repl-setup PRIMARY IP -
データストアのレプリケーションを開始するには、
ghe-repl-startコマンドを使ってく� さい。$ ghe-repl-start警告:
ghe-repl-startを使うとプライマリサーバーは短期間利用できなくなり、その間ユーザにはinternal server errorが返されます。 もっと親切なメッセージを提供するには、ghe-repl-startをレプリカノードで実行する前にプライマリノード上でghe-maintenance -sを実行し、アプライアンスをメンテナンスモードにしてく� さい。 レプリケーションを開始したら、ghe-maintenance -uでメンテナンスモードを無効化してく� さい。 Git replication will not progress while the primary node is in maintenance mode. -
各データストアのレプリケーションチャネルのステータスを確認するには、
ghe-repl-statusコマンドを使用します。$ ghe-repl-status
Geo-replicationレプリカの作成
レプリカを作成する以下の例の設定では、1 つのプライマリと 2 つのレプリカを使用しており、これらは 3 つの異なる地域にあります。 3 つのノードは別のネットワークに配置できますが、すべてのノードは他のすべてのノードから到達可能である必要があります。 最低限、必要な管理ポートは他のすべてのノードに対して開かれている必要があります。 ポートの要件に関する詳しい情� �については、「ネットワークポート」を参照してく� さい。
-
最初のレプリカで
ghe-repl-setupを実行することで、標準の 2 ノード構成の� �合と同じ方法で最初のレプリカを作成します。(replica1)$ ghe-repl-setup PRIMARY IP (replica1)$ ghe-repl-start -
2 番目のレプリカを作成して、
ghe-repl-setup --addコマンドを使用します。--addフラグは、既存のレプリケーション設定を上書きするのを防ぎ、新しいレプリカを設定に追� します。(replica2)$ ghe-repl-setup --add PRIMARY IP (replica2)$ ghe-repl-start -
デフォルトでは、レプリカは同じデータセンターに設定され、同じノードにある既存のノードからシードを試行します。 レプリカを別のデータセンターに設定するには、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のオプションは同時に設定できます。 -
アクティブなレプリカノードは、アプライアンスデータのコピーを保存し、エンドユーザーのリクエストに応じます。 アクティブではないノードは、アプライアンスデータのコピーを保存しますが、エンドユーザーのリクエストに応じることはできません。
--activeフラグを使用してアクティブモードを有効にするか、--inactiveフラグを使用して非アクティブモードを有効にします。1 番目のレプリカでは以下のコマンドを実行します。
(replica1)$ ghe-repl-node --active2 番目のレプリカでは以下のコマンドを実行します。
(replica2)$ ghe-repl-node --active -
設定を適用するには、プライマリで
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>