Skip to main content

コマンド ライン ユーティリティ

GitHub Enterprise Server には、特定の問題を解決したり特定のタスクを実行するのに役立つさまざまなユーティリティが搭載されています。

SSH 管理ユーザーとしてサインインした後では、VM 上のどこからでもこれらのコマンドを実行できます。 詳しくは、「管理シェル (SSH) にアクセスする」を参照してください。

全般

ghe-announce

このユーティリティは、あらゆる GitHub Enterprise ページの上部にバナーを設定します。 これを使用すればユーザーにメッセージを配信することができます。

# Sets a message that's visible to everyone
$ ghe-announce -s MESSAGE
> Announcement message set.
# Removes a previously set message
$ ghe-announce -u
> Removed the announcement message

各ユーザーが自分に対する通知を無視できるようにするには、-d フラグを使います。

# Sets a user-dismissible message that's visible to everyone
$ ghe-announce -d -s MESSAGE
> Announcement message set.
# Removes a previously set message
$ ghe-announce -u
> Removed the announcement message, which was user 
> dismissible: MESSAGE

GitHub Enterprise Server のエンタープライズ設定を使用して、お知らせバナーを設定することもできます。 詳しくは、「Enterprise のユーザメッセージをカスタマイズする」を参照してください。

ghe-aqueduct

このユーティリティは、アクティブなものとキュー内にあるもの両方のバックグラウンドジョブに関する情報を表示します。 これは、すべてのページの上部にある管理統計バーと同じジョブ数を表示します。

このユーティリティは、Aqueduct サーバーでバックグラウンド ジョブの処理に問題があるかどうかを識別するのに役立ちます。 以下のどのシナリオも Aqueduct の問題を示している可能性があります。

  • 背景のジョブの数が増えていますが、実行中のジョブの数は同じままです。
  • イベントフィードが更新されない。
  • webhook はトリガーされていません。
  • Git プッシュ後、ウェブインタフェースが更新されない。

Aqueduct の故障を懸念している場合は、GitHub Enterprise サポート にアクセスしてください。

このコマンドでは、キューでのジョブ停止または再開をすることができます。

$ ghe-aqueduct status
# lists queues and the number of currently queued jobs
# for all queues
$ ghe-aqueduct queue_depth --queue QUEUE
# lists the number of currently queued jobs for the
# specified queue
$ ghe-aqueduct pause --queue QUEUE
# pauses the specified queue
$ ghe-aqueduct resume --queue QUEUE
# resumes the specified queue

ghe-check-disk-usage

このユーティリティは、大きなファイルがないか、あるいは削除されているがファイルハンドルがまだ開いているファイルがないか、ディスクをチェックします。 これは、ルートパーティションで空き容量を確保しようとしているときに実行してください。

ghe-check-disk-usage

ghe-cleanup-caches

このユーティリティは、ルートボリュームでディスク領域を将来余分に取り過ぎる可能性があるさまざまなキャッシュをクリーンアップします。 ルートボリュームのディスク領域の使用量が時間の経過とともに著しく増加していることがわかった場合は、このユーティリティを実行して全体的な使用量を減らすのに役立つかどうかを確認することをおすすめします。

ghe-cleanup-caches

ghe-cleanup-settings

このユーティリティは、既存の [Management Console] の設定をすべて消去します。

ヒント: 通常、これを実行するのは、サポートに連絡し、サポートからそうするように依頼された場合だけです。

ghe-cleanup-settings

ghe-config

このユーティリティを使用すると、お使いの GitHub Enterprise Server インスタンスの設定を取得して変更することができます。

$ ghe-config core.github-hostname
# Gets the configuration value of `core.github-hostname`
$ ghe-config core.github-hostname URL
# Sets the configuration value of `core.github-hostname` 
# to the specified URL
$ ghe-config -l
# Lists all the configuration values

cluster.conf でノードのユニバーサル一意識別子 (UUID) を見つけることができます。

  ghe-config HOSTNAME.uuid

REST API レート制限からユーザーの一覧を除外できます。 これらのユーザーには、120,000 件の要求のハード制限が引き続き適用されます。 このコマンドに指定するユーザー名では大文字と小文字が区別されます。 詳しくは、「REST API のレート制限」を参照してください。

$ ghe-config app.github.rate-limiting-exempt-users "hubot github-actions[bot]"
# Exempts the users hubot and github-actions[bot] from rate limits.
# Usernames are case-sensitive.

ghe-config-apply

このユーティリティは、[Management Console] の設定の適用や、システムサービスのリロード、アプリケーションサービスのリロード、保留中のデータベースマイグレーションを行います。 これは、[Management Console] の Web UI で [設定の保存] をクリックするか、/setup/api/configure エンドポイントに POST 要求を送信するのと同じです。

手動で実行することはないと思いますが、設定を保存する過程をSSH 経由で自動化したい場合に利用できます。

ghe-config-apply

ghe-console

このユーティリティは、GitHub Enterprise アプライアンスで GitHub Rails コンソールを開きます。 このコマンドは、GitHub Enterprise サポート からの指示がない場合は使用しないでください。 間違った利用は、ダメージやデータの損失を招くことがあります。

ghe-console

ghe-dbconsole

このユーティリティは、GitHub Enterprise アプライアンスで MySQL データベースセッションを開きます。 このコマンドは、GitHub Enterprise サポート からの指示がない場合は使用しないでください。 間違った利用は、ダメージやデータの損失を招くことがあります。

ghe-dbconsole

ghe-es-index-status

このユーティリティは、ElasticSearch のインデックスの概要を CSV フォーマットで表示します。

STDOUT でヘッダー行が付いているインデックスの概要を表示します。

$ ghe-es-index-status -do
> warning: parser/current is loading parser/ruby23, which recognizes
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
> Name,Primary,Searchable,Writable,UpToDate,RepairProgress,Version
> code-search-1,true,true,true,true,100.0,72e27df7c631b45e026b42bfef059328fa040e17
> commits-5,true,true,true,true,100.0,7ed28813100c47813ef654c0ee2bb9abf21ab744
> gists-4,true,true,true,true,100.0,cf8e7d04fcf2564c902e2873c424a279cc41079d
> issues-4,false,false,false,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> issues-5,true,true,true,true,100.0,d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> projects-2,true,true,true,true,100.0,c5cac1c4b3c66d42e609d088d174dbc3dd44469a
> pull-requests-6,true,true,true,true,100.0,6a466ad6b896a3499509990979bf9a18d7d41de3
> repos-6,true,true,true,true,100.0,6c8b5fbba0fc1e409558db411d05e092c1387082
> users-5,true,true,true,true,100.0,38984875552bb826c9ec42999f409cb2e95556eb
> wikis-4,true,true,true,true,100.0,2613dec44bd14e14577803ac1f9e4b7e07a7c234

インデックスの概要を表示し、読みやすくするために結果を column にパイプします。

$ ghe-es-index-status -do | column -ts,
> warning: parser/current is loading parser/ruby23, which recognizes
> warning: 2.3.3-compliant syntax, but you are running 2.3.4.
> warning: please see https://github.com/whitequark/parser#compatibility-with-ruby-mri.
> Name             Primary  Searchable  Writable  UpToDate  RepairProgress  Version
> code-search-1    true     true        true      true      100.0           72e27df7c631b45e026b42bfef059328fa040e17
> commits-5        true     true        true      true      100.0           7ed28813100c47813ef654c0ee2bb9abf21ab744
> gists-4          true     true        true      true      100.0           cf8e7d04fcf2564c902e2873c424a279cc41079d
> issues-4         false    false       false     true      100.0           d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> issues-5         true     true        true      true      100.0           d0bb08f71eebf6e7b070572aa399b185dbdc8a76
> projects-2       true     true        true      true      100.0           c5cac1c4b3c66d42e609d088d174dbc3dd44469a
> pull-requests-6  true     true        true      true      100.0           6a466ad6b896a3499509990979bf9a18d7d41de3
> repos-6          true     true        true      true      100.0           6c8b5fbba0fc1e409558db411d05e092c1387082
> users-5          true     true        true      true      100.0           38984875552bb826c9ec42999f409cb2e95556eb
> wikis-4          true     true        true      true      100.0           2613dec44bd14e14577803ac1f9e4b7e07a7c234

ghe-legacy-github-services-report

このユーティリティは、2018 年 10 月 1 日に廃止予定の統合方式である GitHub サービスを使用しているアプライアンス上のリポジトリを一覧表示します。 アプライアンス上のユーザーは、特定のリポジトリへのプッシュに対する通知を作成するために、GitHub サービスを設定している場合があります。 詳しくは、the GitHub Blog の「GitHub サービスの非推奨化の発表」をご覧ください。 このコマンドの詳細や追加のオプションについては、-h フラグを使用してください。

ghe-legacy-github-services-report

ghe-logs-tail

このユーティリティでは、インストールから関連するすべてのログファイルを末尾に記録できます。 オプションを渡すことでログを特定のセットに制限できます。 追加オプションを確認するには -h フラグを使用してください。

ghe-logs-tail

ghe-maintenance

このユーティリティにより、インストールのメンテナンスモードの状態を制御できます。 これは主に舞台裏で [Management Console] によって使用されるように設計されていますが、直接使用することもできます。 詳しくは、「メンテナンスモードの有効化とスケジューリング」を参照してください。

ghe-maintenance -h

ghe-motd

このユーティリティは、管理者が管理シェルを介してインスタンスにアクセスしたときに表示される今日のメッセージ (MOTD) を再表示します。 出力には、インスタンスの状態の概要が含まれます。

ghe-motd

ghe-nwo

このユーティリティを使って、リポジトリの ID でリポジトリの名前とオーナーを検索することができます。

ghe-nwo REPOSITORY_ID

ghe-org-admin-promote

このコマンドを使用して、アプライアンスでサイトの管理者権限を持つユーザーに Organization のオーナー権限を付与したり、単一の Organization 内の任意の単一ユーザーに Organization のオーナー権限を付与したりします。 ユーザーや Organization を指定する必要があります。 -y フラグを使って確認を回避しない限り、ghe-org-admin-promote コマンドは実行前に常に確認を求めます。

ユーティリティでは以下のオプションを使用できます。

  • -u フラグはユーザー名を指定します。 このフラグを使用して特定ユーザーに Organization のオーナー権限を付与します。 すべてのサイト管理者を指定された組織に昇格させるため、-u フラグを省略します。
  • -o フラグは組織を指定します。 このフラグを使用して特定の Organization でオーナー権限を付与します。 指定されたサイト管理者にすべての組織のオーナー権限を付与するには、-o フラグを省略します。
  • -a のフラグは、すべてのサイト管理者にすべての組織のオーナー権限を与えます。
  • -y フラグは手動の確認を回避します。

このユーティリティは、非サイト管理者をすべての Organization のオーナーに昇格させることはできません。 ghe-user-promote を使用すれば、通常のユーザー アカウントをサイト管理者に昇格させることができます。

特定の Organization の Organization のオーナーの権限を特定のサイト管理者に与える

ghe-org-admin-promote -u USERNAME -o ORGANIZATION

全ての Organization で特定のサイトアドミンに Organizationのオーナー権限を与える

ghe-org-admin-promote -u USERNAME

特定の Organization で全てのサイトアドミンに Organizationのオーナー権限を与える

ghe-org-admin-promote -o ORGANIZATION

全ての Organization で全てのサイトアドミンに Organization のオーナー権限を与える

ghe-org-admin-promote -a

ghe-reactivate-admin-login

このコマンドを使用して、アカウント ロックアウトの後に [Management Console] のロックを直ちに解除します。 お使いの GitHub Enterprise Server インスタンス の認証ポリシーを構成するには、「Configuring rate limits (レート制限を構成する)」をご覧ください。

ghe-reactivate-admin-login

ghe-saml-mapping-csv

このユーティリティを使うとと、管理者は、インスタンスでのユーザーの SAML NameID マッピングを出力または更新できます。 このユーティリティでは、既存のすべてのマッピングが一覧表記されている CSV ファイルを出力できます。 また、結果のファイルを編集し、ユーティリティを使ってファイルから新しいマッピングを割り当てることで、インスタンスでのユーザーのマッピングを更新することもできます。

インスタンスでのすべてのユーザー SAML NameID マッピングの一覧を含む CSV ファイルを出力するには、次のコマンドを実行します。

ghe-saml-mapping-csv -d

デフォルトでは、ユーティリティはファイルを /data/user/tmp に書き込みます。

マッピングを更新する場合は、ユーティリティがファイルに確実にアクセスできるように、ファイルを既定の場所のままにすることをお勧めします。

マッピングの更新を準備するには、ファイルを編集して、必要な変更を行います。 編集した CSV ファイルの新しい値を使ってマッピングを更新した場合の結果を確認するには、ドライ ランを実行します。 /PATH/TO/FILE を編集したファイルへの実際のパスに置き換えて、次のコマンドを実行します。

ghe-saml-mapping-csv -u -n -f /PATH/TO/FILE

インスタンスの SAML マッピングをファイルの新しい値で更新するには、/PATH/TO/FILE を編集したファイルへの実際のパスに置き換えて、次のコマンドを実行します。

ghe-saml-mapping-csv -u -f /PATH/TO/FILE

ghe-service-list

このユーティリティは、アプライアンス に開始または停止された(実行中または待機中)、全てのサービスの一覧を表示します。

$ ghe-service-list

active
  - alambic
  - alive
  - aqueduct-lite
  - authzd
  - babeld
  - codeload
  - consul, process 17114
  - consul-template, process 19493
  - driftwood
  - elasticsearch
  - enterprise-manage-unicorn, process 9359
  - ghe-user-disk, process 2545
  - git-daemon
  - github-env
  - github-gitauth
  - github-resqued
  - github-stream-processors
  - github-timerd
  - github-unicorn
  - gitrpcd
  - governor
  - gpgverify
  - grafana-server, process 19314
  - graphite-web, process 20189
  - hookshot-go
  - kafka-lite
  - kredz
  - lfs-server
  - mail-replies
  - memcached
  - minio
  - mysql
  - nginx
  - nomad, process 19562
  - pages
  - postfix
  - redis
  - spokesd
  - spokes-sweeper
  - svnbridge
  - token-scanning-api
  - token-scanning-backfill-worker
  - token-scanning-hydro-consumer
  - token-scanning-incremental-worker
  - token-scanning-udp-backfill-worker
  - treelights
  - turboscan
  - viewscreen

inactive
  - wireguard

ghe-set-password

このユーティリティを使用すると、認証用の新しい ルート サイト管理者 パスワードを [Management Console] に設定できます。 詳しくは、「管理コンソールへのアクセスの管理」を参照してください。

ghe-set-password

ghe-setup-network

このユーティリティを使用すると、プライマリ ネットワーク インターフェイスを構成できます。

ビジュアル モードを開始するための、ネットワーク設定の構成について説明します。

ghe-setup-network -v

追加オプションを確認するには -h フラグを使用してください。

ghe-ssh-check-host-keys

このユーティリティは、既存の SSH のホストキーを漏洩した SSH ホストキーと比べます。

ghe-ssh-check-host-keys

漏洩したホスト キーが発見された場合、ユーティリティは状態 1 と次のメッセージで終了します。

> One or more of your SSH host keys were found in the blacklist.
> Please reset your host keys using ghe-ssh-roll-host-keys.

漏洩したホスト キーが発見されなかった場合、ユーティリティは状態 0 と次のメッセージで終了します。

> The SSH host keys were not found in the SSH host key blacklist.
> No additional steps are needed/recommended at this time.

ghe-ssh-roll-host-keys

このユーティリティは、SSH のホストキーを廃棄し、新しく作成したキーに置き換えます。

$ sudo ghe-ssh-roll-host-keys
Proceed with rolling SSH host keys? This will delete the
existing keys in /etc/ssh/ssh_host_* and generate new ones. [y/N]

# Press 'Y' to confirm deleting, or use the -y switch to bypass this prompt

> SSH host keys have successfully been rolled.

ghe-ssh-weak-fingerprints

このユーティリティは、GitHub Enterprise のアプライアンスに保存されている脆弱なSSHキーの報告を作成します。 ユーザーのキーを一括アクションとして取り消すことができます。 このユーティリティは弱いシステム キーを報告します。[Management Console] でこのキーを手動で取り消す必要があります。

# Print a report of weak user and system SSH keys
$ ghe-ssh-weak-fingerprints

# Revoke all weak user keys
$ ghe-ssh-weak-fingerprints --revoke

ghe-ssl-acme

このユーティリティでは、 GitHub Enterprise のアプライアンスに Let's Encrypt の証明書をインストールすることができます。 詳しくは、「TLSの設定」を参照してください。

-x フラグを使って、ACME 構成を削除できます。

ghe-ssl-acme -e

ghe-ssl-ca-certificate-install

このユーティリティでは、GitHub Enterprise のサーバーにカスタムルートのCA証明書をインストールできます。 証明書は PEM 形式でなければなりません。 さらに、証明書プロバイダーが 1 つのファイルに複数の CA 証明書を含めている場合は、それらを個別のファイルに分けて ghe-ssl-ca-certificate-install に一度に 1 つずつ渡す必要があります。

S/MIME コミット署名の検証のために証明書チェーンを追加するには、このユーティリティを実行します。 詳しくは、「コミット署名の検証について」を参照してください。

他のサーバーが自己署名 SSL 証明書または必要な CA バンドルがついていない SSL 証明書を使っているため お使いの GitHub Enterprise Server インスタンスがそのサーバーに接続できない場合、このユーティリティを実行します。 これを確認する 1 つの方法は、お使いの GitHub Enterprise Server インスタンスから openssl s_client -connect host:port -verify 0 -CApath /etc/ssl/certs を実行することです。 リモート サーバーの SSL 証明書を確認できたら、SSL-Session が次のように 0 のリターン コードを表示します。

SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: C794EBCC3CBC10F747C9AFC029C03C1048FC99CFC34D13D7444E0F267C58DF4C
    Session-ID-ctx:
    Master-Key: 02A7C47CFD6EEC87D3C710E9DD87390E04EF82DDD7514AE03127D5DC1945FC0CAEFB5395791AEA598667EFA61B9EA8C5
    Key-Arg   : None
    Start Time: 1394581597
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)

反対に、リモート サーバーの SSL 証明書を確認 "できない" 場合は、SSL-Session が 0 ではないリターン コードを表示します。

SSL-Session:
    Protocol  : TLSv1
    Cipher    : AES128-SHA
    Session-ID: 82CB288051A6DB66094C50A69CF1292AEE7E54C6B01B659B98AB336F8C33863E
    Session-ID-ctx:
    Master-Key: 01B025B2F764043A27919A8D1355AAECD8844FF0831B1D664042334790574A6F4025BAB085D4ED71D71AAB3091B849E5
    Key-Arg   : None
    Start Time: 1394581782
    Timeout   : 300 (sec)
    Verify return code: 27 (certificate not trusted)

ユーティリティでは以下のオプションを使用できます:

  • -r フラグにより、CA 証明書をアンインストールできます。
  • -h フラグはさらなる使用情報を表示します。
ghe-ssl-ca-certificate-install -c CERTIFICATE_PATH

構成を適用するには、次のコマンドを実行します。 構成の実行中に、お使いの GitHub Enterprise Server インスタンス 上のサービスが再起動する可能性があり、これによりユーザーに短時間のダウンタイムが発生する場合があります。

Shell
ghe-config-apply

ghe-ssl-certificate-setup

このユーティリティを使用すると、お使いの GitHub Enterprise Server インスタンスの SSL 証明書を更新できます。

このコマンドの詳細や追加のオプションについては、-h フラグを使用してください。

/usr/local/share/enterprise/ghe-ssl-certificate-setup

ghe-ssl-generate-csr

このユーティリティにより、秘密鍵と証明書署名要求 (CSR) を生成できます。これらを商用またはプライベートの認証局と共有することで、インスタンスで使用する有効な証明書を取得できます。 詳しくは、「TLSの設定」を参照してください。

このコマンドの詳細や追加のオプションについては、-h フラグを使用してください。

ghe-ssl-generate-csr

ghe-storage-extend

一部のプラットフォームでは、ユーザボリュームを拡張するためにこのスクリプトが必要です。 詳細については、「ストレージ容量の増加」を参照してください。

ghe-storage-extend

ghe-version

このユーティリティによって、お使いの GitHub Enterprise Server インスタンスのバージョン、プラットフォーム、およびビルドが表示されます。

ghe-version

ghe-webhook-logs

このユーティリティは、管理人がレビューして問題を突き止めるための webhook のデリバリログを表示します。

ghe-webhook-logs

過去 1 日の失敗したフック デリバリーをすべて表示するには:

ghe-webhook-logs -f -a YYYY-MM-DD

日付の形式は、YYYY-MM-DDYYYY-MM-DD HH:MM:SS、または YYYY-MM-DD HH:MM:SS (+/-) HH:M である必要があります。

フックのペイロードの全体や結果、デリバリーの例外を表示するには:

ghe-webhook-logs -g DELIVERY_GUID

クラスタリング

ghe-cluster-balance

このユーティリティを使用すると、クラスターの割り当ての状態を確認してから、問題のある割り当てを再調整することで、クラスター ノード間で割り当ての均等な分散を適用できます。 詳しくは、「クラスター ワークロードの再調整」を参照してください。

バランスを保てるジョブとその関連する割り当て分散のリストを出力するには、次のようにします。

ghe-cluster-balance status

特定のジョブまたはジョブのコンマ区切りリストの割り当て数を出力するには、次のようにします。

ghe-cluster-balance -j JOB

特定のジョブまたはジョブのコンマ区切りリストに対する問題のある割り当てを再調整するには、次のようにします。

ghe-cluster-balance rebalance -j JOB

ghe-cluster-balance rebalance では次のフラグを使用できます。

フラグ説明
-j/--job-names再調整するジョブを指定します。 ジョブ名または名前のコンマ区切りリストが受け入れられます。
-n/--dry-runユーティリティによって実行される Nomad 操作を、実際に実行せずに出力します。 -j/--job-name と共に使用できます。
-y/--yesユーザー プロンプトをスキップします。
w/--workers停止する同時ジョブの最大数を指定し、再割り当てが完了するまで待ちます。 既定値は 4 です。
-t/--timeout停止した割り当てでジョブが置き換えられるまで待つ秒数を指定します。 既定値は 300 秒です。

指定されたシェルの完了スクリプトを出力するには、次のようにします。

ghe-cluster-balance completion

ユーティリティと有効なサブコマンドの簡単な説明を表示するには、次のようにします。

ghe-cluster-balance help

ghe-cluster-maintenance

この ghe-cluster-maintenance ユーティリティを使用すると、クラスター内のすべてのノードのメンテナンス モードを設定または設定解除できます。

$ ghe-cluster-maintenance -h
# Shows options
$ ghe-cluster-maintenance -q
# Queries the current mode
$ ghe-cluster-maintenance -s
# Sets maintenance mode
$ ghe-cluster-maintenance -s "MESSAGE"
# Sets maintenance mode with a custom message
$ ghe-cluster-maintenance -m "MESSAGE"
# Updates the custom message
$ ghe-cluster-maintenance -u
# Unsets maintenance mode

ghe-cluster-status

GitHub Enterprise Server のクラスターデプロイメントでノードとサービスの健全性を確認します。

ghe-cluster-status

ghe-cluster-support-bundle

このユーティリティは、Geo-replication またはクラスタリングのいずれかの構成で、各ノードからの重要なログを含む Support Bundle tarball を作成します。

既定では、コマンドは /tmp に tarball を作成しますが、SSH 経由で簡単にストリーミングできるように tarball を STDOUTcat させることもできます。 これは、Web UI が反応していないか、 /setup/support からサポート バンドルをダウンロードできないときに役立ちます。 より古いログを含む "拡張" バンドルを生成するときにこのコマンドを使う必要があります。 さらに、このコマンドを使って GitHub Enterprise のサポートにクラスタリングSupport Bundle を直接アップロードすることができます。

標準のバンドルを作成するには、以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -o' > cluster-support-bundle.tgz

過去 2 日間のデータを含む標準バンドルを作成するには

ssh -p 122 admin@HOSTNAME -- "ghe-cluster-support-bundle -p 2days  -o" > support-bundle.tgz

過去 8 日間のデータを含む拡張バンドルを作成するには

ssh -p 122 admin@HOSTNAME -- ghe-cluster-support-bundle -x -o' > cluster-support-bundle.tgz

バンドルをGitHub Supportに送信するには、以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -u'

バンドルをGitHub Supportに送信し、そのバンドルをチケットに関連づけるには以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-cluster-support-bundle -t TICKET_ID'

ghe-dpages

このユーティリティを使えば、分散GitHub Pagesサーバーを管理できます。

ghe-dpages

リポジトリの場所と健全性の概要を表示するには、以下のようにします。

ghe-dpages status

クラスタノードの退避に先立ってGitHub Pagesストレージサービスを退避するには、以下のようにします。

ghe-dpages evacuate pages-server-UUID

ghe-spokesctl

このユーティリティでは、分散型 Git サーバーにあるリポジトリのレプリケーションを管理することができます。

ghe-spokesctl

リポジトリが格納されているサーバーを表示するには、次のようにします。

ghe-spokesctl routes

クラスタノード上のストレージサービスを退避するには、以下のようにします。

ghe-spokesctl server set evacuating git-server-UUID

ghe-storage

このユーティリティを使用すると、クラスタノードからの待避の前にストレージサービスをすべて待避させることができます。

ghe-storage evacuate storage-server-UUID

nes

このユーティリティを使用すると、Node Eligibility Service を使ってクラスター ノードの正常性を監視できます。 既定では、Node Eligibility Service は無効になっています。 詳しくは、「ノード適格性サービスを使用したクラスター ノードの正常性の監視」を参照してください。

クラスターのノードの正常性を表示するには、次のようにします。

nes get-cluster-health

TTL 設定を確認するには、次のようにします。

nes get-node-ttl all

fail 状態の TTL を分単位で設定するには、次のようにします。

nes set-node-ttl fail MINUTES

fail 状態の TTL は、warn 状態の TTL よりも大きくする必要があります。

warn 状態の TTL を分単位で設定するには、次のようにします。

nes set-node-ttl warn TIME

ホスト名が HOSTNAME のノードがオフラインになったときに、Node Eligibility Service で管理アクションを実行できるかどうかを確認するには、次のようにします。

nes get-node-adminaction HOSTNAME

ホスト名が HOSTNAME のノードがオフラインになったときに、Node Eligibility Service で自動的に管理アクションを実行できるようにするには、次のようにします。

nes set-node-adminaction approved HOSTNAME

ホスト名が HOSTNAME のノードをオフラインにする Node Eligibility Service の機能を取り消すには、次のようにします。

nes set-node-adminaction approved HOSTNAME

クラスターに再追加するためのノードの適格性を手動で更新するには、次のようにします。

nes set-node-eligibility eligible HOSTNAME

Git

ghe-btop

現在の Git 作業用の top にあたるインターフェイス。

ghe-btop [ <port number> | --help | --usage ]

ghe-governor

このユーティリティは、Git トラフィックの分析に役立ちます。 これは、/data/user/gitmon 下にある "ガバナー" データ ファイルに対してクエリを実行します。 GitHub は、ファイルごとに 1 時間のデータを持ち、2 週間保持します。 詳しくは、GitHub Community のガバナーを使用した Git トラフィックの分析に関する記事を参照してください。

ghe-governor <subcommand> <column> [options]
ghe-governor -h
Usage: ghe-governor [-h] <subcommand> args

OPTIONS:
  -h | --help        Show this message.

Valid subcommands are:
  aggregate              Find the top (n) groups of queries for a grouping function and metric
  health                 Summarize all recent activity on one or more servers
  top                    Find the top (n) queries for a given metric
  dump                   Dump individual operations
  test-quotas            Check quota information

Try ghe-governor <subcommand> --help for more information on the arguments each subcommand takes.

ghe-repo

このユーティリティでは、リポジトリのディレクトリを変更し、git ユーザーとしてインタラクティブ シェルを開くことができます。 git-*git-nw-* などのコマンドを使って、手動でリポジトリの検査またはメンテナンスを行うことができます。

ghe-repo USERNAME/REPONAME

ghe-repo-gc

このユーティリティは、パックの容量を最適化するために、手動的にリポジトリのネットワークをリパックします。 大きなリポジトリの場合、このコマンドを実行するとリポジトリの全体的なサイズを減らすことができます。 リポジトリのネットワークとの対話を通じて、GitHub Enterprise がこのコマンドを自動的に実行します。

省略可能な --prune 引数を追加して、ブランチ、タグ、またはその他の ref から参照されていない到達できない Git オブジェクトを削除できます。これは、以前に削除された機密情報を直ちに削除する場合に特に便利です。

ghe-repo-gc USERNAME/REPONAME

GitHub Actions

ghe-actions-check

このユーティリティは、GitHub Actions のすべてのサービスが正常であることを確認します。 詳細については、「GitHub Enterprise Server の GitHub Actions を使い始める」および「Enterprise 向け GitHub Actions のトラブルシューティング」を参照してください。

ghe-actions-check

ghe-actions-precheck

このユーティリティは、お使いの GitHub Enterprise Server インスタンス上の GitHub Actions の BLOB ストレージ構成をテストします。 インスタンスに対して GitHub Actions を有効にする前に、このユーティリティを使用してストレージ構成を確認できます。

GitHub Actions の構成について詳しくは、「GitHub Enterprise Server の GitHub Actions を使い始める」をご覧ください。

注: このユーティリティは、ストレージ プロバイダーへの資格情報ベースの接続を使用する構成でのみ機能します。 OpenID Connect (OIDC) 構成をテストするには、ghe-actions-test-storage-with-oidc を使用します。

ghe-actions-precheck -p [PROVIDER] -cs ["CONNECTION-STRING"]

ストレージ システムが正しく構成されている場合は、次の出力が表示されます。

All Storage tests passed

ghe-actions-test-storage-with-oidc

このユーティリティは、OpenID Connect (OIDC) を使用する場合に、お使いの GitHub Enterprise Server インスタンス 上の GitHub Actions の BLOB ストレージ プロバイダーが有効であることをチェックします。

注: このユーティリティは、OpenID Connect (OIDC) 構成を使用する設定でのみ機能します。 認証情報ベースの構成をテストするには、ghe-actions-precheck を使用します。

ghe-actions-test-storage-with-oidc -p [PROVIDER] -cs ["CONNECTION-STRING"]

ghe-actions-stop

このユーティリティはGitHub Actionsがお使いの GitHub Enterprise Server インスタンス上での実行を停止します。

注:

  • 通常、これを実行するのは、サポートに連絡し、サポートからそうするように依頼された場合だけです。
  • 高可用性構成では、プライマリからこのコマンドを実行します。

ghe-actions-start

このユーティリティは、以前に停止した後、お使いの GitHub Enterprise Server インスタンス で GitHub Actions を起動します。

注:

  • 通常、これを実行するのは、サポートに連絡し、サポートからそうするように依頼された場合だけです。
  • 高可用性構成では、プライマリからこのコマンドを実行します。

システムが正しく構成されている場合は、次の出力が表示されます。

Actions was enabled!

GitHub Packages

ghe-check-blob-connection

このユーティリティは、GitHub Packages の BLOB ストレージ プロバイダーが お使いの GitHub Enterprise Server インスタンス で有効であることをチェックします。

ghe-check-blob-connection --help

以前に接続を設定している場合は、パラメーターを指定せずにコマンドを直接実行することで、テストを実行できます。

ghe-check-blob-connection

システムが正しく構成されている場合は、次の出力が表示されます。

All Storage tests passed

高可用性

ghe-repl-promote

このコマンドにより、既存のレプリカ ノードでのレプリケーションが無効になり、元のプライマリ ノードと同じ設定を使用してレプリカ ノードがプライマリ ノードに変換されます。 すべてのレプリケーション サービスは有効になります。 詳しくは、「レプリカアプライアンスへのフェイルオーバーの開始」を参照してください。

レプリカを昇格させても、既存のアプライアンスのためのレプリケーションは自動的にセットアップされません。 レプリカを昇格させたあと、希望する場合には新しいプライマリから既存のアプライアンス及び以前のプライマリへのレプリケーションをセットアップできます。

ghe-repl-promote

ghe-repl-setup

既存のノードでこのユーティリティを実行して、高可用性構成の有効化を開始します。 このユーティリティでは、ghe-repl-start でレプリケーションを開始する前に、ノードがスタンバイ モードになります。 詳しくは、「High Availabilityレプリカの作成」を参照してください。

ユーティリティを実行した後、ノードで次の構成が行われます。

  • 2 つのノード間の通信のために、暗号化された WireGuard VPN トンネルが確立されます。
  • レプリケーションのためのデータベースサービスが設定され、起動されます。
  • アプリケーションサービスは無効化されます。 HTTP または HTTPS、Git、あるいはその他のサポートされているプロトコル経由でレプリカ ノードにアクセスしようとすると、"レプリケーション モードのサーバー" メッセージ、メンテナンス ページ、またはエラー メッセージが表示されます。

このユーティリティを実行するときは、PRIMARY-NODE-IP をインスタンスのプライマリ ノードの IP アドレスに置き換えます。

ghe-repl-setup PRIMARY-NODE-IP

ghe-repl-start

このユーティリティによって、ノード上のすべてのデータストアのレプリケーションが開始されます。 ghe-repl-setup を実行した後、このユーティリティを実行します。 詳しくは、「High Availabilityレプリカの作成」を参照してください。

ghe-repl-start

ghe-repl-status

このユーティリティによって、ノード上のレプリケーションの状態が表示され、各データストアのレプリケーション ストリームに対して OKWARNING または CRITICAL 状態が返されます。 詳しくは、「High Availability 設定の監視」を参照してください。

  • レプリケーション チャネルのいずれかが WARNING 状態の場合、コマンドはコード 1 で終了します。
  • レプリケーションを開始していない場合、コマンドはコード 1で終了します。
  • チャネルのいずれかが CRITICAL 状態の場合、コマンドはコード 2 で終了します。
  • 出力は、Nagios の check_by_ssh プラグインの期待に準拠しています。 詳しくは、公式の Nagios プラグイン ページの check_by_ssh プラグインに関する記述を参照してください。
ghe-repl-status

-v および -vv オプションでは、各データストアのレプリケーション状態の追加の詳細が提供されます。

ghe-repl-status -v

ghe-repl-stop

このコマンドにより、既存のレプリカ ノード上のすべてのデータストアのレプリケーションが一時的に無効にされます。 すべてのレプリケーション サービスが停止します。 レプリケーションを再開するには、ghe-repl-start を使用します。

ghe-repl-stop

ghe-repl-teardown

このユーティリティにより、既存のレプリカ ノードでのレプリケーションが完全に無効にされ、レプリカ構成が削除されます。 レプリカ ノードから次のコマンドを実行できますが、レプリカ ノードに到達できない場合は、プライマリ ノードからコマンドを実行することもできます。

ghe-repl-teardown

インポートとエクスポート

ghe-migrator

ghe-migrator は、ある GitHub インスタンスから他に移行するために役立つハイファイ ツールです。 インスタンスを統合、もしくは Organization やユーザー、Team、リポジトリをGitHub.comから GitHub Enterprise に移行することができます。

詳細については、「エンタープライズ間のデータ移行について」のガイドを参照してください。

git-import-detect

URL が与えられたら、どのタイプのソース管理システムが相手側にあるのかを検出します。 このことは、手動インポートの間におそらくすでに知られていますが、自動化されたスクリプトでとても役立ちます。

git-import-detect

git-import-hg-raw

このユーティリティは、MercurialのリポジトリをこのGitリポジトリにインポートします。 詳しくは、「管理シェルを使用して他のバージョン コントロール システムからインポートする」を参照してください。

git-import-hg-raw

git-import-svn-raw

このユーティリティはSubversionの履歴とファイルデータをGitのブランチにインポートします。 これはツリーの単純なコピーであり、トランクやブランチの区別を無視します。 詳しくは、「管理シェルを使用して他のバージョン コントロール システムからインポートする」を参照してください。

git-import-svn-raw

git-import-tfs-raw

このユーティリティは、Team Foundation Version Control (TFVC) からインポートします。 詳しくは、「管理シェルを使用して他のバージョン コントロール システムからインポートする」を参照してください。

git-import-tfs-raw

git-import-rewrite

このユーティリティは、インポートされたリポジトリを書き直します。 これにより、作者名を変更したり、Subversion および TFVC では、フォルダーに基づいて Git ブランチを生成したりすることができます。 詳しくは、「管理シェルを使用して他のバージョン コントロール システムからインポートする」を参照してください。

git-import-rewrite

セキュリティ

ghe-find-insecure-git-operations

このユーティリティでは、インスタンスのログを検索し、DSA、RSA-SHA-1、HMAC-SHA-1、CBC 暗号などの安全でないアルゴリズムやハッシュ関数を使用する SSH 経由の Git 操作を特定します。 その出力を使用して、より安全な SSH 接続への各クライアントの移行をサポートできます。 詳細については、the GitHub Blog と「インスタンスへの SSH 接続の構成」を参照してください。

ghe-find-insecure-git-operations

サポート

ghe-diagnostics

このユーティリティは、さまざまな確認を行うとともに、インストールについての情報を集めます。この情報は、サポートチームが問題の診断に役立てるために、送信することができます。

現在のところ、このユーティリティの出力は、[Management Console] で診断情報をダウンロードすることに似ていますが、時間の経過とともに、Web UI では利用できない改善がさらに追加されている可能性があります。 詳しくは、「GitHub Support へのデータの提供」を参照してください。

ghe-diagnostics

ghe-support-bundle

注: お使いの GitHub Enterprise Server インスタンス が geo レプリケーション構成内にあるかインスタンスがクラスターの場合、サポートバンドルを取得するには ghe-cluster-support-bundle コマンドを使う必要があります。 詳しくは、「コマンド ライン ユーティリティ」を参照してください。

このユーティリティは、インスタンスからの重要なログを含むサポート バンドルの tarball を作成します。

既定では、コマンドは /tmp に tarball を作成しますが、SSH 経由で簡単にストリーミングできるように tarball を STDOUTcat させることもできます。 これは、Web UI が反応していないか、 /setup/support からサポート バンドルをダウンロードできないときに役立ちます。 より古いログを含む "拡張" バンドルを生成するときにこのコマンドを使う必要があります。 さらに、このコマンドを使って GitHub Enterprise のサポートに Support Bundle を直接アップロードすることができます。

標準のバンドルを作成するには、以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -o' > support-bundle.tgz

過去 2 日間のデータを含む標準バンドルを作成するには

ssh -p 122 admin@HOSTNAME -- "ghe-support-bundle -p 2days  -o" > support-bundle.tgz

過去 8 日間のデータを含む拡張バンドルを作成するには

ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -x -o' > support-bundle.tgz

バンドルをGitHub Supportに送信するには、以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -u'

バンドルをGitHub Supportに送信し、そのバンドルをチケットに関連づけるには以下のようにします。

ssh -p 122 admin@HOSTNAME -- 'ghe-support-bundle -t TICKET_ID'

ghe-support-upload

このユーティリティは、アプライアンスから GitHub Enterprise サポートに情報を送信します。 ローカル ファイルを指定、または STDIN 経由で最大 100MB までのストリームを提供することができます。 アップロードされたデータは任意でサポートチケットと関連付けることができます。

ファイルをGitHub Supportに送信し、そのファイルをチケットに関連づけるには以下のようにします。

ghe-support-upload -f FILE_PATH -t TICKET_ID

STDIN 経由でデータをアップロードし、そのデータをチケットに関連付けるには以下のようにします。

ghe-repl-status -vv | ghe-support-upload -t TICKET_ID -d "Verbose Replication Status"

この例では、ghe-repl-status -vv はレプリカ アプライアンスから詳細な状態情報を送信します。 ghe-repl-status -vvSTDIN にストリームする特定のデータに置き換え、Verbose Replication Status をデータの簡単な説明に置き換える必要があります。 通常、これを実行するのは、サポートに連絡し、サポートからそうするように依頼された場合だけです。

GitHub Enterprise Server のアップグレード

ghe-チェック-background-upgrade-jobs

機能リリースへのアップグレード中に、このユーティリティによって お使いの GitHub Enterprise Server インスタンス 上のバックグラウンド ジョブの状態が表示されます。 バックツーバック アップグレードを実行している場合は、次のアップグレードに進む前に、このユーティリティを使用して、すべてのバックグラウンド ジョブが完了したことをチェックする必要があります。

注: GitHub Enterprise Server 3.10 ghe-check-background-upgrade-jobs とともに使用するには、インスタンスはバージョン 3.10 を実行する必要があります。4 以降。

ghe-check-background-upgrade-jobs

ghe-migrations

機能リリースへのアップグレード中に、このユーティリティによって お使いの GitHub Enterprise Server インスタンス 上のアクティブなデータベース移行の状態が表示されます。 出力には、移行のバージョン識別子、移行の名前、移行の状態、および移行の現在の期間が含まれます。

移行のリストを表示するには、次のようにします。

ghe-migrations

既定では、ユーティリティによって 10 行のテーブルが出力されます。 テーブルの高さを行単位で調整するには、次のようにします。

ghe-migrations -height LINES

既定では、ビジュアライザーは 1 秒ごとに更新されます。 ビジュアライザーを更新する期間を秒単位で指定するには、次のようにします。

ghe-migrations -refresh_rate SECONDS

ghe-update-check

このユーティリティは、GitHub Enterprise の新規パッチのリリースがあるかどうかを確認します。 リリースが存在する場合、インスタンスに十分な容量があればパッケージをダウンロードします。 デフォルトでは、 /var/lib/ghe-updates に保存されます。 次に、管理者はアップグレードを実行できます。

/var/lib/ghe-updates/ghe-update-check.status にダウンロードの状態を含むファイルがあります。

-i のスイッチを使って、GitHub Enterprise の最新リリースを確認することができます。

ssh -p 122 admin@HOSTNAME -- 'ghe-update-check'

ghe-upgrade

このユーティリティは、アップグレードパッケージをインストール、または確認します。 アップグレードが失敗した場合や中断された場合は、このユーティリティを使用してパッチリリースをロールバックすることもできます。 詳しくは、「GitHub Enterprise Server をアップグレードする」を参照してください。

アップグレードパッケージを確認するには以下のようにします。

ghe-upgrade --verify UPGRADE-PACKAGE-FILENAME

アップグレードパッケージをインストールするには以下のようにします。

ghe-upgrade UPGRADE-PACKAGE-FILENAME

アップグレードをロールバックする場合は、拡張子が .pkg のアップグレード パッケージ ファイルを使用する必要があります。 拡張子が .hpkg のホットパッチ パッケージ ファイルはサポートされていません。

ghe-upgrade --allow-patch-rollback EARLIER-RELEASE-UPGRADE-PACKAGE.pkg

このコマンドの実行後には再起動が必要です。 パッチリリースでは移行は行われないので、ロールバックはデータパーティションには影響しません。

ghe-upgrade-scheduler

このユーティリティは、アップグレードパッケージの定期的なインストールを管理します。 定期的なインストールを表示、新規作成、削除することができます。 クーロン表現を使って、スケジュールを作る必要があります。 詳細については、「Wikipedia の Cron のエントリ」を参照してください。

ghe-upgrade-scheduler ユーティリティは、ほとんどの場合にメンテナンス モードや再起動を必要としないホットパッチ アップグレードのスケジュール設定に最適です。 このユーティリティは、管理者が手動でメンテナンス モードを設定し、インスタンスを再起動して、メンテナンス モードを設定解除する必要がある、パッケージの完全アップグレードには適していません。 さまざまなアップグレードの種類について詳しくは、「GitHub Enterprise Server をアップグレードする」をご覧ください。

パッケージの新しいインストールをスケジュールするには以下のようにします。

ghe-upgrade-scheduler -c "0 2 15 12 *" UPGRADE-PACKAGE-FILENAME

パッケージのスケジュールされたインストールを表示するには以下のようにします。

$ ghe-upgrade-scheduler -s UPGRADE PACKAGE FILENAME
> 0 2 15 12 * /usr/local/bin/ghe-upgrade -y -s UPGRADE-PACKAGE-FILENAME > /data/user/common/UPGRADE-PACKAGE-FILENAME.log 2>&1

パッケージのスケジュールされたインストールを削除するには以下のようにします。

ghe-upgrade-scheduler -r UPGRADE PACKAGE FILENAME

[ユーザー管理]

ghe-license-usage

このユーティリティは、インストールのユーザーのリストを JSON 形式でエクスポートします。 インスタンスが GitHub Enterprise Cloud に接続されている場合、GitHub Enterprise Server はこの情報を使用してライセンス情報を GitHub Enterprise Cloud に報告します。 詳しくは、「GitHub Connect の管理」を参照してください。

デフォルトでは、結果の JSON ファイル内のユーザーのリストは暗号化されます。 その他の -h オプションには フラグを使用します。

ghe-license-usage

ghe-org-membership-update

このユーティリティは、インスタンスでメンバー全員に対して、デフォルトの Organization メンバーシップの可視性の設定を必須化します。 詳しくは、「Organizationのメンバーシップの可視性の設定」を参照してください。 オプション設定は publicprivate です。

ghe-org-membership-update --visibility=SETTING

ghe-user-csv

このユーティリティは、インストール内のすべてのユーザーのリストを CSV 形式でエクスポートします。 CSV ファイルにはメール アドレス、ユーザーの種類 (たとえば、管理者やユーザーなど)、所有しているリポジトリの数、SSH キーの数、組織のメンバーの数、最後にログインしたときの IP アドレスなどが含まれています。その他のオプションには -h フラグを使用します。

ghe-user-csv -o > users.csv

ghe-user-demote

このユーティリティは、指定のユーザーをアドミンステータスから一般ユーザーのステータスに変更します。 このアクションは、Web UI を使って行うことをおすすめします。このユーティリティを提供しているのは、誤って ghe-user-promote ユーティリティを実行してしまった場合に、CLI から再度ユーザーを降格させるためです。

ghe-user-demote USERNAME

ghe-user-promote

このユーティリティは、指定したユーザー アカウントをサイト管理人に変更します。

ghe-user-promote USERNAME

ghe-user-suspend

このユーティリティは、指定したユーザーのアカウントを停止して、ログインやプッシュ、リポジトリからのプルを行えないようにします。

ghe-user-suspend USERNAME

ghe-user-unsuspend

このユーティリティは、指定したユーザーの停止状態を解除して、ログインやプッシュ、リポジトリからプルを行えるようにします。

ghe-user-unsuspend USERNAME