Giter Site home page Giter Site logo

bento's Introduction

Bento is a project that encapsulates Veewee definitions for building Vagrant baseboxes. We use these boxes internally at Opscode for testing Hosted Chef, Private Chef and our open source cookbooks.

These basebox definitions are originally based on work done by Tim Dysinger to make "Don't Repeat Yourself" (DRY) modular baseboxes. Thanks Tim!

Current Baseboxes

The following baseboxes are publicly available and were built using this project, and Chef 11.2.0. Future releases of Chef and baseboxes will follow the naming convention used here:

opscode_PLATFORM-VERSION_chef-VERSION.box

And located in the opscode-vm S3 bucket's vagrant directory as linked below.

At this time, 32 bit boxes have not yet been built with Chef 11.2.0.

Older Baseboxes

The following base boxes were built with Chef 10.18.2.

The following base boxes were built with Chef 10.14.4.

Getting Started

First, clone the project, then install the required Gems with Bundler.

$ git clone git://github.com/opscode/bento.git
$ cd bento
$ bundle install --binstubs

List available baseboxes that can be built:

$ bundle exec vagrant basebox list

Build, for example, the ubuntu-12.04 basebox.

$ bundle exec vagrant basebox 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 vagrant basebox validate ubuntu-12.04

Aside from that, the basebox should be ready to use. Export it:

$ bundle exec vagrant basebox 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 iso/ directory.

We use Veewee version 0.3.0.alpha+ because it contains fixes for building CentOS boxes under certain circumstances.

Definitions

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.

Common

  • 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 chef-client.sh
  • session.rb: Baseline session settings for Veewee
  • vagrant.sh: Installs VirtualBox Guest Additions, adds the Vagrant SSH key

CentOS

  • 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

Ubuntu

  • 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 /etc/sudoers
  • update.sh: Ensures that the OS installation is updated

Windows

  • 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.

Contributing

How to contribute to Opscode open source software projects

License and Authors

Copyright:: 2012, Opscode, Inc ([email protected]) Copyright:: 2011-2012, Tim Dysinger ([email protected])

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

http://www.apache.org/licenses/LICENSE-2.0

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.

bento's People

Contributors

cburyta avatar hh avatar schisamo avatar torandu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.