OpenClaw をスリープしやすいノートPC、ホームスタジオで過負荷の Mac、あるいは契約更新が迫る旧リース機から、新しいカナダリージョンの Mac mini 級 M4へ載せ替える作業は、「ファイルをコピーする」よりどのマシンが継続性の所有者になるかを変える仕事です。TCP 18789 で待ち受けるプロセス、再起動後も残る LaunchAgent/LaunchDaemon の plist、エージェントが書き換える Workspace ディレクトリ、チャネルが信頼するシークレット — どれか一つでもズレると、手元では健全に見えるのに本番トラフィックだけ別ホストへ向かったり、対話シェルでは動くのに launchd 経由では PATH が空で Gateway が起きない、といった追いかけ疲れの幽霊障害になります。本稿は Confluence にそのまま貼れる一本の移行スパインです:フェーズごとのゲート、二つの対照表、Workspace をどう梱包するかの具体コマンド、太平洋横断の SSH と Screen Sharing に合わせた受入れチェック、macOS を入れ直さなくてよい明示的なロールバック経路までをまとめます。
移行後も依存関係の固定・再起動ドレイン・ログ水位を日常運用に落とすなら OpenClaw 2026|カナダのリモートMac M4における制御アップグレードと安定運用ハンドブック:依存関係の固定、Gatewayのヘルスプローブとローリング再起動、ログのディスク水位、リモート経路ジッターの排障対照、中高配スペックの構成例(HowTo+FAQ) がそのまま継続編になります。チャネル初回疎通や Webhook・トークンの運搬で詰まりやすい場合は OpenClaw 2026:リモートMac Channelsの初回疎通と本番排障 — install.sh、Gateway 18789、Telegram/Slack 連携、リモートトークンとトンネル自己診断、ログディスクとカナダM4中高配の egress と突き合わせてください。
本番でいう「安定移行」とは何か
安定カットオーバーとは「一度ターミナルで動いた」ではありません。OpenClaw のようなエッジ寄りエージェントホストでは、冷起動後に次が揃うことを観測可能な保証として書き留めます:Gateway のリスナーが文書化した bind(多くは 127.0.0.1:18789)に唯一乗っていること、plist が読む環境変数が対話 SSH と実質同じであること、チャネル認証が対話プロンプトなしで解決すること、APFS 上にブラウザプロファイルとログの余白があること、そしてアジアや欧州からのオペレータがSSH でのファイル編集と、必要なら VNC(Screen Sharing)のスモークテストを、レイテンシか認証かを切り分けずに完了できることです。このチェックリストをそのままオンコール Runbook に載せれば、ホテル Wi‑Fi からでも判断がブレにくくなります。
太平洋越しの RTT は「道徳的欠陥」ではなく設計制約です。受入れは巨大 tarball を往復させるより、小さく冪等なプローブ(認証付き Gateway ヘルス 1 回+合成チャネル ping)を優先してください。バルク Workspace 同期はメンテナンス枠に閉じ、失敗時は tarball 復元へ進める前提にすると、稼働中セッションを壊しにくくなります。
事前スナップショット、変更凍結、役割分担
本番トラフィックに触れる二週間前には、次の三つを凍結します:Gateway ビルドが期待するNode.js のメジャーラインとロックファイル、ソースホストで検証済みのOpenClaw CLI の版文字列、直近の定期ジョブ成功後の Workspace ディレクトリの tarball またはスナップショット。オブジェクトストアにチェックサム付きで置き、転送元としてもロールバックの正としても使います。
役割は分けてください:plist の承認者、ホスト変更で gateway.remote.token を回す担当(ポリシーで必須なら)、プロバイダ網の外から Webhook を検証する担当です。曖昧になると LaunchAgent が二重登録され、再起動後に lsof で同じポートを奪い合う二プロセスが出ます。
Workspace 梱包:tar の厳密さと rsync の増分
サイズと機微度で選びます。数ギガ以下で小ファイルが多い Workspace は、エージェントを静止(quiesce)させた状態(Gateway 停止、ブラウザ自動化なし)で圧縮 tarball にすると、shasum -a 256 で両端検証しやすいバイト安定アーティファクトになります。数百ギガでドリフトが続く場合は、カットオーバー前に SSH 越し rsync で大部を運び、凍結ウィンドウで最終の短い rsync を当ててダウンタイムを抑えます。
明示的に除外するのは node_modules、ブラウザキャッシュ、方針で許せば .DS_Store、コピーではなく再発行するローカル限定シークレットです。先方 M4 では同一ロックファイルから依存を入れ直し、ネイティブアドオンが Apple Silicon と一致するようにします。ここを飛ばすと Intel で動いて M4 だけ落ちる、というパペティア型スタックで典型です。
openclaw gateway stop tar --exclude='node_modules' --exclude='.git' -czf openclaw-workspace-pre-migrate.tgz ./openclaw-workspace shasum -a 256 openclaw-workspace-pre-migrate.tgz | tee workspace-sha256.txt
カナダ側で root 経由で展開した場合は chown -R automation-user:staff でツリー所有者を直し、拡張属性でヘルパースクリプトの実行ビットが剥がれていないか spot-check します。プロバイダが外部ボリュームをマウントしているなら、重い成果物は拡張ディスク層へ、システムボリュームはログとスワップのバーストに余裕を残す配置にします。
ポート 18789 の Gateway:段階切替とトラフィック誘導
Gateway 移動は一括フリップではなく三段階が読みやすいです。フェーズA:Workspace を取り込んだ新 Mac を立ち上げ、一時トークンだけで内部オペレータが接続(多くは ssh -L 18789:127.0.0.1:18789 で raw TCP をまだ外向きにしない)。フェーズB:プロンプトテンプレート・チャネル ID・外向き許可リストを旧と突き合わせ、制御した合成タスクで構造化ログを比較。フェーズC:クライアント設定またはリバースプロキシ経路をカナダリスナーへ切り替え、旧ホストをドレインします。
フェーズB では旧 Gateway は人間向けに読み取り専用(新規スケジュールを載せない)に保ちます。プロバイダ管理 TLS の前段がある場合、証明書 SAN と上流ヘルスチェックを揃え、太平洋 RTT で /health のアイドルプローブだけが誤ってフラップしないよう初動一時間は閾値をやや緩め、安定後に締めるのが現実的です。
18789 の bind は移行週末・各再起動のたびに lsof -iTCP:18789 -sTCP:LISTEN で確認してください。意図しないパブリック bind を見つけたら、セキュリティ方針と突き合わせてからループバック+SSH 以外を開けます。
無人 M4 向け LaunchDaemon/LaunchAgent の再構築
対話 SSH が通ってもデーモン環境の証明にはなりません。古い XML を丸ごとコピーせず、移行先で plist を白紙から組み立てます:openclaw への絶対パス、EnvironmentVariables で PATH=/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin、WorkingDirectory を Workspace ルート、標準出力/エラーを /usr/local/var/log などプロバイダ承認パスへローテーション付きで。読み込みは組織のヘッドレス Mac 方針に合わせたドメインで launchctl bootstrap します。
投入後は非対話プローブで検証します:launchctl start で叩く極小スクリプトが which node を印字し、$GATEWAY_REMOTE_TOKEN の長さだけを示す(中身は出さない)など。SSH シェルとズレたら、チャネルを外部に開く前に plist の環境を揃えます。カナダの日中に意図的に一度再起動し、APAC のメンターがオンラインのうちに冷起動挙動を見ると安心です。
太平洋 SSH と VNC(Screen Sharing)受入れ:自分を騙さない確認項目
SSH は鍵認証のほか、プロバイダと文書化したブレークグラス経路もセットで確認します。平均 RTT だけでなく尾部も見て、アイドルで切れる NAT を ServerAliveInterval や mosh で耐える一方、Gateway 死をトンネル stuck で隠さないバランスを取ります。Screen Sharing ではトークン貼り付けでクリップボード方向、HiDPI スケールで権限ダイアログが隠れないか、同時セッションが許されるか・競合するかを記録します。
受入れには最悪でも現実的な一シナリオを入れます:制約のある上りでオペレータが SSH を開き、plist 経由で Gateway を再起動し、60 秒ログを見てから外向きチャネルで 1 メッセージを送る。これが連続二回成功すれば、同一データセンターからの軽い curl を十回より強い証拠になります。
移行ゲートチェックリスト(誰がサインオフするか)
| ゲート | 目的 | 必須の合格シグナル | 典型オーナー |
|---|---|---|---|
| G0 棚卸し | 謎リスナー・重複 plist を残さない | launchctl list と lsof がクリーン、Gateway バイナリパスが単一 |
プラットフォームエンジニア |
| G1 データ面 | Workspace のバイト一致か管理されたドリフト | チェックサム一致、または最終 rsync で未送信ファイル 0 | 自動化リード |
| G2 シークレット | トークンをホスト世代ごとに分離 | 旧トークンをクライアントから外し、新トークンは plist+金庫のみ | セキュリティ/IAM |
| G3 ランタイム | 冷起動耐性 | 再起動試験 OK、ログにチャネルハンドシェイク成功 | オンコール一次 |
| G4 クライアント経路 | トラフィックがカナダに着地 | 外部プローブが期待 TLS とヘルス本文を取得 | DNS/エッジ所有者 |
移行元とカナダ M4:OpenClaw に効く実務差分
| 観点 | ローカル/旧リース Mac | カナダのリモート M4 先 |
|---|---|---|
| 電源とスリープ | フタ閉じ、省エネ設定、Wi‑Fi ジッター | データセンター電源、pmset/プロバイダポリシーで固定 |
| 出口と IP ストーリー | 住宅 CGNAT、回転 IP | 安定したプロバイダ出口、Webhook 許可が組みやすい |
| ディスク構成 | Fusion またはギリギリのノート SSD | 拡張しやすい APFS、ログ層と Workspace 層を分離設計 |
| TLS 正面玄関 | なし(SSH トンネルのみ)が多い | リバースプロキシが多い、RTT に合わせアイドルタイムアウトを揃える |
| 可観測性 | Console.app をちら見りレベル | 初日からログ集中 Shipping を推奨 |
| オペレータ距離 | キーボード直結 | SSH/VNC、APAC 窓と受入れを計画 |
ロールバック:睡眠と尊厳を守る手順
ロールバックは恥ではなく、冷静に実行する保険です。フェーズC の前に三つをステージします:旧ホストの last-known-good plist、金庫に「非推奨だが取り出せる」と印を付けた直前の gateway.remote.token、DNS またはクライアント設定の Git diff スニペット(一マージで戻せる形)。本番を旧マシンへ戻すなら、まずカナダ側 Gateway を止めsplit-brain 返信を避け、経路復元後に旧リスナーを温め、単一の合成トランザクションで読み書きの一致を確認します。
事前スナップショット tarball はロールバック実験中も触らない正として残します。破損が疑われる場合は git を深夜に無理修復するより、そのチェックサム検証済みバンドルから復元してください。受入れが別原因で二度連続失敗したら、応急処方を積み重ねずロールバックを発動する時間制限を Runbook に書いておきます。
まとめ
OpenClaw をカナダ M4 のリモート Macへ載せ替えるのは、ファイルコピーではなくネットワークとアイデンティティの移動です。Workspace は静止とチェックサムで梱包し、launchd 設定は絶対パスと明示環境で組み直し、Gateway 18789 は SSH 背後で段階を踏んでからエッジ経路を開け、太平洋 SSH と Screen Sharing で現実的なシナリオを受入れます。トークンはホスト世代ごとに一意にし、並列 Gateway は上限を決め、必要になる前にロールバックをリハーサルしてください。上のゲート表と差分マトリクスが、距離と疲労でも共有できる go/no-go の語彙になります。
FAQ
新 Mac で同じ gateway.remote.token を再利用していいか
脅威モデルでホスト連続性を明示的に許す場合のみです。プロバイダ変更では新トークンを発行し、金庫とクライアントを更新し、監視が一営業日緑のあと旧トークンを失効させるのが無難です。
旧と新を並列でどれくらい安全に動かせるか
フェーズB の数分〜数時間は現実的です。日単位はドリフトを招きます。長く重ねるなら共有 Workspace への書き込みを凍結するか、別途 rsync で収束させる覚悟が必要です。
SSH では動くのに再起動後だけ Gateway が死ぬのはなぜか
ほぼ確実に plist 文脈でのPATH かトークン露出不足です。LaunchDaemon 節の非対話プローブと SSH シェルを突き合わせ、EnvironmentVariables を一致させます。
OpenClaw 運用は VNC だけで足りるか
権限ダイアログや視覚デバッグには Screen Sharing が効きますが、繰り返し作業は SSH と plist 編集で自動化してください。長 RTT のみ Screen Sharing だとストレスが溜まるので、プロトコルを意図的にペアにします。
18789 をパブリックに丸出しする必要があるか
必ずしもありません。ループバック bind と SSH トンネル、または TLS 終端したリバースプロキシが一般的です。0.0.0.0 への無防備 bind は稀にしか適しません。
カットオーバー成功の最短シグナルは何か
カナダ経路への認証付きヘルスチェックに加え、外向きチャネル メッセージを端到端で一度観測することです。レイテンシ単体は弱い代理指標です。
tar 展開後に APFS の権限ミスを避けるには
可能ならランタイムユーザーで展開し、そうでなければ所有者・グループを再帰で直し、ヘルパーの実行ビットを automation 再起動前に spot-check します。
移行の途中で RAM やディスクを増やすべきタイミングは
冷起動直後のログ嵐やブラウザ自動化でスワップが踏むなら、フェーズC 完了宣言の前に拡張してください。移行中のディスク逼迫は、一時的なネットワークグリッチを連鎖的ジョブ失敗に変えます。