veeweeでvagrantのUbuntu12.04.2 LTS(precise64) boxを作った

だいぶ乗り遅れてますが、個人的に試行錯誤したのでメモ。
結局シンプルな手順になりました。。。

参考URL: http://www.ryuzee.com/contents/blog/6614

作業環境( 重要 )はUbuntu 13.04 desktopです。
Xがない環境の場合はちょっといじるところが増えるみたいだからご注意を。
macにはveeweeうまく入らんかった。。。

1. veeweeをインストールする準備

rbenv を入れて、 ruby 1.9.3 を入れときます。

rubyは >= 1.9.1 らしい。

sudo apt-get update
sudo apt-get install build-essential libreadline-dev libssl-dev zlib1g-dev
sudo apt-get install virtualbox libxml2 libxml2-dev libxslt-dev git make g++

## rbenv & ruby-build
cd
git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
cd ~/.rbenv/plugins/ruby-build
sudo ./install.sh

cd
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
source ~/.bashrc

rbenv install 1.9.3-p448
rbenv rehash

cd
rbenv local 1.9.3-p448
gem install bundler
rbenv rehash

cd
git clone https://github.com/jedi4ever/veewee.git
cd veewee
bundle install --path=vendor/bundle

2. veeweeインストール

cd
git clone https://github.com/jedi4ever/veewee.git
cd veewee
bundle install --path=vendor/bundle

これだけ。

bundle exec veewee vbox templates して色々出てくれば成功!

3. イメージづくり

  1. テンプレートからひな形作成
  2. ビルド設定を編集
  3. つくる
  4. かためる

本当はdefinitions下の設定ファイルをいろいろいじるときれいに初期設定できるんでしょうけど、ビルドスクリプトに追記する形にしてしまいました。自分的に楽だから。

以下の例ではpuppetとかは対象外にしてます。ご自身でdefinition.rbを覗いてみてください。

cd
cd veewee
bundle exec veewee vbox define 'ubuntu12.04.2-amd64-ja' 'ubuntu-12.04.2-server-amd64'

sed -i -E 's/("(vmfusion|ruby|puppet|chef)\.sh)/#\1/g' definitions/ubuntu12.04.2-amd64-ja/definition.rb

cat <>definitions/ubuntu12.04.2-amd64-ja/base.sh
apt-get -y install language-pack-ja
loadkeys jp
update-locale LANGUAGE=ja_JP.UTF-8
update-locale LANG=ja_JP.UTF-8
echo 'Asia/Tokyo' > /etc/timezone
rm -f /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
FIN

bundle exec veewee vbox build 'ubuntu12.04.2-amd64-ja'
bundle exec veewee vbox export 'ubuntu12.04.2-amd64-ja'

これで ~/veewee/ubuntu12.04.2-amd64-ja.box ができるのであとはご自由に ;)

Linux 

See also