windowsにvagrantを入れてみた

vagrantはコンソールから仮想マシンを操作するためのソフト。
Chefというソフトと連携して、仮想マシンに追加でソフトをインストールすることもできる。
これを使えば、同じ環境の仮想マシンをぽこぽこ作れるわけです。

で、これをWindowsに入れようと思ったわけですが、最新版を入れると仮想マシンの起動でエラーを吐いて上手く動かない。

C:/Ruby193/lib/ruby/gems/1.9.1/gems/virtualbox-0.9.2/lib/virtualbox/com/implemen
 ter/mscom.rb:61:in `method_missing': (in OLE method `ImportMachines': ) (WIN32OL
 ERuntimeError)
    OLE error code:0 in <Unknown>
      <No Description>
    HRESULT error code:0x80020005
      Type mismatch.
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/virtualbox-0.9.2/lib/virtualbox
 /com/implementer/mscom.rb:61:in `call_function'

と、言う訳でこれの解決方法のメモ。

結論から言うとバージョン選びが重要。最新バージョンは動きません。(2012/1/15現在)
以下のバージョンで動作を確認。

  • ruby 1.9.3p0
  • vagrant 0.7.8
  • Virtual Box 4.0.16

まずはRuby。これは最新バージョンでも動くと思う。
今回はRubyInstaller for Windowsを使った。DevKitなるものがあとで必要となるので、Development Kit - GitHubを参照して、これも入れておく。

vagrantはRubyのライブラリ。gemを使ってインストールする。そのままインストールすると最新バージョンをインストールされてしまうので、次のようにする。

gem install vagrant -v 0.7.8

VirualBoxはDownload_Old_Builds - VirtualBoxから4.0系列を落としてきてインストール。
GUIのインストーラに従って、OKボタンを連打していけばOK。

最新版で上手く動かないのはvagrantのバグらしく、次期バージョンではこの問題は修正されるらしい(#420: Broken after upgrading to VirtualBox 4.1.0 & Vagrant 0.9 on Windows XP - Issues - mitchellh/vagrant - GitHub)。
それまでちょっと古いので我慢。詳しい使い方は、また今度。勉強したらまたメモします。