2026 レンタルしたProxyMac Mac miniでのOpenClawアップグレード、バージョン固定、launchctlロールバック
自動化ゲートウェイは犬年で老化する:マイナーなsemver一つでTLS既定がひっくり返り、CLIフラグが改名され、LaunchAgentが安定と仮定していたサンドボックスパスが締まる。香港・日本・韓国・シンガポール・米国のProxyMac Mac miniにおける運用契約は単純—予測可能な再起動、監査可能なロールバック、顧客がドリフトに気づく前に鳴るヘルスプローブ。本稿は誰がアップグレードのゲートを握るべきか(プラットフォーム所有者であり、すべての機能チームではない)、具体閾値付きの更新前表(空きディスク≥20%、Webhook 5xx率24時間で<0.5%)、設定ツリーのスナップショット+チェックサム儀式、ゲートウェイ復旧に沿ったlaunchctl bootout/kickstart -kの順序、表で比較する4つのロールバック戦略、ヘルスプローブとJSONLログへの更新後フック、無人更新のFAQまでを扱う。同じ変更窓で設定のGitOpsとデプロイのトラブルシュートを必読とする。
バージョン固定、爆発半径の縮小、本番での「latest」拒否
各本番plistにコンプライアンスが引用できる正確なバイナリパスまたはコンテナdigestをタグ付けする。「常にmainを引く」は開発ノートではよいが、決済・モデルルーティング・夜間ETLを走らせるレンタル金属ではインジェント発生器だ。TLS遅延を合わせるため本番と同リージョンにステージングminiを置く—料金にM4級miniを置く五リージョンが列挙されている。
- OpenClaw YAMLの隣にセマンティックlockfileをチェックインし、diffが意図を示す。
- ThrottleIntervalを尊重し、launchdがワーカーを排出できる速さより速く連鎖更新しない。
- シークレットローテーションはバイナリバンプから切り離し、独自のカレンダーで回す。
更新前チェック表
| シグナル | 緑の閾値 | 赤なら |
|---|---|---|
| APFS空き容量 | システムボリューム≥20% | JSONLをアーカイブしキャッシュを刈ってからバイナリに触れる |
| Webhook 5xx率(24時間ローリング) | <0.5% | 上流を先に直す—更新は根本原因を隠す |
| LaunchAgentの直近終了ステータス | 直近3再起動すべて0 | Unified Loggingでクラッシュループを読む |
| 時刻ずれ | NTP対比<2秒 | 更新後にJWT/HMAC検証が不可解に失敗する |
設定、キュー、モデルキャッシュをチェックサム付きでスナップショット
まず~/Library/Application Support/OpenClawツリー全体(インストールにより名前は異なる)を同ボリューム上の日付付きtarへ—インシデント中のSMB越しコピーは部分書き込みの典型原因。tarにshasum -a 256を記録しハッシュを変更チケットへ。保持はログ稿に合わせ、法務が「何を残したか」に答えられるようにする。
launchctlの順序:bootout、待機、bootstrap、kickstart
現代のmacOSは忍耐を報いる。エージェントをアンロードしたらlaunchctl print user/$(id -u)/com.openclaw.gatewayに実行中PIDが出なくなるまで待ち、新ビルドをバージョン付きディレクトリへ入れcurrentシンボリックリンクを張ってからlaunchctl bootstrapとlaunchctl kickstart -k gui/$(id -u)/com.openclaw.gatewayを行う。待機を飛ばすと古い共有メモリ領域に子ワーカーが残る—トラブルシュートが「火曜まで動く」として文書化するクラスだ。
# 例—ラベルは置き換える
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.openclaw.gateway.plist
sleep 2
# ここでバージョンフォルダとシンボリックリンクを入れ替え
launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.openclaw.gateway.plist
launchctl kickstart -k gui/$(id -u)/com.openclaw.gateway
ロールバック表:シンボリック差し替え対tar復元対再イメージ
| 戦略 | 戻すまでの時間 | リスク | 使うとき |
|---|---|---|---|
| 前semverフォルダへのシンボリック | 30〜90秒 | DBマイグレーション取りこぼし | 純バイナリ/API退行 |
| フルtar復元 | 3〜10分 | 飛行中キューファイルの上書き | 設定破損が疑わしい |
| miniの再イメージ(最終手段) | 15〜45分 | 人的ミスによる復元 | カーネル拡張やTCCの絡み |
| 第2miniへのリージョンフェイルオーバー | DNS TTL次第 | 共有DBならスプリットブレイン | ホットフィックスなしの重大CVE |
更新後のヘルスフックと可観測性
kickstart後の最初の15分は、localhost管理ポートへの合成プローブ、キュー深さのサンプル、数セントのcanaryプロンプトでの外向きモデル呼び出しを走らせる。アラームはハード失敗だけでなく、変更前基線に対するp95遅延が15%超シフトにも紐づける。upgrade_from、upgrade_to、change_ticketを構造化行に出し、ログパイプラインがリリース別に面を切れるようにする。
よくある質問
メンテナンス中にbrew upgradeしてよいか? コンプライアンスが本番のHomebrewパスを許す場合のみ。多くのProxyMac顧客は/opt/openclaw/releases/<semver>へtarballをベンダリングする。
マイグレーションは新バイナリ起動の前か後か? 後方互換マイグレーションはトラフィック前。破壊的マイグレーションは数日にわたる二段階フラグロールアウトで出す。
XPCヘルパーは? メインplistの横に文書化した依存順で起動する—親子グラフは再起動復旧を参照。
アップグレード規律をProxyMac Mac miniで固める理由
Apple Silicon M4のminiは長寿命ホスト名、決定的性能、ブルー/グリーン移行中に本番の横でcanaryワーカーを走らせる余裕を与える—毎週火曜のパッチ日にハイパーバイザ近隣ノイズと戦わなくてよい。自動化をHK/JP/KR/SG/USに固定し、メジャーは人の手で、ラック作業は自分でしないハードウェアに任せる。GUIプロンプトにはVNCへ。SSHがプロキシで整形されるなら同週公開の企業CONNECT稿を読む。