2月 052024
 

以前のエントリで「bhyve の ubuntu で Intel Wi-Fi 6 AX200 を利用する。」と、いうエントリを書きました。そして、一個前のエントリ「NiPoGi GK3Pro ミニ PC 購入。」では MINI PC には VMware ESXi ではなく bhyve で仮想環境を構築した。と、書いています。

bhyve は基本的にコマンドをチマチマ打っていく状態だったので『GUI で簡単に仮想サーバ構築とかできないのかなぁ?』と思って探してみるとあるようですねぇ。 FreeBSD の ports にはなっていないようですが、GitHub からダウンロードできるようです。

https://github.com/DaVieS007/bhyve-webadmin

ここから bhyve-webadmin-master.zip をダウンロードして展開します。
今回ダウンロードしたのは BVCP という bhyve をウェブベースの GUI で管理できるものになります。
インストール先の FreeBSD では bhyve の環境が整っている必要があります。上記の「bhyve の ubuntu で Intel Wi-Fi 6 AX200 を利用する。」のエントリ中の『1. FreeBSD 母艦側の設定』の部分の設定をまず先済ませておく必要があります。

 
1.インストール
展開後にその中にある install.sh を実行します。以下、簡単なテキストキャプチャです。
指定するのは唯一データを管理するディレクトリを指定するのみです。今回は /opt/bhyve を指定しました。

# unzip bhyve-webadmin-master.zip
<略>
# cd bhyve-webadmin-master
# ./install.sh

                    ██████╗ ██╗   ██╗ ██████╗██████╗ 
                    ██╔══██╗██║   ██║██╔════╝██╔══██╗
                    ██████╔╝██║   ██║██║     ██████╔╝
                    ██╔══██╗╚██╗ ██╔╝██║     ██╔═══╝ 
                    ██████╔╝ ╚████╔╝ ╚██████╗██║     
                    ╚═════╝   ╚═══╝   ╚═════╝╚═╝     

            Bhyve Virtual-Machine Control Panel under FreeBSD
        
 N  2024-02-05 09:38:25 | BVCP | Initialising BVCP-Backend 1.9.8-p9 Application

  [>] Generating Entropy ... [9BA2FE3E0EC4B6D72CF2E6760FF5B0AA]

 Welcome to initial setup menu!
 The Software is located at: /var/lib/nPulse/BVCP

 The Software is producing pseudo filesystem scheme for virtual machines using symlinks
 Where to create metadata, iso_images, database, config, logs: (Does not need much space), default: [/vms]_> /opt/bhyve
<略>
 N  2024-02-05 09:40:08 | BVCP | Initialising BVCP-Backend 1.9.8-p9 Application
 N  2024-02-05 09:40:10 | BVCP | Starting Database ...
 (!) Admin Credentials recreated,
   - User: admin
   - Password: LmZH4kXD

 N  2024-02-05 09:40:10 | SW | Program exited gracefully...
Installation Finished!
Navigate: https://[your-ip]:8086
#

 
BVCP のデータ管理用ディレクトリを指定してインストールすると上記のようになって終わります。ウェブログインするパスワードが表示されているので覚えておきましょう。

インストール先についてですが、以下のようになっています。

  • BVCP のベースプログラムは /var/lib/nPulse/ にインストールされます
  • /etc/rc.conf に bvcp_enable=”YES” という文字列が追加されます
  • /usr/local/etc/rc.d/ 内に bvcp-backend bvcp-frontend bvcp-helper の三つのファイルが追加されます
  • データ保存先の /opt/bhyve/ が作成されます

 
上記のディレクトリ、ファイルを全て削除することによりまっさらな状態(uninstall した状態)となります。

 
2.仮想マシン作成前の準備
インストール後ウェブブラウザから https://wanchan.running-dog.net:8086 などとアクセスします。

インストール時に控えていた admin とそのパスワードでログインし、まずは右上をクリックしアカウントの管理として Account Settings から自分のメールアドレスを登録しましょう。

 
新規にアカウントを作成したら admin をログアウトして、新しいユーザでログインし直してと。
仮想マシンが利用する HDD イメージを保存するストレージを指定します。大容量のディレクトリを指定しましょう。

NFS 領域も指定できます。Active 系 bhyve 母艦がダウンすると NFS 上にゲスト OS のイメージがあるので Standby 系を Active にしてゲスト OS を起動できたりするので冗長構成が取れそうですね。

 
次にネットワークを設定します。
VLAN などの設定は母艦の FreeBSD 側で先に設定しておく必要があります。必要であれば設定しておきましょう。この辺り VMware ESXi 的に言うと vmnic0 に VLAN 単位の vSwitch を生成して、それを仮想マシンで利用する。みたいな雰囲気ですね。
母艦の FreeBSD が利用できないネットワークインターフェースは当然 bhyve でも利用できません。
pptdevs 経由で仮想マシン側にデバイス渡したくても BVCP の UI にデバイスを渡すオプションは今のところ無いようです。

ネットワークを作成する場合は em0 とか re0 などを一個含めておくと、bridge300 番台を生成してくれます。母艦側の FreeBSD の VLAN インターフェースも指定可能です。
その後、仮想マシンを作成したタイミングで tap300 番台を自動生成してくれ、かつ、それを bridge として追加してくれるようになります。
母艦側の NIC を含めないネットワークを作成すると、それは裏 LAN 的な、外に出ていかないネットワークとなります。

これで、アカウント・ストレージ・ネットワークの設定が完了しました。

 
3.仮想マシン作成
ここまで来たらいよいよ仮想マシンの追加をします。一番最初は OS の雛形を指定することになります。

対応している OS は FreeBSD・Linux・Windows になります。まぁ、それだけあれば十分か? macOS は FreeBSD かな?デバイスの形態が全く違うけど・・。 VyOS は Linux ですな。では Solaris は? まぁ、その話は置いといて・・f(^^;;。

雛形を作成したら次に作成した OS を選択して詳細を設定していきます。まぁ、GUI なので直感的に設定ができますよね。

色々細かい設定とかありますが、まずは OS をインストールしなければならない。
Virtual Hardware のところでは CPU 数やメモリ容量の変更ができます。

インストールのために CD-ROM Drive を指定します。ISO イメージを、データを管理するディレクトリ内に設置します。今回の環境での場所としては /opt/bhyve/iso_images/ になります。このディレクトリ内に保存します。

次に HDD イメージを作成します。登録したストレージ内に必要な容量を選択します。
その次に追加された HDD イメージの詳細設定を行います。

Name / Description は書いておいたほうが良いでしょう。 LUN Slot は気分的な設定値ですが、仮に HDD を複数接続したときに番号をずらしたほうが良さそうな雰囲気ですよね。
Attach Disk にチェックを入れると OS 側で HDD を認識するようになります。

作成した HDD は 今回の環境では NFS 領域の /media/Strage/ に vm_images というディレクトリが作成され、その中に格納され /media/Strage/vm_images/ubuntu01_disk01.img になります。 仮想マシン登録時に指定した Machine Name の ubuntu01 (小文字になる)と Name / Description で指定した disk01 を合わせたファイル名になります。

最後にネットワークを指定します。
自分が接続したいネットワークの指定と、ドライバを指定します。ドライバは FreeBSD 的に言うと vtnet0 と em0 の二つが選べます。 WindowsOS をインストールするときは Intel Pro 1000 を指定したほうが良いかもです。

 
これで設定がぜんぶ完了しましたかね。

 
4.いよいよ起動
では左上にある緑色の Start ボタンを押しましょう。そして起動後に現れる VNC Console をクリックすると別ウィンドでコンソールが表示され OS がブートするところを確認できます。その後 OS のインストールを進め、再起動してインストール完了。
apt -y update などで最新の OS 状態にしたり apt-get install でパッケージを色々インストールして最低限の環境を構築すれば良いですね。

ここで一旦 OS を停止して /media/Strage/vm_images/ubuntu01_disk01.img をバックアップしておけば、もう一個 OS を作成したいときにタネ用 HDD として利用できます。
新規に ubuntu02 とかを作成するときに Create Virtual Disk のところでうまいこと指定することができます。

あと、起動時に毎回コンソールに入る状態になっているのですが、一番上の Options の中の Wait for console: を No にすると、コンソール画面を開く必要はなくスルっと起動するようになります。

 
自分で作成した環境で、コマンドベコベコ打って仮想マシンを作成していたとき、WindowsOS は中々起動できなかったのですが BVCP を利用すると簡単に起動させることができます。
母艦側には潤沢な資源が必要になりますが、僕が試してみたところ Windows11 Pro と Window Ssever 2019 が起動できて動作しています。
まぁ、Windows11 の場合は BypassTPMCheck と BypassSecureBootCheck は必須になりますが、ここでは省略します;-)。

とまぁ、比較的簡単に bhyve を利用したウェブ UI の仮想環境が構築できました。

 
今回の BVCP を利用した bhyve 環境は、新規の仮想環境の構築となります。今までコマンドベースで自分の趣味を反映した bhyve 環境で用意したモノを再利用しようとしてもほぼ利用できません。
例えば BVCP 環境下で作成した FreeBSD のディスクイメージを自分がコマンドベースで作成した bhyve 環境に持っていって起動しようとしても、ブート時のデバイス認識のところでエラーになって起動しなかったりします。その逆もしかりです。

今までのコマンドベースで構築した環境・仮想マシンを捨てて、新しく BVCP 環境に移行するか、コマンドラインベース環境と同居するか悩みます。が、やっぱ GUI 環境のほうが楽だね。になると思いますが・・f(^^;;。

 
5.そろそろエンディング
前回のエントリでは Intel Celeron N5105 な NiPoGi GK3Pro ミニ PC で VMwareESXi が動作しないような環境(動作したとしてもデバイスを認識しないような PC の構成)においても FreeBSD が動作するのであれば bhyve による仮想環境が構築可能である。と記載しています。
そこに今回 GUI ベースで bhyve を動作させることにより、ますます bhyve のしきいが低くなりました。これで楽しさが広がりますねぇ;-)。

これは僕の仮想マシン一覧になりますが、母艦は FreeBSD/amd64 14.0-RELEASE で動作しております。仮想マシンとして動作している freebsd03 は FreeBSD/amd64 13.2-RELEASE で、現在起動中です。
この freebsd03 内では qemu を利用した chroot で中に入る環境があって、そこは FreeBSD/arm64 13.2-RELEASE の環境が構築されており ports のコンパイルなどを行っております。

こんな非常にややこすぃーい環境も構築できるのが良いっ!! ;-P

  1 件のコメント to “bhyve を GUI で操作する BVCP の導入。”

  1. ども。エントリの著者です。

    bhyve-webadmin は 2.0.0 以降で IOMMUをサポートしたですな。
    GUIのメニューも色々増えて、だいぶコマンドラインのオプションに対応して来ました。
    このコメント記載時の最新バージョンは 2.0.8 で、だいぶ使いやすくなりました。

    ただ、相変わらずソースコード非公開ですけど・・。

 コメントを書いてください。

HTML タグが利用できます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(必須項目)

(必須項目)

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください