株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

ESXi の AIOps だ! 2025冬【後編】

実装とコードで見る ESXi-AIOps-Agent

speakerdeck.com

 


1. 後編のはじめに

こんにちは、ネットワールドの海野です。

前編では「何を作ったか / どういう構成か / 何が面白いか」を整理しました。
後編は、手を動かすパートです。

  • リポジトリ構成とセットアップ

  • 起動して会話するまで

  • デモでやった操作の流れ

  • 実装コード断片(要点だけ)

  • 実装のポイントを一言で

前編はこちらです。

 


2. リポジトリ構成とセットアップ

一次情報は GitHub と SpeakerDeck に置いてあります。

 

セットアップ(最短ルート)

README に詳細がありますが、ここでは「最短で動かす」手順だけ抜粋します。

  1. リポジトリ取得

 
git clone https://github.com/unnowataru/ESXi-AIOps-Agent cd ESXi-AIOps-Agent
  1. venv 作成と有効化(Windows PowerShell例)

 
python -m venv venv .\venv\Scripts\activate
  1. 依存関係インストール

 
pip install -r requirements.txt

  1. Playwright(Chromium)セットアップ

 
playwright install chromium

 


3. 設定ファイル(local_config.py)

機密情報をコードに直書きしないために、設定は local_config.py に逃がします(README でもこの運用です)。

local_config.py の例(値は必ずマスクしてください):

 
# ========================================== # 1. VMware ESXi 接続設定(必須) # ========================================== ESXI_HOST = "192.168.x.x" ESXI_USER = "root" ESXI_PASS = "********" # ========================================== # 2. Google Gemini API 設定(必須) # ========================================== GEMINI_API_KEY = "AIzaSy..." # ========================================== # 3. オプション(任意) # ========================================== ESXI_SSH_PORT = 22 BROWSER_HEADLESS = False DEFAULT_VM_NAME = "ubuntu01"

ポイントは2つだけです。

  • local_config.py は機密情報を含むので Git 管理しない(README でも注意書きあり)

  • HEADLESS の切り替えができるので、デモでは False にして画面を見せると分かりやすい

 


4. エージェントの起動

venv が有効化されている状態で、起動します。

 
python esxi_aiops.py

起動すると、内部的にブラウザが立ち上がって ESXi UI へ自動ログインし、コンソールに esxi> のプロンプトが出ます。

youtu.be

ここまで来たら、あとは会話するだけです。


5. 自然言語で ESXi を操作してみる

5.1 VM 一覧を出す

 
esxi> 現在のVM一覧を表示して

https://youtu.be/aIiR-mvWvqI?si=FFZp_t1nuSi1QAkm&t=109

5.2 電源状態の確認 -> Power On / Shutdown

 
esxi> ubuntu01 の電源状態はどうなってる? esxi> ubuntu01 を起動して esxi> ubuntu01 をシャットダウンして

https://youtu.be/aIiR-mvWvqI?si=R7PD8QvvfdUI2R0O&t=186

5.3 スナップショット取得

 
esxi> web-server-01 のスナップショットをとって。名前は「Created by Gemini」で。

https://youtu.be/aIiR-mvWvqI?si=6Y9m9MidErmI90H_&t=392

 


6. 【コラム】実装のポイントを一言で

コード全部を追うより、後から効いてくるのはここです。

6.1 Gemini は「考える役」、実行は Python

前編解があるかもしれませんini に「実行まで丸投げ」しないのが大前提です。
Gemini は意図理解とプランニング、Python は安全に手を動かす実行系、という分離が肝です。

6.2 SSH + Web UI のハイブリッドは現実解

ESXi は「SSH で完結する操作」と「UI で触りたい操作」が混ざります。
ちなみに paramiko と Playwright を併用するのはこの記事での実装の都合で、より適切な解があるかもしれません。

 


7. 後編まとめ

  • README の手順通りにセットアップすれば、esxi> まで到達できる

  • 以降は自然言語で VM 操作(一覧/電源/スナップショット)が可能

最後に注意点です。

本ツールは ESXi に対して変更操作(電源操作やスナップショット取得など)を行います。
必ず検証環境で試してから利用してください。

私はラズパイで試しました。