My personal Buildbox with Veewee to automatically generate VirtualBox images.
Shell Ruby
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
definitions
.gitignore
.ruby-gemset
.ruby-version
Gemfile
LICENSE
README.md
Rakefile

README.md

Overview

My personal Buildbox with Veewee a tool for easily bulding custom Vagrant base boxes, KVMs, and virtual machine images. By using the Rakefile you can automatically generate VirtualBox images.

More information on the fantastic Veewee.

Repository Files

  • .gitignore - ignore rules to tell git what files to ignore
  • .ruby-gemset - currently used Ruby gemset with RVM
  • .ruby-version - currently used Ruby version
  • GEMFILE - Gems needed
  • Rakefile - file to generate boxes

Rake Tasks

The repository contains a Rakefile that includes tasks. To view the tasks available with in the repository with a brief description, run rake -T.

The default task (default) is run when executing rake with no arguments. It will call the task rake build:all.

  • rake build:all - Build all baseboxes
  • rake <definition> - Build a specific box from a definition
  • rake build:ci - Skip adding to vagrant and archive the boxes (CI Builds)

Configuration

Prerequisites

I give you a short tutorial on how to install everything on a Mac. There are probably far better tutorials for Linux and other OS. The easiest way to install RVM is by using JewelryBox which is an official OSX RVM GUI. From inside the app you can install your preferred Ruby version e.g. ruby-2.0.0-p0 and name your RVM gemset e.g. vagrant-buildbox. (see under usage)

Also make sure to install the latest Vagrant version as well as the latest version of VirtualBox.

Generate boxes for VirtualBox

Usage

Clone the repository to your working directory.

git clone <repo_name>

Whenever you switch to the working directory you will be asked to use a specific RVM gemset. Make sure to edit vim .ruby-gemset and vim .ruby-version to your needs in advance if you want to name the RVM gemset differently.

cd <repo_name>

Make sure to install bundler (in advance execute gem install bundler).
Install all other dependencies using bundler

bundle install
Attention: If you have any older versions installed, please make sure to use bundle update to update your Gemfile.lock

Adding Veewee Definitions

Update all Veewee Templates by installing gem install veewee-templates-updater and then type veewee-templates-update

Take a look at the pre-defined templates that come with Veewee:

veewee <provider> templates

Pick one of the pre-defined templates and add it to the definitions directory, e.g.:

veewee <provider> define 'my-ubuntu-13.10' 'ubuntu-13.10-server-amd64'

When you rake <name> it will build a basebox.

Fixes and next steps

  • Fixes: rake build:all and rake build:ci currently stop after the first build. Creating every box after another works well though.
  • Next step: Generate a Cronjob.
  • Next step: Automatically generate Parallels and VMWare boxes.