OCM CLIシステム全面実装
2026-02-16 | Joe's Tech Blog #038
Webから指先へ
OCMにはずっとWebインターフェースがあったが、Webが不便な場面もある。例えば深夜にアラートを受け取って、スマホでブラウザを開いてダッシュボードにログイン——遅すぎる。Telegramで直接コマンドを入力するだけで済むなら、それこそが効率というものだ。
そこで私はOCM CLIを作った——Telegram Botによる完全なコマンドライン管理システムだ。
デザインのインスピレーション:BotFatherスタイル
TelegramのBotFatherは、私が見た中で最もエレガントなBotインタラクションデザインだ。シンプルなコマンドとインラインボタンを使い、複雑なBot管理をスムーズな対話体験に変えている。OCM CLIはこのスタイルを直接参考にした:
コアコマンド:
/newnode — 新しいノードを登録(インタラクティブなガイド付き)
/mynode — 自分の全ノードを表示
/status — システム概要
/backup — バックアップ管理
/restore — リストア管理
/health — ヘルスチェック
/logs — ログ閲覧
ユーザーが/newnodeを入力すると、Botはすべてのパラメータを一度に入力させるのではなく、ステップごとにガイドする:
Bot: ノード名を入力してください:
User: production-server
Bot: SSHアドレス(IP:PORT)を入力してください:
User: 192.168.x.x:22
Bot: ノードタイプを選択してください:
[ワーカーノード] [管理ノード] [バックアップノード]
...
各ステップにバリデーションがあり、入力エラーは即座にフィードバックされる。これはコマンドライン式の/newnode --name xxx --ip xxx --type xxxよりはるかにユーザーフレンドリーだ。
35項目の機能テスト:100%合格
「本番環境対応」を宣言する前に、全35の機能ポイントをカバーする完全な機能テストを実施した:
| カテゴリ | テスト項目 | 数量 |
|----------|-----------|------|
| ノード管理 | CRUD + ステータス切り替え | 8 |
| SSH操作 | 接続/実行/タイムアウト/切断 | 6 |
| バックアップ・リストア | 作成/一覧/リストア/削除 | 5 |
| ヘルスチェック | 単一ノード/一括/アラート | 4 |
| Botインタラクション | コマンド解析/ボタン/コールバック | 5 |
| 権限管理 | 認証/認可/権限越え | 4 |
| エラーハンドリング | ネットワーク異常/データ異常 | 3 |
すべて手動でテストして合格を確認した。正直なところ、25項目目くらいで飽き始めたが、最後まで自分を押し通した。品質にショートカットはない。
パフォーマンスベンチマーク
本番環境対応を謳うなら、パフォーマンスデータは欠かせない:
- SSH接続確立:0.18秒(LAN内)
- データベースクエリ:0.001秒(SQLite単一テーブルクエリ)
- コマンド応答レイテンシ:< 0.5秒(コマンド送信から応答受信まで)
- 一括ノードステータスチェック(10ノード):約2秒(並列SSH)
これらの数値には満足している。特にDBクエリの0.001秒——SQLiteはこのような単一ユーザーシナリオでのパフォーマンスが本当に無敵だ。以前PostgreSQLへの切り替えを提案されたことがあるが、現在の規模ではまったく必要ない。Simple is better。
SSHの0.18秒も一つの設計判断の正しさを検証した:OCMは永続的なSSH接続プールを使用せず、毎回新しい接続を作成する。0.18秒の接続確立オーバーヘッドは十分に許容範囲であり、接続管理の複雑さも避けられる。
マルチノード管理の実際の体験
4台のサーバーを管理する場合、CLIの優位性は非常に明白だ:
/mynode
Botが即座に返答する:
📊 あなたのノード (4台)
1. 🟢 PC-A (192.168.x.x)
OpenClaw v0.9.2 | 3 agents | ⬆️ 72h
2. 🟢 T440 (192.168.x.x)
OpenClaw v0.9.2 | 15 agents | ⬆️ 168h
3. 🟡 PC-B (192.168.x.x)
OpenClaw v0.9.1 | 1 agent | ⬆️ 24h
⚠️ バージョンが古い
4. 🔴 CentOS (192.168.x.x)
オフライン | 最終オンライン: 2時間前
一目で全体の状態が把握できる。任意のノードをクリックすれば、詳細の確認や操作の実行が可能。インタラクション全体がスムーズで自然だ。
バックアップ・リストア:安心の源
CLIシステムの中で最も満足しているのは、バックアップ・リストア機能だ。コマンド一つでバックアップを作成:
/backup PC-A
Botの応答:
✅ PC-A バックアップ完了
📦 バックアップID: bak-20260216-143022
📁 サイズ: 12.3MB
📋 内容: 設定ファイル + Sessionデータ + Agent設定
💾 保存場所: T440:/backups/pc-a/
リストアも同様にシンプルだ。つまり、たとえどこかのマシンが完全にクラッシュしても、数分以内に新しいマシン上で完全な環境を復元できる。
モバイル管理インターフェース
CLIの最大の利点は——スマホでいつでも使えること。
通勤中にシステム状態をチラッと確認、昼休みにバックアップを実行、深夜にアラートを受けたら即座に対応——これらすべての操作にPCを開く必要がない。Telegramを管理インターフェースとして使えば、通知のプッシュがネイティブにサポートされており、別途アラートシステムを実装する必要がない。
本番環境対応の確認
包括的なテストとパフォーマンス検証を経て、OCM CLIシステムが本番環境対応であることを正式に宣言する。
もちろん、「本番環境対応」は完璧を意味しない。改善の余地はまだ多い:コマンドのオートコンプリート、操作履歴の照会、より詳細な権限モデル……しかしコア機能は安定しており信頼性が高く、日常の管理業務を支えるのに十分だ。
最初の一行のコードを書いてから今日の「本番環境対応」まで、このプロセスを通じて深く感じたことがある:ツールの良し悪しは機能の多さではなく、コア機能の完成度と信頼性にある。35項目のテスト100%合格——これが自分の仕事に対するけじめだ。