These basebox definitions are originally based on work done by Tim Dysinger to make "Don't Repeat Yourself" (DRY) modular baseboxes. Thanks Tim!
The following baseboxes are publicly available and were built using this project, and Chef 11.4.4. Future releases of Chef and baseboxes will follow the naming convention used here:
and located in the opscode-vm S3 bucket's vagrant directory as linked below.
The following base boxes were built with Chef 11.4.0.
The following base boxes were built with Chef 11.2.0. (No 32-bit boxes were built for Chef 11.2.0.)
The following base boxes were built with Chef 10.18.2.
The following base boxes were built with Chef 10.14.4.
First, clone the project, then install the required Gems with Bundler.
$ git clone git://github.com/opscode/bento.git $ cd bento $ bundle install
List available baseboxes that can be built:
$ bundle exec veewee vbox list
Build, for example, the ubuntu-12.04 basebox.
$ bundle exec veewee vbox build ubuntu-12.04
You can validate the basebox using Veewee's built in validator.
However note that the test for Ruby (and Puppet) will fail. The Ruby
installation is in
/opt/chef/embedded, and we do not add the bin
directory to the
$PATH, and we don't use Puppet internally.
$ bundle exec veewee vbox validate ubuntu-12.04
Aside from that, the basebox should be ready to use. Export it:
$ bundle exec veewee vbox export ubuntu-12.04
Congratulations! You now have
./ubuntu-12.04.box, a fully functional
basebox that you can then add to Vagrant and start testing cookbooks.
How It Works
Veewee reads the definition specified and automatically builds a
VirtualBox machine. The VirtualBox guest additions and the target OS
ISO are downloaded into the
We use Veewee version 0.3.0.alpha+ because it contains fixes for building CentOS boxes under certain circumstances.
The definitions themselves are split up into directories that get symlinked into specific basebox directories.
Most of the files are symlinked for a particular box. The one
exception is the
definition.rb file, which contains the specific
configuration for the Veewee session for a basebox, including the ISO
filename, its source URL, and the MD5 checksum of the file.
chef-client.sh: Installs Chef and Ruby with Opscode's full stack installer
minimize.sh: Zeroes out the root disk to reduce file size of the box
ruby.sh: Deprecated Use
session.rb: Baseline session settings for Veewee
vagrant.sh: Installs VirtualBox Guest Additions, adds the Vagrant SSH key
cleanup.sh: Removes unneeded packages, cleans up package cache, and removes the VBox ISO and Chef rpm
ks.cfg: Kickstart file for automated OS installation
session.rb: General CentOS session settings for Veewee
cleanup.sh: Removes unneeded packages, cleans up package cache, and removes the VBox ISO and Chef deb
networking.sh: Removes networking setup like udev that may interfere with Vagrant network setup
preseed.cfg: The Debian Preseed file for automated OS installation
session.rb: General Ubuntu session settings for Veewee
sudoers.sh: Customization for
update.sh: Ensures that the OS installation is updated
install-chef.bat: Installs Chef and Ruby with Opscode's full stack installer
oracle-cert.cer: Needed for automated install via install-vbox.bat
install-vbox.bat: Installs VirtualBox Guest Additions
mount-validation.bat: Mounts the validation drive
Bugs and Issues
Use the issue tracker to report bugs, features or other issues.
License and Authors
- Author:: Seth Chisamore (firstname.lastname@example.org)
- Author:: Stephen Delano (email@example.com)
- Author:: Joshua Timberman (firstname.lastname@example.org)
- Author:: Tim Dysinger (email@example.com)
- Author:: Chris McClimans (firstname.lastname@example.org)
- Author:: Julian Dunn (email@example.com)
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.