vboxapiでVirtualBoxをPythonで操作その4

対象: VirtualBox-3.1, Python-2.6

ということで、調査中に見つけた情報源を以下に記述しつつ、VirtualBoxシリーズは一旦ここまにしたいと思います。

http://www.virtualbox.org/

VirtualBoxの公式サイトです。

公式サイトのダウンロードページには以下のようなものが含まれます。

SDKのダウンロードは、要ユーザ登録です。SDKや商用版のライセンスはPUELとなっています。3.1のリリースと同時に各種情報が一斉に3.1に対応しており、さすが企業の公式サイトという感じです。

VirtualBox Web Console - Web UIの開発プロジェクト

VMware Sever 2.0のような、Web Console UIの開発プロジェクトです。vboxapiを利用しており、pythonで記述されています。大変参考になります。つい最近、3.1に対応したようです。

------------------------------------------------------------------------
r92 | vboxweb | 2009-12-09 01:08:19 +0900 (水, 09 12月 2009) | 1 line
Added support for virtual storage (storage controllers, buses, ports etc).
------------------------------------------------------------------------
r90 | vboxweb | 2009-12-08 17:25:32 +0900 (火, 08 12月 2009) | 1 line
Update for VirtualBox 3.1.
------------------------------------------------------------------------
r88 | vboxweb | 2009-10-08 05:08:11 +0900 (木, 08 10月 2009) | 1 line
Patch adds a usage statement and deals with unknown commands (Josh Wright).
------------------------------------------------------------------------

できることはまだまだVMware Serverには負けますので、どうしてもWeb Console UIが必要な方はVMware Serverを選択することになるでしょう。
導入を試された方のBlogエントリはこちら → ぷれいんぐLinux VirtualBox Web Console on Windows 7 (VBoxWeb)

google.comがどうとか出てうまく動かない人

VBoxWebには、一度外部接続を行って自分のIPを特定しているコードがあります。
r92の場合、VBoxWebSvr.pyの630行目ぐらいの以下の記述を修正しましょう。

    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("google.com", 80))
    serverAdr, serverPort = s.getsockname()[:2]
    s.close

これは、VRDPServerでの接続元情報として、外部に接続先として提示するIPアドレスを決めるための処理です。
HTTP_PROXYを参照しないため、FirewallやProxy環境の人は("google.com", 80)の部分を、どこかのIP Reachableなサーバに書き直す必要があります。

VBoxUtil.py

Blogがあったはずなのに見付かりませんね……。
vboxapiを使ったツールです。VMを指定して、使用しているHDDを複製して、別ディレクトリにコピーしたり取り込んでくれたりするようです。
SnapshotやHDDの取り回しの処理がとても参考になります。3.1の対応はされていないようです。

End user forums for VirtualBox

公式フォーラムです。
検索していると、SDKAPI関係の質問がとときどき引っ掛かります。古い情報も多くあまり参考にはなりませんでした。
エンドユーザー向けです。

さいごに

ということで、最近人気が出てきたVirtualBoxの紹介シリーズでした。