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

  • 25
    Like
  • 0
    Comment
More than 1 year has 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 で煮るなり焼くなりして遊びましょう。

以上!