Funtoo Virtual Machine Quickstart
As an alternative to the Funtoo Linux Installation, you can get started quickly with Funtoo as a virtual machine. An open source tool called VeeWee automates the creation of VirtualBox virtual machines just like Funtoo's Metro creates the latest stage3 tarballs of a Linux machine. So in effect, a virtual machine can be created from source using all open source tools and run in an open source Virtual Machine Manager (VMM). Once created, the VeeWee virtual machines can be automated with another open source tool Vagrant, which can create/start/stop/delete machines as you wish. Once you have all the tools setup its really quit addictive experimenting with different configurations and setups in a very time efficient manner.
The Funtoo project will be experimenting with virtual machines as a delivery mechanism to users. It may go nowhere, or become an artifact released after stage3 tarballs are created depending on feedback.
You will need to install VirtualBox, Ruby and Gems to get going. Recommend considering Ruby Version Manager instead of portage which will install all your Ruby needs into /opt/local/rvm or your home directory depending on if you are running as root or as a regular user. We will be posting machines on the Funtoo mirrors. Pick a virtual machine off a nearby mirror. The first VM is created from a funtoo stable stage 3 tarball http://ftp.osuosl.org/pub/funtoo/funtoo-stable/vagrant. Put the URL of the machine you would like to experiment with into these easy commands.
$ gem install vagrant $ vagrant box add base URL $ vagrant init $ vagrant up $ vagrant ssh
The amount of tools needed is a bit large so a quick summary is given below. The first few are required to get started, but you quickly end up looking at Puppet, Chef and other tools if the number of VMs get large. Puppet and Chef aren't needed to get started, but are listed because VeeWee generated virtual machines normally have them preinstalled to push applications into freshly created virtual machines. The DevOps ToolChain email list is a good place to get ideas on distributed systems processes, automation and tooling as the toolchain implementation can get quites complicated depending on your goals.
- Metro Tool used to build from source just enough Linux to create a Linux Funtoo OS
- VirtualBox An open source Virtual Machine Manager (VMM) developed by Sun/Oracle which has several open source DevOps tools created around it for distributed Virtual Machine (VM) automation.
- VeeWee Tool used to automate the booting and execution of installation CDROM/ISO images. No need to watch Anaconda run to create Fedora boxes! VeeWee, while a separate project, is a subcommand of Vagrant. The Funtoo creation is currently on a fork, but a github merge request has already been place. Source for the first Funtoo VeeWee recipe.
- Vagrant A tool which automated create/start/stop/delete operations of VirtualBox VMs. VeeWee is needed for creating custom machine types, but there are lots of pre-created machine types in existence including Gentoo. The Funtoo VeeWee scripts were derived from the Gentoo scripts.
- Puppet is one of two distributed configuration management tools that are pre-installed by convention on VeeWee generated virtual machines. There are enterprise and open source versions of Puppet. Your Funtoo VirtualBox will have the open source Puppet installed by the Ruby Version Manager (not portage) as Gems and Portage fight each other (like CPAN and portage) and its best for now to keep these things separated. The open source version of Puppet is typically distributed as a Ruby Gem.
- Chef is the second distributed configuration management tool that is pre-installed by convention on a VeeWee generated Funtoo virtual machine. Chef also has open source and enterprise versions. Your Funtoo VirtualBox will have the open source Chef installed by the Ruby Version Manager (not portage) as Ruby and Portage fight eachother and its best for now to keep these things separated. The open source Chef is typically distributed as a Ruby Gem.
While the virtual machine was created with veewee for VirtualBox, there is no reason to restrict yourself to the VirtualBox virtual machine manager. The ".box" file is a simple tarball. In the tarball is a "box-disk1.vmdk" file which is a virtual machine disk image that is useable to the VirtualBox VMM. Untaring the disk image into another VMM's virtual machine is certainly a doable thing.
Also, the vagrant and veewee upstream developers are looking into rewriting their code to work with other VMM implementions.