Skip to content

Instantly share code, notes, and snippets.

@monde
Created November 8, 2011 22:08
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save monde/1349431 to your computer and use it in GitHub Desktop.
Save monde/1349431 to your computer and use it in GitHub Desktop.
how to build a vagrant box image
= Ubuntu Natty 64 Server Vagrant Base Box
== Description
This is a Vagrant Base Box based upon the Ubuntu Natty 64 Server. It was built
according to the Vagrant Base Box building guide:
http://vagrantup.com/docs/base_boxes.html
This box's main characteristic is the use of Ruby 1.9.2 built from source.
With this configuration, a Vagrant environment's execution of chef-solo will be
utilizing Ruby 1.9.2 to build gems with binary artifacts such as Passenger and
others. This makes collecting and maintaining a set of Chef Cookbooks used to
build and deploy a Rails 3.* environment with Ruby 1.9.2 easy to accomplish.
Note: The bash command history for root and the vagrant user are left
unmodified serving as a reference about how the box has been built and
maintained.
This box is available for download at:
http://s3.amazonaws.com/monde/natty64.box
== Installation
Setup a vagrant environment according to the Vagrant Getting Started Guide:
http://vagrantup.com/docs/getting-started/index.html
Vagrant box image add command for this box:
vagrant box add natty64 http://s3.amazonaws.com/monde/natty64.box
== Build Notes
According to the Base Box Building Guide given that a VirtualBox named "Natty
64" exists it can be boxed up via:
vagrant package --base "Natty 64"
This results in a file named package.box in the current directory that is the
natty64.box image this project is publishing.
Ruby was built from source in the following manner, and then Chef was
installed with the gem command.
su -
apt-get update
apt-get install build-essential zlib1g zlib1g-dev libreadline5 libreadline5-dev libssl-dev
cd /usr/src/
wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.2-p290.tar.bz2
tar xjf ruby-1.9.2-p290.tar.bz2
cd ruby-1.9.2-p290/
./configure
make install
== Build History
* 07/06/2011
Initial setup according to Vagrant Base Box buidling guide
http://vagrantup.com/docs/base_boxes.html
Ruby 1.9.2 p180 installed from source
Chef 0.10.2 (and dependencies) rubygem installed
sudo apt-get dist-upgrade
== Authors
Mike Mondragon <mikemondragon@gmail.com>
Blog: [http://plasti.cx/]
Twitter: [https://twitter.com/monde]
Github: [https://github.com/monde]
IRC: monde
== License
(The MIT License)
Copyright (c) 2011 Mike Mondragon <mikemondragon@gmail.com>
All rights reserved.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@leddy
Copy link

leddy commented Mar 12, 2012

s3 image is gone or no longer public access?

@monde
Copy link
Author

monde commented Mar 12, 2012

I must have been writing this up for a blog post. However, there is a better way to build boxes using the veewee gem and templates. Here are three great links describing it:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment