Skip to main content

Enterprise Server 3.20 は、現在リリース候補として使用できます。

ランナーでのプロキシサーバの使用

GitHub との安全な通信にプロキシ サーバーを使用するように、分離環境のランナーを構成できます。

メモ

GitHub ホステッド ランナーは、現在 GitHub Enterprise Server ではサポートされていません。

Linux および Windows ランナー用のプロキシの構成

ランナーがプロキシ サーバー経由で通信する必要がある場合は、環境変数またはシステム レベルの構成を使用してプロキシ設定を構成できます。

VariableDescriptionExample
https_proxyHTTPS トラフィックのプロキシ URL。 必要に応じて基本認証を含めることができます。http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
http_proxyHTTP トラフィックのプロキシ URL。 必要に応じて基本認証を含めることができます。http://proxy.local
http://192.168.1.1:8080
http://username:password@proxy.local
no_proxyプロキシをバイパスするホストまたは IP アドレスのコンマ区切りの一覧。 一部のクライアントでは、ホスト名ではなく IP に直接接続する場合にのみ IP アドレスが優先されます。example.com
example.com,myserver.local:443,example.org

プロキシ環境変数はランナー アプリケーションの起動時に読み取られます。そのため、ランナー アプリケーションを構成または開始する前に環境変数を設定する必要があります。 プロキシ構成が変更された場合は、ランナー アプリケーションを再起動する必要があります。

Windows マシンでは、プロキシ環境変数の名前では大文字と小文字が区別されません。 Linux及びmacOSマシンで、環境変数はすべて小文字にすることをおすすめします。 Linux または macOS 上で、https_proxyHTTPS_PROXY のように、小文字と大文字の両方の環境変数がある場合、セルフホステッド ランナー アプリケーションには小文字の環境変数が使用されます。

セルフホステッド ランナーと GitHub 間の接続は、HTTP (ポート 80) または HTTPS (ポート 443) を経由します。 HTTPS 経由で確実に接続を行うには、GitHub Enterprise Server に対して TLS を構成します。 詳細については、「TLSの設定」を参照してください。

構成例

メモ

問題を避けるには、使っているオペレーティング システムとシェルの動作に関係なく、環境変数を大文字と小文字を区別するものとして扱うことをお勧めします。

Linux と macOS

ランナーのプロキシ環境変数を設定します。

Shell
export https_proxy=http://proxy.local:8080
export http_proxy=http://proxy.local:8080
export no_proxy=example.com,localhost,127.0.0.1

ウィンドウズ

Windows では、環境変数を設定するか 、netsh コマンドを使用してプロキシ設定を構成できます。 netsh アプローチは、WinHTTP API に依存するアプリケーションとサービスに適用されます。

プライベート ネットワークを使用するランナーには、環境変数を設定する必要があります。 netsh も構成する必要があるかどうかは、ワークフローで使用されるアプリケーションによって異なります。

Shell
netsh winhttp set advproxy setting-scope=machine settings={\"Proxy\":\"proxy.local:8080\",\"ProxyBypass\":\"168.63.129.16;169.254.169.254\",\"AutoconfigUrl\":\"\",\"AutoDetect\":false} 

カスタム イメージの生成中にこれを構成するときは、 setting-scope=machine を使用して、再起動後と VM イメージング中にプロキシ設定が保持されるようにします。

プロキシ設定を永続的にする

カスタム イメージの生成中にこれらの環境変数を設定する場合は、再起動またはイメージの再構築の間に構成が保持されるようにします。

Linux と macOS

          `/etc/environment`に変数を書き込みます。
 echo 'http_proxy=http://proxy.local' >> /etc/environment

ウィンドウズ

システム全体の環境変数を設定します。

Shell
[Environment]::SetEnvironmentVariable("http_proxy", "http://proxy.local", "Machine")

Azure ランナー向けプロキシの設定

ランナーが Azure でホストされている場合(セルフホステッド ランナーまたはプライベート ネットワークでデプロイされた GitHub ホスト型の大規模ランナー)、ネットワーク分離を維持しながら GitHub サービスへの送信接続を許可するようにプロキシを構成することが必要になる場合があります。

ランナーが必要な Azure サービスにアクセスできるように、Azure メタデータと管理 IP を no_proxy リストに追加する必要があります。 これらのエンドポイントを使用すると、Azure VM は、適切な操作に必要な構成と ID 情報を取得できます。

2 つの Azure IP は次のとおりです。

.envファイルを使用したプロキシ設定

メモ

          `.env` ファイルを使用してプロキシ構成を設定することは、GitHub でホストされているランナーでは実行できません。

セルフホステッド ランナーでは、セルフホステッド ランナー アプリケーション ディレクトリ (ランナー ソフトウェアをダウンロードしてアンパックしたディレクトリ) の .env ファイルに変数を追加することで、プロキシ設定を構成できます。 この方法は、ランナーがシステム アカウントでサービスとして実行するように構成されている場合に便利です。 ランナーが起動すると、プロキシ構成の .env に設定された変数が読み取られます。

.envリバース プロキシの構成

Shell
https_proxy=http://proxy.local:8080
no_proxy=example.com,myserver.local:443

Dockerコンテナのプロキシ設定を行う

ワークフロー中でDockerコンテナアクションやサービスコンテナを使うなら、上記の環境変数の設定に加えて、プロキシサーバーを使うようDockerも設定しなければならないかもしれません。

必要な Docker 構成の詳細については、Docker ドキュメントの「Configure Docker to use a proxy server」(プロキシ サーバーを使うように Docker を構成する) を参照してください。