ランナーのコンセプト
名前空間とリソースクラス
セルフホストランナーには名前空間とリソースクラスの両方が必要です。
名前空間 は、CircleCI 組織が要求する一意の識別子です。 各組織が要求できる一意の名前空間は 1 つだけで、後から変更することはできません。 通常、選択される名前空間は VCS の組織名を小文字で表したものです (推奨)。
リソースクラス は、CircleCI ジョブとそのジョブを処理するために識別されたランナーのタイプを一致させるためのラベルです。 リソースクラスの最初の部分は組織の名前空間です。 たとえば、 circleci/documentation
などです。 リソースクラスは、セルフホストランナーのインストールプロセスを実行する際に作成されます。
リソースクラスを使用すると、セルフホストランナーのプールを特定して、特定の場所にジョブを送信するように設定できます。 たとえば、macOS を実行する複数のマシンと Linux を実行する複数のマシンがある場合、ぞれぞれに対して、 orgname/macOS
と orgname/linux
のリソースクラスを作成することができます。 .circleci/config.yml
のジョブレベルでは、リソースクラスに基づいて、ジョブの送信先となるセルフホストランナーのリソースを関連付けることができます。
オプションで、リソースクラスに説明をつけることもできます。
ローンチ エージェントとタスクエージェント
セルフホストランナーは、ローンチエージェントとタスクエージェントという 2 つの要素で構成されます。
-
ローンチエージェント (launch-agent) - タスクの実行 (1 つのジョブの並列実行) に必要な情報の収集と、タスクエージェントプロセスのダウンロードおよび起動を行います。
-
タスクエージェント (task-agent) - ローンチエージェントによって取得、設定されたタスクの実行を行います。
この仕組みにより、管理者は、task-agent が launch-agent よりも低い権限レベルで実行されるように設定することができます。 ジョブの実行を許可したすべてのユーザーには、タスクエージェントと同じ権限が付与されます。 下記はこのアプローチに基づいた推奨デプロイです (ローンチエージェントは root
として、タスクエージェントは circleci
として実行されます)。
セルフホストランナーの同時実行
スループットを向上させるために、一つのビルドプロセスを複数のステップに分割し、同時に(一度に)実行することができます。 CircleCI では、すべてのリソースクラスのセルフホストランナーに柔軟に作業をデプロイすることができます。
CircleCI セルフホストランナーは、登録済みセルフホストランナーの総数を制限するのではなく、リソースクラス全体のセルフホストランナージョブ (タスク) の総数を制限しています。
SSH を使用したデバッグ
CircleCI セルフホストランナーでは、デバッグのために SSHでジョブを再実行することが可能です。 この機能の使用に関する詳細は、SSH を使用したデバッグをご覧ください。
'SSH でジョブを再実行する' 機能は、デフォルトでは無効になっています。 この機能を有効にするには、 CircleCI セルフホストランナーのインストール を参照してください。 |
パブリックリポジトリ
CircleCI セルフホストランナーは、[Build Forked Pull Requests (フォークされたプルリクエストをビルド)] 設定が有効になっているパブリックプロジェクトでの使用は推奨されません。 このようなパブリックプロジェクトでは、他のユーザーがリポジトリをフォークし、コードをコミットしてプルリクエストを作成できるため、悪意のあるアクターによってマシンに変更が加えられたり、マシンでコードが実行されたりする可能性があります。 CircleCI セルフホストランナーで信頼されていないジョブが実行されると、ジョブ間で環境が永続化されている場合には特に、マシンやネットワーク環境に重大なセキュリティリスクが生じます。 このようなリスクには、次のものがあります。
-
悪意のあるプログラムがマシンで実行される。
-
マシンのセルフホストランナーサンドボックスの外部で操作が行われる。
-
マシンのネットワーク環境に外部からアクセスされる。
-
不要なデータや危険なデータがマシンに保持される。
デフォルトでは、組織は名前空間を 1つだけ要求できるように制限されています。 これは、名前空間の占拠や紛らわしさを制限するためのポリシーです。 名前空間を変更する必要がある場合は、 サポート にお問い合わせください。 |
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか?
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、サポートサイトから、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。

CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.