無料でビルドを開始
CircleCI.comアカデミーブログコミュニティサポート

フェーズ 3 - CircleCI Server のインストール

10 months ago1 min read
Server v4.1
サーバー管理者
このページの内容

前提条件のインストールとオブジェクトストレージの構成が完了したら、エアギャップ環境内の Kubernetes クラスタに Helm デプロイ版の CircleCI Server をインストールできます。

1. values.yaml の用意

通常版インストールガイドの「 Helm 値を作成します」に従って、CircleCI Server をインストールするための values.yaml を用意する必要があります。 このファイルを用意できたら、以下の手順に従ってエアギャップ環境へのインストール用にフィールドを変更してください。

a. グローバル値を設定する

values.yaml ファイルの global.container セクションを以下のように変更します。

  • domainName の値をインストール環境の内部ドメイン名に設定する

  • container.org の値を circleci に設定する

  • container.registry の値をインスタンスの内部レジストリのホスト名に設定する (デフォルトと異なるポートを使用する場合はポートも設定する)

global:
  ...
  domainName: "server.internal.example.com"
  container:
    registry: "docker.internal.example.com:5000"
    org: "<image-registry-org>"

b. GitHub Enterprise を設定する

values.yaml ファイルの github セクションで、使用する GitHub Enterprise インスタンスにあわせて設定を変更します。

hostname 値は GitHub Enterprise インスタンスの内部ホスト名に設定します。 enterprise 値は true に設定します。

GitHub Enterprise インスタンスで TLS および自己署名証明書を使用しない場合は、unsafeDisableWebhookSSLVerification: trueselfSignedCert: true を設定してください。

また、GitHub Enterprise で OAuth アプリケーションとパーソナルアクセストークンを設定し、下図で示した値を変更してください。 このプロセスの詳細については、 GitHub OAuth アプリケーションの作成手順に関するページを参照してください。

# GitHub Enterprise
github:
  hostname: "github.internal.example.com"
  unsafeDisableWebhookSSLVerification: true # If using self-signed certificates
  enterprise: true
  selfSignedCert: true # If using self-signed certificates
  # These must be generated and added manually from GitHub Enterprise
  clientId: "<<github-enterprise-oauth-app-client-id>>"
  clientSecret: "<<github-enterprise-oauth-app-client-secret>>"
  defaultToken: "<<github-enterprise-personal-application-token>>"

c. MinIO のオブジェクトストレージを設定する

values.yaml ファイルの object_storage セクションに以下の設定を追加し、必要に応じてポート番号を変更します。

object_storage:
  bucketName: circleci-data
  expireAfter: 0
  s3:
    enabled: true
    endpoint: http://<minio-internal-hostname>:9000
    accessKey: <minio-root-user>
    secretKey: <minio-root-password>

d. MinIO のビルドエージェントを設定する

values.yaml ファイルの distributor セクションで、agent_base_urllaunch_agent_base_url の値を、MinIO 内で作成した circleci-data バケットに設定します。

distributor:
  agent_base_url: http://<minio-internal-hostname>:9000/circleci-data/
  launch_agent_base_url: http://<minio-internal-hostname>:9000/circleci-data/

e. Nomad ビルドエージェントイメージを設定する

フェーズ 1 でコピーしたレジストリ内の Nomad ビルドエージェントイメージの場所を指定し、必要に応じてポート番号を変更します。

nomad:
  ...
  buildAgentImage: "<your-internal-registry-hostname>:5000/circleci/picard"

f. VM サービスを無効化する

values.yaml ファイルの vm_service セクションで、enabled の値を false に設定してこのサービスを無効化します。 この機能を使用するには、クラウドへの接続が必要です。

# VM Service Disabled - Requires cloud connectivity
vm_service:
  enabled: false

g. NGINX のアノテーションを追加する

インストール環境に応じて、ロードバランサーをプロビジョニングするための NGINX アノテーションを追加します。 この例では、MetalLB を使用します。 詳細については、「その他の検討事項」の「 K3s の LoadBalancer タイプの Service」セクションを参照してください。

# Additional nginx annotations
nginx:
  annotations:
    # This example uses MetalLB as a k3s load balancer
    metallb.universe.tf/allow-shared-ip: default

2. CircleCI Server のインストール

values.yaml ファイルと Helm チャートの用意が完了したら、エアギャップ環境で Helm の install コマンドを実行して CircleCI Server をインストールします。

推奨手順は、初めに名前空間 (circleci-server) を作成してから、この名前空間にチャートをデプロイすることです。

helm install circleci-server ./circleci-server/ -n <kubernetes-namespace> --version 4.1.1 -f <path-to-values.yaml>

3. インストール後の手順

Helm によるデプロイ後、環境によっては (MetalLB を使用する場合など)、LoadBalancer タイプの circleci-proxy Service に手動でパッチを適用する必要があります。 詳細については、「その他の検討事項」の「 K3s の LoadBalancer タイプの Service」セクションを参照してください。

次のステップ

本ページの手順を完了したら、「 フェーズ 4 - Nomad クライアントの構成」に進んでください。


Suggest an edit to this page

Make a contribution
Learn how to contribute