CircleCI セルフホストランナーに関するよく寄せられるご質問
On This Page
- CircleCI セルフホストランナーのセキュリティモデルは、どのようになっていますか。
- ジョブに必要な依存関係をインストールする方法を教えてください。
- どのような接続が必要ですか。
- CircleCI セルフホストランナーを使用する場合、キャッシュ、ワークスペース、アーティファクトはどのように機能しますか。
- ジョブ間の状態管理に関するベストプラクティスを教えてください。
- 1 つのホスト上で複数のランナーを実行することはできますか。
- セルフホストランナーのリソースクラスを削除することはできますか?
- セルフホストランナーのリソースクラスを作成、削除、閲覧できるのは誰ですか?
- OSS プロジェクトのメンバーのジョブで、その人が組織のメンバーではない場合、組織のセルフホストランナーを使用できますか。
- 非アクティブなセルフホストランナーは、どれだけの期間セルフホストランナーのインベントリのページに保持されますか?
- セルフホストランナーをインストールしたホストがジョブを実行しているかどうかを確認する方法は?
- macOS に初めてセルフホストランナーをインストールしましたが、ジョブが "Preparing Environment" の状態でスタックしました。エラーは表示されていません。どうすれば良いですか。
このページでは、CircleCI セルフホストランナーに関してよく寄せられるご質問に回答します。
CircleCI セルフホストランナーのセキュリティモデルは、どのようになっていますか。
CircleCI セルフホストランナーをインストールする際に、ジョブを実行するユーザーを選択できます。 このユーザーにはジョブの実行に必要な権限だけを付与するようにご注意ください。
ジョブに Docker デーモンへのアクセスを許可することは、ユーザーにマシンへの root アクセスを許可することと同等です。 |
ジョブに必要な依存関係をインストールする方法を教えてください。
依存関係をインストールする方法は、主に 2 つあります。
-
必要な依存関係をインストールすることをジョブに許可する
柔軟性は高くなりますが、ツールを全体にインストール、または重複しない方法で (作業ディレクトリなどに) ツールをインストールできる権限をジョブに付与する必要があります。
-
依存関係をセルフホストランナーマシンにプリインストールする
この方法は最も安全な方法ですが、ジョブの依存関係が変わった場合、セルフホストランナーマシンの再設定が必要になります。
どのような接続が必要ですか。
ジョブの取得と実行の際に CircleCI に接続するために、runner.circleci.com
と circleci-binary-releases.s3.amazonaws.com
へのアウトバウンド HTTPS 接続が必要です。
セルフホストランナーにインバウンド接続は必要ありません。 それ以外では、ジョブの内容に応じた接続が必要になります。 |
チェックアウトステップでは、VCS プロバイダーへのアクセスが必要です。 キャッシュ、ワークスペース、アーティファクトを使用する場合は、circle-production-customer-artifacts.s3.amazonaws.com へのアウトバウンド HTTPS 接続が必要になります。 |
CircleCI セルフホストランナーを使用する場合、キャッシュ、ワークスペース、アーティファクトはどのように機能しますか。
キャッシュ、ワークスペース、アーティファクトは、ジョブ間でデータを永続化し、ビルドを迅速化するために導入できる方法です。 キャッシュ、ワークスペース、アーティファクトは、S3 の AWS us-east-1 リージョンに保存されます。 セルフホストランナーが別のリージョンでセットアップされている場合、パフォーマンスが低下する可能性があります。
これらの概念の詳細については、下記をご覧ください。
データの永続化 のページでも、詳細をご確認いただけます。
アーティファクトのストレージを自社で完全に管理したい場合は、組み込みのステップを使用せず、ご希望のストレージバックエンドに直接アーティファクトをアップロードすることをお勧めします。
ジョブ間の状態管理に関するベストプラクティスを教えてください。
セルフホストランナー自体には、この点に関する厳格な決まりはありません。 セルフホストランナーは、ジョブごとに専用の作業ディレクトリを作成し、後で削除するように設定できますが、これは必須ではありません。 デフォルトでは、作業ディレクトリの外にファイルを配置することも制限されていません。
一般的には、再現性が高まるよう、ジョブが状態に依存することは最小限に抑えることをお勧めします。 そのためには、前のジョブの結果に依存せずに確実にジョブが実行されるように、ジョブの最初にクリーンにするステップを配置するのが効果的です。
ホスト上に保持されるキャッシュをジョブ間で利用すると、ビルド時間の短縮を期待できますが、一方で、再現性は低下します。 また、長期的には、ディスク容量を使い果たす可能性もあります。 その結果、これにより課金対象の使用量が増える場合があります。 |
1 つのホスト上で複数のランナーを実行することはできますか。
はい、できます。launch-agent
の複数のレプリカを、それぞれに一意の名前を設定して実行すれば、1 つのホスト上で必要な数のエージェント (つまり、ジョブ) を実行できます。 ただし、同時に実行したときに競合が発生しないように、ジョブが相互に十分に分離されるよう特に注意してください。
セルフホストランナーのリソースクラスを削除することはできますか?
はい、できます。セルフホストランナーのリソースクラスは、 CLI より削除することができます。 削除は取り消しできないため、リソースクラスと、それに紐づくトークンを永久に削除して良いか十分に確認してください。
circleci runner resource-class delete <resource-class> --force
セルフホストランナーのリソースクラスを作成、削除、閲覧できるのは誰ですか?
セルフホストランナーのリソースクラスの作成と削除のは、VCS プロバイダーの組織管理者が行えます。 リソースクラスリストの閲覧は、リソースクラスが関連付けられている VCS プロバイダーの組織ユーザーであれば誰でも可能です。
OSS プロジェクトのメンバーのジョブで、その人が組織のメンバーではない場合、組織のセルフホストランナーを使用できますか。
使用できません。ランナーのリソースクラスを所有する組織に関連付けられていないジョブでそのランナーのリソースクラスを使用することはできません。 組織のメンバーである OSS プロジェクトのメンバーのみがその組織のセルフホストランナーを使うことができます。
非アクティブなセルフホストランナーは、どれだけの期間セルフホストランナーのインベントリのページに保持されますか?
CircleCI に「信号」が 3 日以上報告されないと、そのセルフホストランナーは CircleCI Web アプリのインベントリのページに表示されなくなります。
セルフホストランナーをインストールしたホストがジョブを実行しているかどうかを確認する方法は?
お勧めの方法は、以下のコマンドを使ってホストをクエリすることです。
ps aux | pgrep -f circleci-launch-agent
上記コマンドの結果、3 つ以上のプロセスが返された場合、セルフホストランナーがタスクを実行していると想定できます。
grep
自体も 1 つのプロセスとしてカウントされ、 ローンチエージェント プロセスは別のプロセスとしてカウントされるため、必ず 3 つ以上のプロセスがあることを確認してください。
macOS に初めてセルフホストランナーをインストールしましたが、ジョブが "Preparing Environment" の状態でスタックしました。エラーは表示されていません。どうすれば良いですか。
以下の 2 つのコマンドを実行してください。
sudo chmod +x /opt/circleci/circleci-launch-agent
sudo /opt/circleci/circleci-launch-agent --config=/Library/Preferences/com.circleci.runner/launch-agent-config.yaml
ジョブをキャンセルし、再実行します。 それでもジョブが実行されない場合は、 サポートチケット を送信してください。
ドキュメントの改善にご協力ください
このガイドは、CircleCI の他のドキュメントと同様にオープンソースであり、 GitHub でご利用いただけます。 ご協力いただき、ありがとうございます。
- このページの編集をご提案ください (最初に「コントリビューションガイド」をご覧ください)。
- ドキュメントの問題点を報告する、またはフィードバックやコメントを送信するには、GitHub で issue を作成してください。
- CircleCI は、ユーザーの皆様の弊社プラットフォームにおけるエクスペリエンスを向上させる方法を常に模索しています。 フィードバックをお寄せいただける場合は、リサーチコミュニティにご参加ください。
サポートが必要ですか
CircleCI のサポートエンジニアによる、サービスに関する問題、請求およびアカウントについての質問への対応、設定の構築に関する問題解決のサポートを行っています。 サポートチケットを送信して、CircleCI のサポートエンジニアにお問い合わせください。日本語でお問い合わせいただけます。
または、 サポートサイト から、サポート記事やコミュニティフォーラム、トレーニングリソースをご覧いただけます。
CircleCI Documentation by CircleCI is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.