Easing the building of vagrant boxes
Veewee is a tool for easily (and repeatedly) building custom Vagrant base boxes, KVMs, and virtual machine images.
Vagrant is a great tool for creating and configuring lightweight, reproducible, portable virtual machine environments - often used with the addition of automation tools such as Chef or Puppet.
The first step to build a new virtual machine is to download an existing 'base box'. I believe this scares a lot of people as they don't know how these unverified boxes were built. Therefore a lot of people end up building their own base box which is often time consuming and cumbersome. Veewee aims to automate all the steps for building base boxes and to collect best practices in a transparent way.
Veewee isn't only for Vagrant. It currently supports exporting VM images for the following providers:
OVFfiletype
OVAfiletype
IMGfiletype
parallelsformat (provided by vagrant-parallels)
Before you start, we recommend reading through these pages:
Next, learn about Veewee fundamentals:
Then depending on how you want to use Veewee, we suggest to read through one of the following guides:
Major noteworthy changes between versions can be found here:
A complete list of all docs can be found by viewing the doc directory.
Below is an overview of the
veeweecommand options:
$ bundle exec veeweeCommands:
veewee add_share # Adds a Share to the Guest
veewee fusion # Subcommand for Vmware fusion
veewee help [COMMAND] # Describe available commands or one specific command
veewee kvm # Subcommand for KVM
veewee parallels # Subcommand for Parallels
veewee vbox # Subcommand for VirtualBox
veewee version # Prints the Veewee version information
Learn how to avoid typing
bundle execby visiting the Commands doc.
Below is an overview of the
veeweeprovider subcommand options:
$ bundle exec veeweeCommands:
veewee build [BOX_NAME] # Build box
veewee copy [BOXNAME] [SRC] [DST] # Copy a file to the VM
veewee define [BOXNAME] [TEMPLATE] # Define a new basebox starting from a template
veewee destroy [BOXNAME] # Destroys the basebox that was built
veewee halt [BOXNAME] # Activates a shutdown on the basebox
veewee help [COMMAND] # Describe subcommands or one specific subcommand
veewee list # Lists all defined boxes
veewee ostypes # List the available Operating System types
veewee screenshot [NAME] [PNGFILENAME] # Takes a screenshot of the box
veewee ssh [BOXNAME] [COMMAND] # Interactive ssh login
veewee templates # List the currently available templates
veewee undefine [BOXNAME] # Removes the definition of a basebox
veewee up [BOXNAME] # Starts a Box
veewee validate [NAME] # Validates a box against vagrant compliancy rules
veewee winrm [BOXNAME] [COMMAND] # Execute command via winrm
People have reported good experiences, why don't you give it a try?
If you have a setup working, share your 'definition' with me. That would be fun!
See CONTRIBUTE.md.