一枚岩の設定は誤編集が全ノード事故に直結します。clustervps ではテナント別フラグメント→マージ成果物だけを実行系へ渡し、ロック・合成ヘルス+ doctor・Webhook 失敗要約まで一本化すると、導入・配線・切り分けを短時間ドリルできます。

マルチ AZ 網関と補完。成果物はrsync マトリクス、索引はブログ一覧

ディレクトリ約定

骨格は全 Mac で同一に。/usr/local/openclaw/tenants/<tenant>/fragments/*.yaml はテナント編集可、/var/lib/openclaw/merged に成果物+ SHA256、/var/log/openclaw に JSON 行とリトライ指紋。マージは一時ファイルへ書いてから mv で原子置換し、launchd に途中 YAML を読ませない。

導入単一テナント検証→複製。配線ラベルで集合選択、merged 直編集禁止。切り分けハッシュとログ。構文エラーはマージ失敗で reload 停止。

バージョンロック

ルートの versions.lock にバイナリ digest・sidecar タグ・マージスクリプト SHA を固定し、CI で照合。昇格はカナリア 1 台→ doctor/合成プローブ→短い観測→全ノードの順。URL 修正だけでもリビジョンを残し口頭ドリフトを防ぐ。台数は料金で先に押さえる。

ヘルス探針の統合

/healthz/composite のみ公開。ディスク・launchd・doctor・キューを直列化し tenantaz 付き JSON。網関が失敗をローカルへ、通知器が 5 分窓で 1 件要約。滞留は degraded

#!/usr/bin/env bash
set -euo pipefail
/usr/bin/openclaw doctor --tenant "${TENANT}" --json >"/tmp/d.json"
/usr/bin/curl -fsS --max-time 4 "${WEBHOOK_PING_URL}" >/dev/null
/usr/bin/printf '{"tenant":"%s","doctor_ok":true,"webhook_ok":true,"queue_depth":0}\n' "${TENANT}"

パス統一で SSH スクリプト再利用。ヘルプと突き合わせ。

トークンのローテーション

Bearer と mTLS は分離。フラグメントにはパスだけ書き、秘密はストア注入でマージ成果物は参照のみ。シャドウをカナリアに載せ、外向きと要約が二周成功したらタグで全展開。短命ファイル+rename で原子更新、12h 重複猶予と監査ログ必須。公開先は月次ローテ目安、漏えい疑いは全テナント即時+ merged の grep。

ステップチェックリスト

  1. Mac 3 台(2 台+ノート可):網関 A/B、通知器 N。
  2. フラグメント+マージmerged/openclaw.yaml.sha256openclaw validate で本番前に止める。
  3. versions.lock+CI、初台で doctor/Webhook ping。
  4. 合成プローブを LB 単一路径に載せ、DNS を外して JSON 反映を見る。
  5. 通知器で 4xx/5xx を流し、5 分窓で要約 1 件・テナント/相関 ID を確認。
  6. シャドウトークン→全ノード、旧鍵失効と merged grep。
  7. runbookに SSH ジャンプとロールバック。購入ホームで予算合わせ。

FAQ(要点)

衝突は即失敗。doctorはタイムアウト→degraded要約は件数+代表 URL、詳細は JSONL。

運用ガイド。版差あり—実装フラグで確認。数値は目安で SLA ではありません。
ログイン不要で次の一歩

Mac 網関を足す前に公開情報で合意形成

料金ヘルプ購入ホームはログインなしで閲覧できます。コンソールに入る前にチームで揃えられます。

Mac プランを開く ヘルプへ