キャンパスノットワークの中でサーバを立てるのが不自由になっている学生たちのために、手軽に実験に使えるプライベートクラウド環境(何ソレ?)があるといいなぁと思いつつ、OpenStack やら CloudStack やら流行のものを調べてみましたが、どれも面倒くさそうですねぇ。何かお手軽なのはないかと思って物色していたら phpVirtualBox なるものが見つかったので入れてみました。最近の VirtualBox には WebService として SOAP API が付いていて、これを叩くフロントエンドとして機能する仕掛けなのですね。ずいぶん前からあるのに知らなかったのは残念 ^^;
VirtualBox も phpVirtualBox もバージョンアップにつれて仕様が変化していて、特に FreeBSD では適切なドキュメントが見つからず少し手こずりましたが何とか動いてくれています。
従来の VirtualBox をリモート管理しようと思うとコマンドラインになってしまいますが、これならブラウザで管理ができ、お手軽ななんちゃってクラウドとして使えそうです。さらに私のお手製の VIMAGE 仮想ネットワーク構築クラスライブラリ VITOCHA (通称バーチャル◯もちゃ) と組み合わせれば仮想ネットワークも色々組めて学生の教育、実験用には十分じゃないかと思います。
以下、設定のメモです。漏れがあったらごめんなさい。
1. ホストを用意 (消費電力を重要視してみた) FreeBSD 9.1-RELEASE CPU: Intel(R) Core(TM) i3-3220T CPU @ 2.80GHz (2800.08-MHz K8-class CPU) real memory = 17179869184 (16384 MB) avail memory = 16222253056 (15470 MB) 2. VirtualBox-OSE を ports で以下のオプションをつけてインストール [*] VNC Build with VNC support [*] WEBSERVICE Build Webservice 他はお好みで (今回入れたのは virtualbox-ose-4.2.6) 3. apache22 を ports でインストール 4. phpvirtualbox を ports でインストール (依存して php5 など色々入る) /usr/local/www/phpvirtualbox ができるので、 ln -s /usr/local/www/phpvirtualbox /usr/local/www/apache22/data/ (今回入れたのは phpvirtualbox-4.2.4) 5. ports で出来る vboxusers (nologin) では不便なので adduser vbox (login group は vboxusers) する。 6. /usr/local/www/phpvirtualbox/config.php の以下を変更 var $username = 'vbox'; var $password = '********'; var $language = 'ja'; 7. /etc/rc.conf に以下を設定 dbus_enable="YES" vboxguest_enable="YES" vboxservice_enable="YES" vboxnet_enable="YES" vboxwebsrv_enable="YES" vboxwebsrv_user="vbox" apache22_enable="YES" 6. /usr/local/etc/apache22/httpd.conf 等に以下を設定 AddType application/x-httpd-php .php 7. /boot/loader.conf に以下を設定 vboxdrv_load="YES" vboxnetflt_enable="YES" vboxnetadp_enable="YES" 8. リブート 9. http://[サーバ]/phpvirtualbox/ で管理画面に繋がれば OK 10. ゲストマシン (udonとか) を作成 11. 標準の RDP によるコンソールが使えないので以下のコマンドで VNC を使えるようにする。 su vbox -c 'VBoxManage setproperty vrdeextpack VNC' su vbox -c 'VBoxManage modifyvm udon --vrdeproperty VNCPassword=fugafuga' 12. ゲストマシンを起動したら、VNC クライアントでホストの 9000番ポートに接続
Copyright by T.Suzuki