ドキュメント
circleci.com
Start Building for Free

macOS への CircleCI セルフホストランナーのインストール

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

このページでは、CircleCI セルフホストランナーを macOS にインストールする方法を説明します。

ローンチエージェントスクリプトをダウンロードする

Save the launch-agent.sh script file to an easily accessible location. その場所から、ターゲットプラットフォーム (x86_64 または Apple シリコンの M1) 向けのローンチエージェントバイナリをインストールします。

# For macOS x86_64:
export platform=darwin/amd64 && sh ./download-launch-agent.sh

# For macOS M1:
export platform=darwin/arm64 && sh ./download-launch-agent.sh

正常にインストールしたら、launch-agent.sh ファイルは削除できます。

CircleCI セルフホストランナー設定ファイルを作成する

CircleCI エージェントを実行するユーザーを選択します。 以下の手順では、選択するユーザーを USERNAME としています。 USERNAME は、エージェントがインストールされるマシンのユーザーのことであり、CircleCI アカウントのユーザー名では_ありません_。

大文字で記載されたパラメーターを適切な値に置き換えて、下記のテンプレートを完成させます。 完成したら、このテンプレートを launch-agent-config.yaml として保存します。

api:
  auth_token: AUTH_TOKEN
  # On server, set url to the hostname of your server installation. For example,
  # url: https://circleci.example.com

runner:
  name: RUNNER_NAME
  command_prefix : ["sudo", "-niHu", "USERNAME", "--"]
  working_directory: /var/opt/circleci/workdir
  cleanup_working_directory: true

logging:
  file: /Library/Logs/com.circleci.runner.log

作業ディレクトリのアクセス許可を更新する

CircleCI エージェントに、作業ディレクトリが格納されているディレクトリへの書き込みアクセス許可が必要です。 そのディレクトリの所有権を USERNAME に変更します。

sudo chown USERNAME /var/opt/circleci

CircleCI セルフホストランナー設定ファイルをインストールする

CircleCI セルフホストランナー設定ファイルの保存ディレクトリを root として作成します。

sudo mkdir -p '/Library/Preferences/com.circleci.runner'

先程作成した launch-agent-config.yaml をディレクトリにコピーし、権限を 600 に変更します。

sudo cp "launch-agent-config.yaml" "/Library/Preferences/com.circleci.runner/launch-agent-config.yaml"
sudo chmod 600 "/Library/Preferences/com.circleci.runner/launch-agent-config.yaml"

launchd .plist を作成しインストールする

com.circleci.runner.plist ファイルを、パス /Library/LaunchDaemons/com.circleci.runner.plist、所有者 root、アクセス許可 644 で作成します。 次のコマンドを使用します。

sudo touch /Library/LaunchDaemons/com.circleci.runner.plist
sudo chown root: /Library/LaunchDaemons/com.circleci.runner.plist
sudo chmod 644 /Library/LaunchDaemons/com.circleci.runner.plist

下記を新しく作成した /Library/LaunchDaemons/com.circleci.runner.plist ファイルにコピーします。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>Label</key>
        <string>com.circleci.runner</string>

        <key>Program</key>
        <string>/var/opt/circleci/circleci-launch-agent</string>

        <key>ProgramArguments</key>
        <array>
            <string>circleci-launch-agent</string>
            <string>--config</string>
            <string>/Library/Preferences/com.circleci.runner/launch-agent-config.yaml</string>
        </array>

        <key>RunAtLoad</key>
        <true/>

        <!-- The agent needs to run at all times -->
        <key>KeepAlive</key>
        <true/>

        <!-- This prevents macOS from limiting the resource usage of the agent -->
        <key>ProcessType</key>
        <string>Interactive</string>

        <!-- Increase the frequency of restarting the agent on failure, or post-update -->
        <key>ThrottleInterval</key>
        <integer>3</integer>

        <!-- Wait for 10 minutes for the agent to shut down (the agent itself waits for tasks to complete) -->
        <key>ExitTimeOut</key>
        <integer>600</integer>

        <!-- The agent uses its own logging and rotation to file -->
        <key>StandardOutPath</key>
        <string>/dev/null</string>
        <key>StandardErrorPath</key>
        <string>/dev/null</string>
    </dict>
</plist>

launchd サービスを有効にする

これで、サービスをロードできます。

sudo launchctl load '/Library/LaunchDaemons/com.circleci.runner.plist'
sudo launchctl unload '/Library/LaunchDaemons/com.circleci.runner.plist'

ジョブでセルフホストランナーを参照する

セルフホストランナーのセットアップが完了したら、 .circleci/config.yml ファイルのフィールドを設定してジョブでセルフホストランナーを参照する必要があります。 セルフホストランナーを使って実行するジョブについて、以下のフィールドを指定します。

  • machine: true

  • resource_class: your-namespace/your-resource

以下に、ジョブのセットアップ方法の簡単な例を示します。

version: 2.1
workflows:
  testing:
    jobs:
      - runner
jobs:
  runner:
    machine: true
    resource_class: your-namespace/your-resource
    steps:
      - run: echo "Hi I'm on Runners!"

この設定ファイルを VCS プロバイダーにプッシュすると、セルフホストランナーを使ってジョブが実行されます。

サービスの実行状態を確認する

プリインストールされている macOS アプリケーション、 コンソール を開きます。 このアプリケーションでは、 ログレポート で CircleCI エージェントのログを閲覧することができます。 リストから com.circleci.runner.log というログを探します。 このファイルは、 Library > Logs に移動しても見つけられます。


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

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

サポートが必要ですか

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

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