このバージョンの GitHub Enterprise はこの日付をもって終了となりました: 2021-06-09. 重大なセキュリティの問題に対してであっても、パッチリリースは作成されません。 パフォーマンスの向上、セキュリティの改善、新機能のためには、最新バージョンの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. プライマリのMySQLもしくはRedisノードを置き換えようとしているなら、cluster.confmysql-masterもしくはredis-masterの値を置き換えるノード名に変更してください。

    たとえば、以下の変更されたcluster.confファイルは新しくプロビジョニングされたノードのghe-replacement-data-node-1をプライマリのMySQL及びRedisノードとして指定しています。

    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. プライマリのMySQLもしくはRedisノードを置き換えようとしているなら、cluster.confmysql-masterもしくはredis-masterの値を置き換えるノード名に変更してください。

    たとえば、以下の変更されたcluster.confファイルは新しくプロビジョニングされたノードのghe-replacement-data-node-1をプライマリのMySQL及びRedisノードとして指定しています。

    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と設定されているノードをオフラインにするなら、ノードからの退避を行ってください。 詳しい情報については"クラスタノードからの退避"を参照してください。

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

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