Go言語で、HyperVWebViewerを作ってみました。
紹介記事は既に書いているため、ここでは「なぜ作ったのか?」について書きます。

まぁ簡単にいうと欲しいツールがなかったためなのですが…

なぜ作ったのか?

Windows OS上で仮想マシンを動かす際は、Hyper-Vを使用する事が多いのではないでしょうか?
VM WareやVirtualBoxもありますが、Hyper-VはHypervisor方式ですし。

Hyper-V上の仮想環境を管理するツールとして「Hyper-Vマネージャー」が標準であり、管理する側には便利です。
ただし、Hyper-Vマネージャーは管理者用ツールのため何でも出来てしまいます。
仮想環境のCPUやメモリを上げたり、サーバ上のHyper-Vの設定変更まで可能です。
また、ツールを使用するにはサーバ認証が必要になり、導入が少し面倒です。

管理する側からしたら、ユーザに勝手にCPUやメモリを上げ下げされては困ります。
潤沢なサーバスペックがあれば問題ないのでしょうが、
10や20の仮想環境が同時に動いている場合、メモリ不足に陥りがちです。
また、Hyper-Vの設定を勝手に変更されるのも管理上宜しくないと考えられます。

そこで、ユーザがHyper-Vの環境を閲覧でき、仮想環境の起動くらいできるようなツールはないものかといろいろと調べてみたのですが…
見つかりませんでした。
(何か良いツールがあれば教えて下さい。)

ないなら、作るか!
となり、HyperVWebViewerを作りました。
ユーザにとっては、CUIよりインストール不要なWebアプリケーションが良いよな!と思いましたが、Hyper-Vが動いているサーバは仮想環境を動かすためのサーバです。
仮想環境を動かす以外の事にマシンパワーを使いたくない!、
セキュリティを考えソフトのインストールなどは最小限に留めたい!と考え、
Go言語でWebアプリケーションを作成することに決めました。
ReactAngularMeteorなども魅力的だったのですが、Nodeなどをインストールする必要があるため、また、Go言語よりはマシンパワーを食いそうだなと思い、候補から外しました。
(ここら辺の理由は私の勝手な考えであり、特に調査したりはしていないです。
なので、誤っていれば教えて欲しいです。)

Go言語であれば、Go言語から作成したExeファイルのみでWebアプリケーションが実現可能です。
また、特に何かをインストールする必要がない事も魅力でした。
ソフトをインストールする場合、どうしてもセキュリティが弱くなると思うからです。
また、アップデートにも気を付ける必要があり、維持管理コストがかかります。
そのため、「ユーザ用にGo言語でHyper-V上の仮想環境を閲覧できるWebアプリケーションを実現できれば、良いんじゃねぇ!」と考えました。

その結果、できたのが「HyperVWebViewer」です。

機能

主な機能は、次のとおりです。

  • Hyper-V上の仮想環境情報の閲覧
  • 仮想環境の起動

はい、少ないです。
ですが、ユーザにとってはそれで十分だと考えています。
また、必要であれば、後で付け足せば良いだけなので、最初はミニマムにしました。

最後に

サーバと言えば、Linuxでしょ!と個人的には思っていますが、
Windowsサーバ上でHyper-Vを使用している方には便利なツールではないでしょうか?(自画自賛)

というか、Hyper-Vを使用している方で、便利な管理ツールなどがあれば、
教えて頂きたいです。
お願いします。