VirtualBoxのAPIで楽しく仮想化ライフ (1)
周りがマックばかり購入するので、カッとなって Thinkpad X1 を購入しました。まずはUbuntu12.04にVirtualboxを入れて遊んでいます。ほんとSandyBridgeとSSDの速さは恐ろしいものがありますね。AMD信者としてはどうしていいのかわからない気持ちになります。
とはいえ、怒ったり泣いたりしても仕方がないのでVirtualBoxのAPIで色々遊んでみることにしました。
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? }
かなり便利な感じなので、もう少し使い込んでみたいと思います。