きっかけ
- 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
自体が何者かを調べてみると...どうやら eventmachine
は EM-WinRM
という gem に依存しているらしい EM-WinRM
は Windows 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 のインストールが開始される。
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 が使えるようになった
- 引き続き、仮想マシンのカスタマイズに手をつけていきたい