6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

browser-useでEVE-NGを操作してみた

Posted at

以前までの検証でbrowser-useを利用すると、様々な自動化を実装出来るがわかりました。そこで今回はEVE-NGを利用したネットワーク環境構築の自動化をやってみたいと思います。

前提

EVE-NG:5.0.1-24-Community

0. 検証のゴール

あまり多くは望まず、ログイン後にVPC(端末)を追加するところまでとします。またこれを実施するにあたり事前にLabは一つだけ作成しておく事とします。

1. EVE-NGの準備

以下PDFの内容を参考に仮想マシンとしてインストールしてください。

2. EVE-NG構成変更

browser-useにてEVE-NGを操作するためには、LAB作成後に表示されるサイドバーを常に表示状態にしておく必要があります。以下CSSを変更してください。

/opt/unetlab/html/themes/default/css/unetlab.css
 337 #lab-sidebar ul {
 338         margin:0;
 339         #padding:0px;                  # コメント
 340         padding:0px 40px;              # 追加
 341         list-style-type: none;
 342         width:30px;
 343         #overflow:hidden;              # コメント
 344         overflow:visible;              # 追加
 345         transition: width 0.2s ease-out;

こうすることで、サイドバーの内容が常に表示されます。※キャッシュが残りますので、変更後はキャッシュクリアかシークレットウィンドウで開いて確認しましょう。

変更前
image.png

変更後
image.png
このように表示されていれば、browser-useでEVE-NGをうまく操作することができます。

3. browser-useの実行

今回はプロキシ環境やローカルLLMは使わずにOpenAIを利用します。実行コードは以下の通りです。

python:eve-browser.py
import asyncio
import os
from browser_use import Agent
from dotenv import load_dotenv
from langchain_openai import ChatOpenAI

load_dotenv()

async def main():
    agent = Agent(
        task="""
        http://10.2.0.71/#/loginにログインして、Usernameにadmin, Passwordにeveとしてログインします。次に、Add an objectをクリックしNodeを選択し、inputボックスに"Virtual PC"を入力し、対象を選択してSaveボタンをクリックします。
        """,
        llm=ChatOpenAI(model="gpt-4o"),
    )
    result = await agent.run()
    print(result)

asyncio.run(main())

browser-useに関連する内容は以下記事を参考にしてください。

では、Desktop端末から実行してきます。

python3 eve-browser.py 

ブラウザが起動して、eve-ngのページが開きます。
WS000001.JPG

つづいて、UsernameとPasswordが入力されます。
WS000002.JPG

サイドバーの文字が選択されます。
WS000003.JPG

指示通り、Nodeが選択されます。
WS000004.JPG

次に追加するノードタイプ画面が開きます。スクロールが必要となる場合、browser-useは正しく判定できなかったので、inputボックスに文字を入力させるよう指示しています。
WS000005.JPG

入力された結果、VPC(端末)が表示されます。
WS000006.JPG

ノード追加画面に遷移します。今回はそのままsaveボタンを押す指示を与えていますので、画面が閉じてノード追加されます。
WS000007.JPG

かなり見ずらいですが、画面左上にノードが追加されました。無事目的達成です。
WS000008.JPG

4. その他

その後、追加したオブジェクトを選択することはできましたが、ノード間の接続まで自動化することは現時点ではできませんでした。ただし、オブジェクト間をケーブル接続した後のポップアップはdiv要素として認識しているのでこの部分の何かしらの作込み(たとえばメニュー化してしまうなど)ができれば、完全自動化まで行けそうです。

image.png

完全自動化ができれば、フロント側で要件を渡してbrowser-useで環境生成したあと、生成後の画面を返却することでネットワークデモ自動生成システムができるので、ネットワークエンジニアには喜ばれるかもしれません。

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?