Posted at

veeweeでVagrant用のboxをつくったメモ

More than 5 years have passed since last update.

成果物 => https://github.com/luckypool/veewee-ubuntu-saucy-64


はじめに

veeweeで base box をつくるモチベーションは下記のような感じ



  • Vagrant は気軽に scrap & build できてアツい


  • vagrantbox.esで各種 base box が配布されてて、気軽に使える

  • しかし 人様のboxは何をどうやって作ったか分からん ので base box 自分でつくりたい

ってことでveeweeをつかってみました

なんで veewee?

packerでも base box を作ることができます。しかし、documentをみながら一つ一つ設定していくのは結構手間がかかります。また、基本設定はなんだかんだ同じようなはずなので、先人の知恵(veewee/templates)が詰まってるveeweeが便利そうです。また、状況によって template を自分好みに修正すれば良さそうです。

今回はVagrantで使うVirtualBoxのイメージを作ってみました。

以下はそのメモです。


About “veewee”

そもそも veewee って何か?

「VMイメージを簡単に作る便利ツール」です。gemになってます。

Vagrant, VirtualBox, VMWare, KVMなどのイメージをつくることができるようです。


Requirements


Installation


Using template

bundle exec veewee vbox templates | grep -i ubuntu

こんな感じで ubuntu の base box のテンプレート一覧が取得出来ます。

私は学生時代 yum よりは apt にお世話になってたので、 ubuntu-13.10-server-amd64 のテンプレートを使うことします。

bundle exec veewee vbox define ‘ubuntu-saucy-64’ ‘ubuntu-13.10-server-amd64’

すると definitionsディレクトリ以下に下記のようなスクリプト(テンプレート)が作られます。

definitions

└── ubuntu-saucy-64
├── apt.sh
├── build_time.sh
├── chef.sh
├── cleanup.sh
├── definition.rb
├── parallels.sh
├── preseed.cfg
├── puppet.sh
├── ruby.sh
├── sudo.sh
├── vagrant.sh
└── vbox.sh

このままでもOKですが、私はpreseed.cfgを2箇所だけ修正しました

他にも修正したい場合はドキュメント参照しましょう


Build box

bundle exec veewee vbox build ubuntu-saucy-64

これで iso イメージのダウンロードから基本設定までやってくれます。GUIをオフにすることもできるようですが、勝手に設定されてくのを眺めるのも面白いです。


Export box

bundle exec veewee vbox export ubuntu-saucy-64

これで ubuntu-saucy-64.box が生成されます

そして、ログにあるとおりにboxを追加して vagrant up するだけです :)

vagrant box add ubuntu-saucy-64 ./ubuntu-saucy-64.box

vagrant init ubuntu-saucy-64
vagrant up
vagrant ssh


おわりに

成果物 => https://github.com/luckypool/veewee-ubuntu-saucy-64


  • veewee は先人の知恵(veewee/templates)が詰まってる

  • このtemplatesを参考に修正していけばカスタムbase boxがつくれる


  • README.md見れば大抵のことは事足りるので簡単です

base box 作ったらあとは chef で煮るなり焼くなりして遊びましょう。

以上!