ようへいの日々精進XP

よかろうもん

veewee を試す前に相当ハマったのでメモ

きっかけ

  • veewee を試してみようとしたけど、eventmachine のインストールで大ハマリしたのでメモ

環境


準備

必要そうなパッケージを入れておく

以下のように必要そうなパッケージをあらかじめ入れておく。

sudo apt-get install g++
sudo apt-get install libxml2 libxml2-dev libxslt-dev
sudo apt-get install libzip-ruby1.9.1
sudo apt-get install libz
sudo apt-get install zlib1g-dev
sudo apt-get install libssl-dev
sudo apt-get install libruby1.9.1
sudo apt-get install ruby1.9.1-dev
sudo apt-get install build-essential 

上記については環境に応じて異なるよー。

veewee を git clone してくる

git clone https://github.com/jedi4ever/veewee.git
cd veewee

そして bundle install

$ bundle install
Updating http://github.com/hh/em-winrm.git
Fetching gem metadata from http://rubygems.org/........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Using rake (10.1.0)
Using libxml-ruby (2.7.0)
Using CFPropertyList (2.0.17)
Using Platform (0.4.0)
Using builder (3.2.2)
Using gyoku (1.1.0)
Using nokogiri (1.5.10)
Using akami (1.2.0)
Using ansi (1.3.0)
Using bundler (1.3.5)
Using ffi (1.9.0)
Using childprocess (0.3.9)
Using diff-lcs (1.2.4)
Installing eventmachine (1.0.0.beta.3)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
<略>
An error occurred while installing eventmachine (1.0.0.beta.3), and Bundler cannot continue.
Make sure that `gem install eventmachine -v '1.0.0.beta.3'` succeeds before bundling.

コケる。

eventmachine のインストールを諦める

試行錯誤の末に eventmachine 自身のインストールは成功するものの、そもそも eventmachine 自体が何者かを調べてみると...どうやら eventmachineEM-WinRM という gem に依存しているらしい EM-WinRMWindows Remote Management という HTTP(S) ベースで Windows クライアントを管理するツールらしく、今回、Windows でどうこうは全く想定していないのでとりあえずコメントアウトして bundle install した。

上記のように EM-WinRM をコメントアウトして改めて bundle install して無事にインストール完了。


veewee の使い方

OS イメージテンプレートの一覧を取得

bundle exec veewee vbox templates

テンプレートを使って OS イメージの初期化を行う

bundle exec veewee vbox define 'hoge-debian' 'Debian-6.0.7-amd64-netboot' --workdir=/path/to/veewee

実行後、以下のようにファイルが生成される。

$ tree
.
`-- hoge-debian
    |-- base.sh
    |-- chef.sh
    |-- cleanup-virtualbox.sh
    |-- cleanup.sh
    |-- definition.rb
    |-- preseed.cfg
    |-- puppet.sh
    |-- ruby.sh
    |-- vagrant.sh
    |-- virtualbox.sh
    |-- vmfusion.sh
    `-- zerodisk.sh

1 directory, 12 files

上記のシェルスクリプトを修正したり、新しいシェルスクリプトを追加したりして仮想マシンをカスタマイズしていく。

OS イメージの作成開始

bundle exec veewee vbox build 'hoge-debian' --workdir=/path/to/veewee

自動で VirtualBox が起動して OS のインストールが開始される。

f:id:inokara:20130811234854p:plain

Boot オプションも自動的に入力されるのでちょいと不気味。

作成されたイメージから vagrant 形式に変換する

bundle exec veewee vbox export 'hoge-debian'

作成した vagrant 形式の box ファイルは以下のようにして利用する。

vagrant init 'hoge-debian'
vagrant box add 'hoge-debian' '/home/kappa/veewee/hoge-debian.box'
vagrant up

とりあえず

  • veewee が使えるようになった
  • 引き続き、仮想マシンのカスタマイズに手をつけていきたい

参考