GitHub Enterprise Server クラスターの初期化について
環境内に GitHub Enterprise Server クラスターを配置するには、GitHub Enterprise Server をインストールし、クラスター対応ライセンスをアップロードし、最初のノードを構成し、構成ファイルを使用してノードを初期化する必要があります。
メモ
GitHub Enterprise Server のクラスタリングは HTTPS を使用して構成する必要があります。
GitHub Enterprise Serverのインストール
クラスターの設定を開始するには、各ノードの仮想マシン (VM) に GitHub Enterprise Server アプライアンスをインストールし、IP アドレスを構成します。
- 各クラスタノードで GitHub Enterprise Server をプロビジョニングしてインストールします。 詳しくは、「AUTOTITLE」をご覧ください。
- 管理シェルまたは DHCP を使用し、各ノードの IP アドレスのみを構成します。 その他の設定は行わないでください。
最初のノードの設定
プライマリ MySQL ノードとして機能するノードに、GitHub Enterprise Server ライセンスをインストールします。
- で MySQL プライマリとして指定されるノードに接続します。 詳しくは、「AUTOTITLE」をご覧ください。
- Web ブラウザーで に移動します。
- プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 詳しくは、「GitHub Enterprise のライセンスのダウンロード」をご覧ください。1. [Management Console] で、目的の設定を構成して保存します。1. インスタンスは自動的に再起動します。
クラスタの初期化
クラスターを初期化するためには、クラスター設定ファイル () が必要です。 詳しくは、「AUTOTITLE」をご覧ください。
- 構成された最初のノードから を実行します。 実行すると、クラスタ設定ファイルに設定されていないノードがある場合にクラスタを初期化します。
- を実行する。 これにより、 ファイルを検証して各ノードファイルに設定を適用し、各ノードで設定されたサービスを起動します。
実行中のクラスターの状態を確認するには、 コマンドを使います。
クラスタ設定ファイルについて
クラスタ設定ファイル () は、クラスター中のノードと、その上で動作するサービスを定義します。 詳しくは、「AUTOTITLE」をご覧ください。
この例 では、11 のノードでクラスターを定義します。
- と呼ばれる 2 つのノードによって、クライアント要求に応答するサービスが実行されます。
- と呼ばれる 3 つのノードによって、データベース データのストレージ、取得、レプリケーションを行うサービスが実行されます。
- と呼ばれる 3 つのノードによって、検索機能を行うサービスが実行されます。
- と呼ばれる 3 つのノードによって、データのストレージ、取得、レプリケーションを行うサービスが実行されます。
ノードごとに有効で一意のホスト名と IPv4 アドレスを選択する必要があります。 ノード同士がローカルで解決できるようにするため、GitHub Enterprise Server は各ノードのホスト名のエントリをすべてのノードの指定先に追加します。
- GitHub Enterprise Server の有効なホスト名について詳しくは、「AUTOTITLE」をご覧ください。
- 各 IPv4 アドレスは、プライベート ネットワーク上のアドレスである必要があります。 IETF Web サイトの RFC 1918 を参照してください。
と 経由で MySQL プライマリとして構成した最初のクラスター ノードを指定します。
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
構成された最初のノードでファイル を作成します。 たとえば、 を使用する場合は次のようになります。
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf