ドキュメントには頻繁に更新が加えられ、その都度公開されています。本ページの翻訳はまだ未完成な部分があることをご了承ください。最新の情報については、英語のドキュメンテーションをご参照ください。本ページの翻訳に問題がある場合はこちらまでご連絡ください。

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

クラスタノードの入れ替え

GitHub Enterprise Server ノードを入れ替えるには、クラスタ設定ファイル (cluster.conf) 中で対象となるノードをオフラインとしてマークし、入れ替えるノードを追加しなければなりません。 ノードに障害があった場合、あるいはパフォーマンスを高めるためにリソースの多いノードを追加する場合、この作業が必要になることがあります。

ここには以下の内容があります:

警告:衝突を避けるため、入れ替えるノードはそれまでクラスタ中で使われていないホスト名を使わなければなりません。

関数ノードの入れ替え

  1. 入れ替えノードにユニークなホスト名を付けてGitHub Enterprise Serverをプロビジョニングしてインストールしてください。

  2. 管理シェルもしくは DHCP を使い、置き換えノードの IP アドレスのみを設定してください。 その他の設定は行わないでください。

  3. 新たにプロビジョニングされた置き換えノードを追加するには、任意のノードでcluster.confファイルを修正し、障害が起きたノードを取り除き、置き換えのノードを追加します。 たとえば以下の修正されたcluster.confファイルは、ghe-data-node-3を新たにプロビジョニングされたghe-replacement-data-node-3で置き換えます。

    [cluster "ghe-replacement-data-node-3"]
    hostname = ghe-replacement-data-node-3
    ipv4 = 192.168.0.7

    ipv6 = fd12:3456:789a:1::7

    git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true

  4. cluster.confを修正したノードの管理シェルからghe-cluster-config-initを実行してください。 これで、クラスタに新たに追加されたノードが初期化されます。

  5. 同じノードからghe-cluster-config-applyを実行してください。 これで設定ファイルが検証され、クラスタ内の各ノードにコピーされ、変更されたcluster.confに従って各ノードが設定されます。

  6. cluster.confにgit-server = trueと設定されているノードをオフラインにするなら、ノードからの退避を行ってください。 詳しい情報については"クラスタノードからの退避"を参照してください。

  7. 障害が起きたノードをオフラインとしてマークするには、任意のノードでクラスタ設定ファイルcluster.conf)のそのノードのセクションにoffline = trueというテキストを含めてください。

    たとえば以下の修正された cluster.confは、 ghe-data-node-3ノードをオフラインとしてマークします。

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  8. cluster.confを修正したノードの管理シェルからghe-cluster-config-applyを実行してください。 これで設定ファイルが検証され、クラスタ内の各ノードにコピーされ、そのノードがオフラインとしてマークされます。

  9. If you're replacing the primary MySQL or Redis node, in cluster.conf, modify the mysql-master or redis-master value with the replacement node name.

    For example, this modified cluster.conf file specifies a newly provisioned cluster node, ghe-replacement-data-node-1 as the primary MySQL and Redis node:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1

緊急時のノードの入れ替え

  1. 入れ替えノードにユニークなホスト名を付けてGitHub Enterprise Serverをプロビジョニングしてインストールしてください。

  2. 管理シェルもしくは DHCP を使い、置き換えノードの IP アドレスのみを設定してください。 その他の設定は行わないでください。

  3. 障害が起きたノードをオフラインとしてマークするには、任意のノードでクラスタ設定ファイルcluster.conf)のそのノードのセクションにoffline = trueというテキストを含めてください。

    たとえば以下の修正された cluster.confは、 ghe-data-node-3ノードをオフラインとしてマークします。

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  4. cluster.confを修正したノードの管理シェルからghe-cluster-config-applyを実行してください。 これで設定ファイルが検証され、クラスタ内の各ノードにコピーされ、そのノードがオフラインとしてマークされます。

  5. 新たにプロビジョニングされた置き換えノードを追加するには、任意のノードでcluster.confファイルを修正し、障害が起きたノードを取り除き、置き換えのノードを追加します。 たとえば以下の修正されたcluster.confファイルは、ghe-data-node-3を新たにプロビジョニングされたghe-replacement-data-node-3で置き換えます。

    [cluster "ghe-replacement-data-node-3"]
    hostname = ghe-replacement-data-node-3
    ipv4 = 192.168.0.7

    ipv6 = fd12:3456:789a:1::7

    git-server = true pages-server = true mysql-server = true elasticsearch-server = true redis-server = true memcache-server = true metrics-server = true storage-server = true

  6. If you're replacing the primary MySQL or Redis node, in cluster.conf, modify the mysql-master or redis-master value with the replacement node name.

    For example, this modified cluster.conf file specifies a newly provisioned cluster node, ghe-replacement-data-node-1 as the primary MySQL and Redis node:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1

  7. cluster.confを修正したノードの管理シェルからghe-cluster-config-initを実行してください。 これで、クラスタに新たに追加されたノードが初期化されます。

  8. 同じノードからghe-cluster-config-applyを実行してください。 これで設定ファイルが検証され、クラスタ内の各ノードにコピーされ、変更されたcluster.confに従って各ノードが設定されます。

  9. cluster.confにgit-server = trueと設定されているノードをオフラインにするなら、ノードからの退避を行ってください。 詳しい情報については"クラスタノードからの退避"を参照してください。