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

クラスタの初期化

GitHub Enterprise Server クラスタはライセンスを使用して設定し、管理シェル (SSH) を使用して初期化する必要があります。

ノート: GitHub Enterprise Server クラスタリングは HTTPS で設定しなくてはなりません。

GitHub Enterprise Serverのインストール

  1. 各クラスタノードで GitHub Enterprise Server をプロビジョニングしてインストールします。 詳細は「GitHub Enterprise Server インスタンスをセットアップする」を参照してください。
  2. 管理シェルもしくは DHCP を使い、各ノードの IP アドレスのみを設定してください。 その他の設定は行わないでください。

最初のノードの設定

  1. cluster.conf で MySQL プライマリとして指定されるノードに接続します。 詳しい情報については、「クラスタ設定ファイルについて」を参照してください。
  2. Webブラウザでhttps://<ip address>:8443/setup/にアクセスしてください。
  3. プロンプトでライセンスファイルをアップロードし、管理コンソールのパスワードを設定してください。 For more information, see "Managing your license for GitHub Enterprise."
  4. Management Consoleで、希望する設定を行って保存してください。
  5. インスタンスは自動的に再起動します。

クラスタの初期化

クラスタを初期化するためには、クラスタ設定ファイル(cluster.conf)が必要です。 詳しい情報についてはクラスタの設定についてを参照してください。

  1. 設定された最初のノードで、ghe-cluster-config-init を実行します。 実行すると、クラスタ設定ファイルに設定されていないノードがある場合にクラスタを初期化します。
  2. ghe-cluster-config-apply を実行します。 これにより、 cluster.conf ファイルを検証して各ノードファイルに設定を適用し、各ノードで設定されたサービスを起動します。

動作中のクラスタのステータスをチェックするにはghe-cluster-statusコマンドを使ってください。

クラスタ設定ファイルについて

クラスタ設定ファイル(cluster.conf)は、クラスタ中のノードと、その上で動作するサービスを定義します。 詳しい情報については「クラスタノードについて」を参照してください。

この例のcluster.confでは、5ノードを持つクラスタを定義しています。

  • 2つのノード(ghe-app-node-\*と呼ばれます)では、クライアントからのリクエストに対するレスポンスを受け持つweb-serverjob-serverサービスが動作します。
  • 3 つのノード (ghe-data-node-\* と呼ばれる) は、GitHub Enterprise Server データの保存と取得のサービスを実行します。

ノードの名前には、ホスト名として有効な任意の名前を選択できます。 この名前は各ノードのホスト名として設定され、各ノードの/etc/hostsに追加され、各ノードがローカルでお互いを解決できるようにします。

設定した最初のクラスタノードを、mysql-server および mysql-masterで MySQL のプライマリとして指定してください。

[cluster]
  mysql-master = ghe-data-node-1
  redis-master = ghe-data-node-1
  primary-datacenter = default
[cluster "ghe-app-node-1"]
  hostname = ghe-app-node-1
  ipv4 = 192.168.0.2
  # ipv6 = fd12:3456:789a:1::2
  web-server = true
  job-server = true
[cluster "ghe-app-node-2"]
  hostname = ghe-app-node-2
  ipv4 = 192.168.0.3
  # ipv6 = fd12:3456:789a:1::3
  web-server = true
  job-server = true
[cluster "ghe-data-node-1"]
  hostname = ghe-data-node-1
  ipv4 = 192.168.0.4
  # ipv6 = fd12:3456:789a:1::4
  consul-server = true
  consul-datacenter = default
  git-server = true
  pages-server = true
  mysql-server = true
  elasticsearch-server = true
  redis-server = true
  memcache-server = true
  metrics-server = true
  storage-server = true
[cluster "ghe-data-node-2"]
  hostname = ghe-data-node-2
  ipv4 = 192.168.0.5
  # ipv6 = fd12:3456:789a:1::5
  consul-server = true
  consul-datacenter = default
  git-server = true
  pages-server = true
  mysql-server = true
  elasticsearch-server = true
  redis-server = true
  memcache-server = true
  metrics-server = true
  storage-server = true
[cluster "ghe-data-node-3"]
  hostname = ghe-data-node-3
  ipv4 = 192.168.0.6
  # ipv6 = fd12:3456:789a:1::6
  consul-server = true
  consul-datacenter = default
  git-server = true
  pages-server = true
  mysql-server = true
  elasticsearch-server = true
  redis-server = true
  memcache-server = true
  metrics-server = true
  storage-server = true

設定された最初のノード上で、/data/user/common/cluster.conf ファイルを作成します。 たとえば、次のように vim を使用します。

ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf

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