harry’s memorandum

おれおれメモ

VirtualBoxのAPIで楽しく仮想化ライフ (1)

周りがマックばかり購入するので、カッとなって Thinkpad X1 を購入しました。まずはUbuntu12.04にVirtualboxを入れて遊んでいます。ほんとSandyBridgeとSSDの速さは恐ろしいものがありますね。AMD信者としてはどうしていいのかわからない気持ちになります。

とはいえ、怒ったり泣いたりしても仕方がないのでVirtualBoxAPIで色々遊んでみることにしました。

rubyのgemによさげなものがあったので。まずはインストール。

$ ruby -v
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
$ sudo gem install virtualbox
Fetching: ffi-1.0.11.gem (100%)
Building native extensions.  This could take a while...
Fetching: virtualbox-0.9.2.gem (100%)
Successfully installed ffi-1.0.11
Successfully installed virtualbox-0.9.2
2 gems installed
Installing ri documentation for ffi-1.0.11...
Building YARD (yri) index for ffi-1.0.11...
Installing ri documentation for virtualbox-0.9.2...
Building YARD (yri) index for virtualbox-0.9.2...
Installing RDoc documentation for ffi-1.0.11...
Installing RDoc documentation for virtualbox-0.9.2...

VMの一覧を取得。あら簡単。

require 'virtualbox'
require 'pp'

vm = VirtualBox::VM.all
vm.each {|v|
  pp :name => v.name, :uuid => v.uuid, :state => v.state
}

#=> 
#  {:name=>"windowsxpps3",
#   :uuid=>"0f264a29-2e96-4fd5-8870-6df96fe334fe",
#   :state=>:running}
#  {:name=>"debian6",
#   :uuid=>"18f307e9-173e-42d4-b3bd-39665af9b176",
#   :state=>:running}
#  {:name=>"ubuntu1204",
#   :uuid=>"edba9b7a-c28b-4469-9256-566c6e27641a",
#   :state=>:running}

起動していないVMを起動してみる。あらこれも簡単。

vm.each {|v|
  v.start unless v.running?
}

かなり便利な感じなので、もう少し使い込んでみたいと思います。