本番で OpenClaw Gateway を運用するとき、難しいのは openclaw update を打つことではなく、stable/beta/dev チャネルを変更ウィンドウに合わせること、インシデント中に自動アップデートで不意に再起動されないようにすること、そして npm で固定するか git で戻すかの順序を誤らないことです。本稿ではロールバックを誤って責める七つの前提、インストール面・更新入口・ロールバック手段のマトリクス、順序依存の六段階 Runbook(バックアップ → チャネル確認 → アップデート → 任意で OPENCLAW_NO_AUTO_UPDATE → 再起動/プローブ → doctor)、および gateway install --force が必要なときに split brain ガイド へ寄せる判断をまとめます。Docker 利用者は compose 本番アップグレード と併読し、ベースラインは ヘルスログとロールバック に置きます。
「OpenClaw の品質」チケットを開き直す前に、次の落とし穴を拾ってください。
openclaw update を「パッケージだけでサービスは触らない」とみなす: launchd/systemd のメタデータは、ユニットが呼ぶバイナリと一致している必要があります。不一致は再起動後も再発します。
本番 SLA を beta/dev に載せる: プレビュー系はサンドボックス向けです。変更票は既定で stable と明示的な semver を書きます。
バイナリを下げる前に openclaw.json を大量編集する: まず実行面を既知良好ビルドに固定し、その後でスキーマ移行が要るか判断します。
OPENCLAW_NO_AUTO_UPDATE を連絡の代替だと思う: 制御レバーです。メンテ窓、オーナー、ロールバック手順は別途公開します(意味論は最新の upstream ドキュメントに従います)。
クリーンなツリー確認なしで git ロールバックする: git checkout <tag> のあと、サブモジュール、ロックファイル、ローカルパッチを確認し、リリース成果物と一致させます。
Docker の手順をベアメタルの npm にそのまま当てる: タグ、ボリューム、エントリポイントは異なります。コンテナは compose ガイド に従い、コマンドチェーンは分けます。
doctor が終わる前に全トラフィックを戻す: メンテを下ろす前に、少なくとも一度 channels status --probe と cron list の確認を要求します。
手順 7 が緑でもガードがバイナリ不一致を訴える場合は、npm をループする前に split brain プレイブック へ移ってください。
ロールバックをスクリプト化する前に、OpenClaw を何で入れたかを言語化します。
| 面 | 代表的な更新入口 | 主なロールバック手段 | 次に読む |
|---|---|---|---|
| npm グローバル | openclaw update/npm install -g … | @scope/[email protected] を固定して再インストールし、サービス封入を合わせる | split brain |
| git ツリー | git pull/ベンダビルド | タグで git checkout して再ビルド | 第3節の順序;Docker と混在させない |
| インストーラ | ベンダ CLI/curl インストーラ | ピン留めしたインストーラバンドルを再実行 | チェックサムをチケットに添付 |
| Docker/compose | 新しいイメージタグを pull | タグ/ダイジェストとボリュームスナップショット方針を戻す | compose アップグレード |
黄金の順序:(1) 証跡のバックアップ → (2) バイナリの身元 を固定 → (3) そのあとで JSON 移行を議論する。
リモート構成では gateway.mode と URL の確認が依然として必要です。詳細は リモートモードガイド を参照してください。
順序に敏感です。CLI とユーザーサービスのバイナリが分岐している場合は split brain ガイド を開いてください。
証跡とバックアップ: openclaw --version、gateway status、マスクした環境変数抜粋、openclaw.json またはマウントボリュームのスナップショットを取得します。
チャネル確認: upstream ドキュメントに沿って stable/beta/dev を揃えます。本番は stable を既定とし、チケットに semver を明記します。
アップデート適用: 文書化された openclaw update を優先します。npm install -g を使う場合は、直後に サービスユニットが正しい接頭辞を指しているか を検証します。
インシデント用ゲート(任意): 凍結やホットフィックス固定時に、ドキュメントに従い systemd/launchd のシェルやコンテナへ OPENCLAW_NO_AUTO_UPDATE を注入し、不意のアップグレードを止めます。解除条件を記録します。
コールド再起動とプローブ: openclaw gateway restart → channels status --probe。リソース症状は not ready へ回します。
doctor と観測: openclaw doctor を実行し、ヘルスログ の保持窓に沿ってログをサンプリングしてからメンテを閉じます。
openclaw --version openclaw update openclaw gateway restart openclaw doctor openclaw channels status --probe # npm 固定の例(パッケージ名はドキュメントに従う) # npm install -g @your-scope/[email protected]
注: doctor がフォークしたバイナリを報告する、あるいは破壊的な gateway 手順を拒否する場合は split brain チェックリスト に切り替え、npm だけでループしないでください。
OPENCLAW_NO_AUTO_UPDATE と変更窓自動アップデートはドリフトを減らしますが、インシデント、監査、チーム横断の固定ではバックグラウンド pull を止める必要があります。それが OPENCLAW_NO_AUTO_UPDATE の意図です。正確な意味、既定、注入箇所(ユーザーユニット/シェルプロファイル/コンテナ環境)は最新の upstream ドキュメントに従い、本稿は運用上の衛生のみを扱います。
注意: ゲートは恒久的な方針ではありません。長期間自動アップデートを止めると手動のずれを招きます。理由、解除担当、解除後の全回帰を記録してください。
レガシーバイナリにサービスを書き換えさせる破壊的な OPENCLAW_* とは異なり、このゲートは主として自動アップグレードのペースを一時停止します。split brain が既にある場合でも、PATH を揃えて封入を再インストールすることが先です。
定量化できるチェックを変更票に残します。
openclaw --version が一致し、チケットの目標と合わせます。git rev-parse HEAD とタグを添付、npm は正確な semver、compose はイメージダイジェスト(Docker ガイドに従う)。コンシューマ向けノート PC はスリープや再起動が予測しづらく、Gateway を VPS のように安定稼働 させつつ Apple Silicon や GUI の利点を残したい場合、無限のローカルアップグレードより専用クラウド Mac の方が安全なことが多いです。NodeMini は SSH 向けのレンタルノードと明瞭な料金を提供します。Mac Mini レンタル料金 と ヘルプセンター を参照してください。OpenClaw の推奨読み順:オブザーバビリティ → cron → リモートモード → split brain → 本稿(チャネルとロールバック) → カテゴリ絞り込み。
openclaw update はベンダのチャネル意味論に沿います。単純な npm はグローバル接頭辞下のファイルだけを更新し、古いパスを指したままの launchd/systemd ユニットを自動では修復しません。それが split brain の話題であり、多くの場合 gateway install --force が必要です。
インシデント、監査での凍結、必須のパッチ固定時です。意味と注入は upstream に従います。解除後は doctor とチャネルプローブを再実行し、ログは オブザーバビリティの指針 に合わせます。
compose 本番アップグレード を優先してください。イメージのタグ/ダイジェスト、ボリューム、起動順がロールバックを決めます。ベアメタルの npm/git の説明は並行して読む参照であり、無関係なコマンドチェーンを混ぜないでください。