OpenClaw 実践 · Teams · 多ノード · 最小権限

2026 OpenClaw MeshMac 実践:Microsoft Teams Incoming Webhook で多ノードビルド状態をブロードキャストする最小再現手順

2026年4月2日 Meshmac 読了目安 約8分

MeshMac 多ノードでは同一 Teams チャンネルへ結果を揃えるのが楽です。OpenClaw 2026ゲートウェイに置き、導入・doctorOPENCLAW_CONFIG_ROOTマルチノードデプロイガイド と同型です。ビルダーは タスクキュー同期 でイベントのみ送り、Teams への POST はゲートウェイ単独にします(Matrix 版Webhook 通知 参照)。

① Teams コネクタと URL の安全

Incoming Webhook(または後継フロー)で URL を一度だけ取得しbearer扱い。Git 禁止、例 /etc/openclaw/secrets.d/teams/build-status.url0440 でゲートウェイのみ読取。シークレット最小権限 に合わせます。

  • URL 全文はログに出さず、ローテはコネクタ再作成+ファイル差し替え(IM トークンローテ)。
  • 環境別 URL、MessageCard 等テナント互換 JSON(400 を障害と誤認しない)。

コネクタ禁止テナントは Power Automate 等の狭い入口を一つ、送信元はゲートウェイのみ

② ゲートウェイ/プロキシの外向きホワイトリスト

ゲートウェイから Webhook 宛て TLS のみ許可(例 outlook.office.com*.webhook.office.com 等・実測に合わせる)。Runner 直出しは閉じ、デーモンと同じ HTTPS_PROXYcurl -I して CONNECT を確認。フェイルオーバー 時も更新点はゲートウェイ出口だけにします。

③ 多ノード状態の集約フィールド設計

各 CI の JSON をゲートウェイで正規化してからカード化。プロジェクト別設定 でも通知キーは統一します。

正規化キー例(ソース)Teams/運用での見せ方
workflowGitHub workflow 名/GitLab pipeline 名タイトル行で自動化を識別
stateconclusion/status/result成功・失敗・キャンセル等にマップ
branchref/head_branchリリース線の可視化
commitsha 短縮+URL差分追跡用リンク
run_urlhtml_url/web_urlログ・成果物へ深いリンク
mesh_node_idrunner 名・ホストラベルプール内のどの Mac かをフッタ表示
provider_run_idrun_id/pipeline idstate と組み合わせて冪等キー

待ち時間は キュー再試行 と同じ指標を載せると有益です。

④ 再試行と冪等性

429/一時 5xx のみ指数バックオフ+ジッター(例・2 分で最大 5 回)、結果はゲートウェイログへ。ビルド再試行と分離する考え方は キュー再試行 と同型。冪等provider_run_id + state、成功後 72 時間は同一遷移を抑止。400401 は修正まで再試行しない。404 はコネクタ削除扱いで再発行。

⑤ メッセージが届かない FAQ

現象切り分け
CI 緑だがチャンネル無音ゲートウェイ POST のステータス行、curl 最小 JSON、テナントでレガシーコネクタ無効化の有無
特定ノードだけ不安定古い秘密で Teams 直叩きしていないか、プロキシ迂回の残り
HTTP 200 だが空/エラー表示@type・summary/title・本文長。モバイルで切れる添付は縮小
週末まで動いて月曜だけ失敗プロキシ証明書ローテ、DNS、誤った秘密ファイルの自動更新

まとめ・次の一手(ログイン不要)

ゲートウェイ一択で Teams URL を守り、出站はそのホストだけ、mesh_node_idprovider_run_id で観測と冪等を揃えるのが 2026 年の最小セットです。続きは OpenClaw 特集ブログ一覧 からどうぞ。

Mesh · 多ノード · 閲覧はログイン不要

プールを増やすほど「通知の単一路」と「秘密の一か所」が効きます

Webhook を Mac 台数ぶん複製するとローテと FW が破綻しがちです。Mesh/多ノードでレーンを足す場合は、まず ホーム で追加容量と料金コンテキストを確認し、ヘルプセンターブログ のチェックリストでゲートウェイ・キュー・出站を揃えてから購入フローへ進んでください。CTA ページの閲覧にログインは不要です。

ホームへ