openclaw onboard と daemon、127.0.0.1 ゲートウェイが前提です。排障・Jenkins 版・実戦ブログ一覧と併読ください。
運用で踏みがちな三つの壁
1. 共有エージェントでは並行ジョブで dry-run がブレる。2. 無認証やプロキシの JSON 整形で HMAC 不一致。3. TeamCity の HTTP タイムアウトが短く再送が増える、の三点です。
判断表:共有エージェントとリモート Mac 前置ノード
| 観点 | 共有ビルドエージェント | MacPull リモート Mac 前置 |
|---|---|---|
| 隔離 | 再利用で混線 | buildId ごとに作業ディレクトリ固定 |
| 受信 | 外向きのみでは不可 | 127.0.0.1+トンネルで終端 |
| 検証 | Linux と役割分断 | Apple 近傍で前置しやすい |
| 説明 | 既存プールへ載せやすい | 本流失敗を事前削減と説明しやすい |
手順チェックリスト(上から順に打刻)
- Node 22+ をシェルと launchd で揃え
openclaw doctor緑 openclaw onboardと daemon/LaunchAgent 常駐- ゲートウェイは 127.0.0.1 のみ+外向き TLS
- TeamCity PAT は参照と REST コメントに最小権限
- JSON に
buildIdと rev、Bearer と任意 HMAC 検証 - 隔離で
npm ci --dry-runと lock のgit diffをtee - REST は 502/429 のみ二・四・八秒バックオフ、401/403 は再試行しない
インストールとゲートウェイ:Node 22 以上・onboarding・daemon
Node 22+ と CLI 導入後 openclaw onboard、daemon または LaunchAgent で常駐します。plist に PATH、NODE_BINARY、NODE_EXTRA_CA_CERTS を明示し nvm 依存を避けます。Dashboard トークン・Webhook 秘密・TeamCity PAT は権限 600 で分離しゲートウェイは 127.0.0.1 のみです。
TeamCity 外向き Webhook と受信側の検証
Webhooks または HTTP ステップで buildId と rev を JSON に載せ、Bearer 必須+任意 HMAC を生ボディで検証します。タイムアウトは実測より長く、長処理は 202 で非同期化します。CircleCI 版と対照できます。
ハンドラ:隔離プリフライトと lockfile 漂移スキャン
mktemp -d で隔離し浅 clone のあと lock に git diff --exit-code。続けて npm ci --dry-run や composer install --dry-run を tee し末尾だけ要約へ載せます。
要約の TeamCity 回帰:失敗リトライとログの残し方
PAT で curl(五秒/二十五秒目安)。502/429 のみ二・四・八秒で最大三回、401/403 は設定修正のみ。ログは buildId とマスクヘッダ、openclaw status --deep と突合します。
よくあるエラー FAQ とログの当たり所
Bearer/HMAC 不一致
パラメータと環境変数の改行、リバプロの JSON 整形を疑い、生ボディで検証します。
HTTP ステップだけタイムアウト
秒数を伸ばし二〇二で非同期化、再送が多ければ呼び出しを遅延します。
REST が四〇一/四〇三
ロールと PAT スコープ、REST プレフィックスを見直しグローバル管理者を外します。
launchd で npm 不在
plist に PATH と NODE_BINARY を絶対パスで列挙しサービスユーザーで which npm を確認します。