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

CircleCI セルフホストランナーに関するよくあるご質問

3 weeks ago1 min read
クラウド
Server v4.x
Server v3.x
このページの内容

このページでは、CircleCI セルフホストランナーに関してよく寄せられるご質問に回答します。

CircleCI セルフホストランナーのセキュリティモデルは、どのようになっていますか。

CircleCI セルフホストランナーをインストールする際に、ジョブを実行するユーザーを選択できます。 このユーザーにはジョブの実行に必要な権限だけを付与するようにご注意ください。

ジョブに必要な依存関係をインストールする方法を教えてください。

依存関係をインストールする方法は、主に 2 つあります。

  • 必要な依存関係をインストールすることをジョブに許可する

柔軟性は高くなりますが、ツールを全体にインストール、または重複しない方法で (作業ディレクトリなどに) ツールをインストールできる権限をジョブに付与する必要があります。

  • 依存関係をセルフホストランナーマシンにプリインストールする

この方法は最も安全な方法ですが、ジョブの依存関係が変わった場合、セルフホストランナーマシンの再設定が必要になります。

どのような接続が必要ですか。

ジョブの取得と実行の際に CircleCI に接続するために、runner.circleci.comcircleci-binary-releases.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 プロバイダーの組織ユーザーであれば誰でも可能です。

ランナーリソースクラストークンは削除できますか?

はい、できます。ランナーリソースクラストークンは、 CLI より削除することができます。 このアクションは取り消すことができないため、永遠に削除したいトークンかどうかを確認してください。 削除されるのはトークンのみであり、リソースクラス自体は削除されないのでご注意ください。

トークンと識別子のリストを取得するには以下を実行します。

circleci runner token list <resource-class name>

トークン自体を削除するには以下を実行します。

circleci runner token delete <token identifier>

ランナーリソースクラストークンは追加で作成できますか?

はい、できます、特定のランナーリソースクラスの追加ランナーリソースクラストークンは CLI から作成できます。

トークンを作成するには以下を実行します。

circleci runner token create <resource-class-name> <nickname>

OSS プロジェクトのメンバーのジョブで、その人が組織のメンバーではない場合、組織のセルフホストランナーを使用できますか。

使用できません。ランナーのリソースクラスを所有する組織に関連付けられていないジョブでそのランナーのリソースクラスを使用することはできません。 組織のメンバーである OSS プロジェクトのメンバーのみがその組織のセルフホストランナーを使うことができます。

非アクティブなセルフホストランナーは、どれだけの期間セルフホストランナーのインベントリのページに保持されますか?

CircleCI へのコンタクトが 12 時間ない場合、そのセルフホストランナーは CircleCI Web アプリのインベントリのページに表示されなくなります。

セルフホストランナーをインストールしたホストがジョブを実行しているかどうかを確認する方法は?

お勧めの方法は、以下のコマンドを使ってホストをクエリすることです。

ps aux | pgrep -f circleci-launch-agent

上記コマンドの結果、3 つ以上のプロセスが返された場合、セルフホストランナーがタスクを実行していると想定できます。

grep 自体も 1 つのプロセスとしてカウントされ、 ローンチエージェント プロセスは別のプロセスとしてカウントされるため、必ず 3 つ以上のプロセスがあることを確認してください。

macOS に初めてセルフホストランナーをインストールしましたが、ジョブが "Preparing Environment" の状態でスタックしました。エラーは表示されていません。どうすれば良いですか。

以下の 2 つのコマンドを実行してください。

sudo chmod +x /var/opt/circleci/circleci-launch-agent
sudo /var/opt/circleci/circleci-launch-agent --config=/Library/Preferences/com.circleci.runner/launch-agent-config.yaml

ジョブをキャンセルし、再実行します。 それでもジョブが実行されない場合は、 サポートチケット を送信してください。


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

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

サポートが必要ですか

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

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