CircleCI Server v3.x プロキシの設定

セキュリティ要件に応じて、CircleCI サーバーをプロキシ経由でインストールすることも可能です。 プロキシ経由で設定することにより、設置場所とインターネット全体のアクセスを監視・制御することができます。

インストールと設定

プロキシ経由で CircleCI サーバーをインストールするには、2つの手順があります。 まずインストールをする際に、プロキシアドレスとプロキシの後ろにあってはいけないアドレスを指定する必要があります。

プロキシ経由でのインストール

設定方法の詳細は、https://circleci.com/docs/2.0/server-3-install/[[CircleCI Server v3.x インストールガイド]]を参照してください。 プロキシアドレスと非プロキシアドレスのどちらも、 こちらで説明されている引数を使用する必要があります インストールコマンドは、次のような形式で指定します。

kubectl kots install circleci-server --http-proxy <my-http-proxy-uri> --https-proxy <my-https-proxy> --no-proxy <my-no-proxy-list>

プロキシの設定

サーバーをインストールし、管理コンソールにアクセスできるようになったら、以下のスクリーンショットで示すように、設定セクションで入力しなければならない項目があります。 これらのフィールドは自動的には入力されないので、インストール時に入力したプロキシアドレスと非プロキシアドレスをご自身で入力する必要があります。 プロキシがユーザー名とパスワードによる認証を必要とする場合は、「HTTP Proxy authenticated」オプションにチェックを入れ、この時点で認証情報を追加します。

Screenshot showing settings available to configure a proxy
Figure 1. CircleCI Server v3.x プロキシの設定

既知の制限

  • プロキシ経由でインストールすると、 CircleCI ランナーが使えなくなります。

  • プロキシ経由でインストールすると、Orb をインポートするための設定が追加で必要になります。 詳しくは、 サーバーの Orb ドキュメントをご覧ください。

  • JVM は、HTTPS ではなく、HTTP で実行されるプロキシのみを受け入れます。そのため、プロキシの URI は、 `https://user:password@host:port`ではなく、 `http://user:password@host:port`という形式でなければなりません。

  • GitHub インスタンスがプロキシ環境(GitHub.com または GitHub Enteriprise)の外で動作している場合は、追加の設定をしなくても CircleCI アプリケーション(Kubernetes クラスタ内)と Nomad ノードからの SSH トラフィックがインスタンスにアクセスできるようにしなければなりません。 CircleCI の SSH エージェントは、異なるネットワークプロトコルを使用しているため、プロキシの設定に従いません。 プロキシがプロキシ環境の外にアクセスする唯一の手段である場合は、SSHトラフィックがブロックされ、アプリケーションが失敗します。

  • ロードバランサーのエンドポイントを、output processor と `vm-service`の非プロキシリストに追加する必要があります。 これは、非プロキシリストがアプリケーションとビルドエージェントの間で共有されているためです。 アプリケーションとビルドエージェントは同じファイアウォール内にあると想定されているため、両者の間にプロキシを介在させることはできません。

  • プロキシ設定がされていると、KOTS 管理者コンソールのアップグレードができません。 プロキシ設定が削除され、KOTS 管理者コンソールが壊れる原因になります。

  • プロキシを設定した VM サービスでは、カスタムイメージが必要になることがよくあります。 (詳細および過去の設定例については、別途お問合せください。)

  • オブジェクトストレージがプロキシの外にある場合、オブジェクトストレージを使用するジョブ機能は動作しません。 それには以下が含まれます。

    • アーティファクト

    • テスト結果

    • キャッシュの保存と復元

    • ワークスペース

      以下のようにジョブに環境変数を設定することで、この問題を回避することができます。

      jobname:
        docker:
        - image: ubuntu:latest
          environment:
            HTTP_PROXY: http://proxy.example.com:3128
            HTTPS_PROXY: http://proxy.example.com:3128
            NO_PROXY: whatever.internal,10.0.1.2
      適切なサービスに伝播できるのはこの場所からのみであるため、環境変数の設定をこの場所で行うことが大変重要です。


ドキュメントの改善にご協力ください

このガイドは、CircleCI の他のドキュメントと同様にオープンソースで、GitHub で使用できます。 ご協力いただき、ありがとうございます。


クリエイティブ・コモンズ・ライセンス
CircleCICircleCI ドキュメントは、クリエイティブ・コモンズの表示--非営利-継承 4.0 国際ライセンス に基づいてライセンス供与されています。