Start Building for Free
CircleCI.comアカデミーブログコミュニティサポート

CircleCI Server v3.x インストール ステップ 2

7 months ago2 min read
Server v3.x
サーバー管理者
このページの内容

CircleCI Server v3.x のコアサービスのインストールステップを開始する前に、 前提条件 をすべて満たしていることをご確認ください。

Flow chart showing the installation flow for server 3.x with phase 2 highlighted
Figure 1. インストール手順のフローチャート ステップ 2)

ステップ 2: コアサービスのインストール

CircleCI Server v3.x は、 Replicated KOTS を使用してインストールの管理と配布を行います。

  1. 次のコマンドを実行して最小バージョン 1.65.0 の KOTS を実行していることを確認してください。

    kubectl kots version
  2. ターミナルから、以下を実行します(プロキシ内にインストールする場合は、 HTTP プロキシ経由でのインストールを参照してください)。

    kubectl kots install circleci-server

    すると、以下を入力するよう求められます。 * デプロイ先の名前空間 * KOTS 管理者コンソールのパスワード

  3. 完了すると、KOTS 管理者コンソールにアクセスする URL が通知されます (通常は、http://localhost:8800)。

HTTP プロキシ経由でのインストール (オプション)

プロキシ経由で CircleCI Server をインストールするには、上記の 2. で以下のコマンドを使用します (詳細は、 こちら の KOTS 文書をご覧ください)。

kubectl kots install circleci-server --http-proxy <YOUR_HTTP_PROXY_URI> --https-proxy <https-proxy> --no-proxy <YOUR_NO_PROXY_LIST>

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

詳細については、 プロキシの設定 を参照してください。

フロントエンドの設定

フロントエンドの設定により、 CircleCI システムの Web アプリケーション固有の側面が制御されます。

Screenshot showing frontend settings
Figure 2. フロントエンドの設定

以下のフィールドに入力します。

  • Domain Name (ドメイン名)(必須) : フロントエンド TLS キーと証明書を作成した際に指定したドメイン名を入力します。

  • Frontend Replicas (フロントエンドのレプリカ): フロントエンドで処理できるトラフィック量を増やす際に使用します。

  • Frontend TLS Private Key (フロントエンド TLS プライベートキー) (必須): 前提条件のステップで作成したキーです。 この値は以下のコマンドで取得できます。

    cat /etc/letsencrypt/live/<CIRCLECI_SERVER_DOMAIN>/privkey.pem
  • Frontend TLS Certificate (フロントエンド TLS 証明書) (必須): 前提条件のステップで作成した証明書です。 この値は以下のコマンドで取得できます。

    cat /etc/letsencrypt/live/<CIRCLECI_SERVER_DOMAIN>/fullchain.pem
  • Private Load Balancer (プライベートロードバランサー) (オプション): このオプションを設定すると、ロードバランサーは外部 IP アドレスを生成しません。

フロントエンド TLS プライベートキーと証明書については、4つの選択肢があります。

  • プライベートキーと証明書を指定します。

  • Let’s Encrypt が自動的に証明書のリクエストと管理を行えるようにボックスにチェックを入れます。

  • AWS Certificate Manager (ACM) が自動的に証明書のリクエストと管理を行えるようにボックスにチェックを入れます。 ACM の使用に関する詳細は、この後の ACM TLS 証明書の使用 セクションをご覧ください。

  • この時点で TLS ターミナルを無効にすることも可能ですが、HTTPS 経由でアクセスできる必要があります。

ACM TLS 証明書の使用

AWS Certificate Manager (ACM) を使って TLS 証明書を管理する場合は、 ACM のドキュメント の ACM 証明書の生成方法に従ってください。

証明書を作成したら、フロントエンドセクションの KOTS コンソールで ACM を有効にしてください。 ACM のボックスにチェックを入れて、ACM ARN (Amazon Resource Name) を入力します。

暗号化

暗号化キーとアーティファクト署名キーは、前提条件のステップで作成しました。 そのキーをここで入力します。

Screenshot showing encryption settings
Figure 3. 暗号化の設定

以下の項目を入力してください。

  • アーティファクト署名キー (必須)

  • 暗号化署名キー (必須)

GitHub

前提条件のステップで作成した Github OAuth アプリケーションのデータを使って、 以下の作業を行ってください。

Screenshot showing GitHub settings
Figure 4. Github の設定
  • Github Type (Github の種類) (必須) - Cloud または Enterprise (オンプレミス)を選択します。

  • OAuth Client ID (OAuth クライアントID) (必須) - Github が提供する OAuth クライアントIDです。

  • OAuth Client Secret (OAuth クライアントシークレット) (必須) - Github が提供する OAuth クライアントシークレットです。

  • Github Enterprise Fingerprint (Github Enterprise のフィンガープリント) - プロキシを使用する場合に必要です。 ssh-keyscan github.example.com の出力をテキストフィールドに記載します。

オブジェクトストレージ

前提条件のステップで作成したオブジェクトストレージバケットとキーを使って、 プラットフォームに応じて以下の設定を完了してください。

Screenshot showing object storage settings
Figure 5. オブジェクトストレージの設定

S3 互換

  • Storage Bucket Name (ストレージ バケット名) (必須) - CircleCI Server に使用するバケットです。

  • AWS S3 Region (AWS S3 リージョン) (オプション) - プロバイダーが AWS の場合、バケットの AWS リージョンを指定します。 このオプションを設定すると、[S3 Endpoint (S3 エンドポイント)] は無視されます。

  • S3 Endpoint (S3 エンドポイント) (オプション) - S3 ストレージプロバイダーの API エンドポイントを指定します。 プロバイダーが AWS ではない場合は必須です。 このオプションを設定すると、AWS S3 リージョンは無視されます。

  • Storage Object Expiry (ストレージ オブジェクトの有効期限)] (オプション) - テスト結果とアーティファクトを保持する日数を指定します。 有効期限を無効にしてオブジェクトを無期限に保持するには、0 に設定します。

認証

下記のいづれかが必要です。 IAM キーを選択し、以下を指定します。

  • Access Key ID (アクセス キー ID) (必須) - S3 バケットへのアクセス用のアクセス キー ID を指定します。

  • Secret Key (シークレット キー) (必須) - S3 バケットへのアクセス用のシークレットキーを指定します。

  • policy.json (必須) - サーバーの AWS インストールガイド の P. 11 を参照して下さい。

または、IAM ロールを選択し、以下を指定します。

Google Cloud Storage

前提条件のステップで、Google Cloud Storage バケットとサービスアカウントの作成が完了してる必要があります。

  • Storage Bucket Name (ストレージ バケット名) (必須) - CircleCI Server に使用するバケットです。

  • Storage Object Expiry (ストレージ オブジェクトの有効期限)] (必須) - テスト結果とアーティファクトを保持する日数を指定します。 有効期限を無効にしてオブジェクトを無期限に保持するには、0 に設定します。

認証
  • 以下のいづれかを選択します。

    • Service Account JSON (サービス アカウントの JSON) (必須) - バケットへのアクセスに使用する JSON 形式のサービスアカウントキーです。

    • Service Account Email (サービスアカウントのメール)(必須) - Google Workload Identity を使用する場合、サービスアカウントのメール ID を指定します。

次のセクションをスキップします。: Output ProcessorNomadVM Service。 これらについては次のステップで設定します。

Postgres、MongoDB、Vault の設定

既存の Postgres、MongoDB、または Vault インスタンスを使用しない場合は、このセクションをスキップしてください。その場合は、 サービスの外部化に関するドキュメントを参照してください。 CirecleCI Server v3.x では、デフォルトで CircleCI 名前空間内に独自の Postgres、MongoDB、および Vault インスタンスを作成します。 CircleCI 名前空間内のインスタンスは、CircleCI のバックアップおよび復元プロセスに含まれます。

保存とデプロイ

上記項目の設定が完了したら、いよいよデプロイです。 デプロイすると、コアサービスがインストールされ、Kong ロードバランサー用のIP アドレスが提供されます。 この IP アドレスは、DNS レコードを設定し、インストールの第一ステップを完了するための重要なアドレスです。

DNS エントリーの作成

Kong ロードバランサー の DNS エントリを作成します。例: (circleci.your.domain.comapp.circleci.your.domain.com) 。 この DNS エントリは、前提条件のステップで TLS 証明書とGitHub OAuth アプリケーションを作成する際に使用した DNS 名と一致している必要があります。 すべてのトラフィックは、この DNS レコードを介してルーティングされます。

Kong ロードバランサーの IP アドレス、または AWS を使用している場合は DNS 名が必要になります。 以下のコマンドで情報を入手します。

kubectl get service circleci-server-traefik --namespace=<YOUR_CIRCLECI_NAMESPACE>

新しい DNS レコードを追加する方法について詳しくは、以下のドキュメントを参照してください。

バリデーション

これで、CircleCI Server に移動し、アプリケーションに正常にログインできるはずです。

次は、サービスのビルドに移ります。 すべてのサービスが立ち上がるまで時間がかかることがあります。 以下のコマンドを実行することで、定期的に確認することができます (実行中および準備完了状態の “フロントエンド” ポッドが 1/1 と表示されいてる必要があります)。

kubectl get pods -n <YOUR_CIRCLECI_NAMESPACE>

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

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

サポートが必要ですか

CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。

または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。