Tenderloin
Tenderloin is a tool for building and distributing virtualized development environments.
It is based on Vagrant, specifically the 0.1.4 release. This was the simplest, and provided a good starting point
It is designed to use VMWare Fusion as the underlying provider. You will need Fusion 5.
Features:
- Shared folders
- Provisioning via command or script
- Imports Vagrant boxes
- Sync data via rsync (Allows target VMs to not have tools)
Quick Start
gem install tenderloin
To build your first virtual environment:
loin init
loin box add base http://s3.lstoll.net/<todo>.box
loin up
The file describing your VM is called 'Tenderfile', but you can optionally change this with the -f flag, to allow multiple VM descriptions in the same place.
Building base boxes
Currently base boxes are built manually. The process:
- Create image in Fusion
- Set user and password to 'tenderloin'
- Set sudo to not prompt for password
- Install VMWare additions
Ensure you have a single .vmdk disk. If not, convert with:
/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -r Virtual\ Disk.vmdk -t 0 precise64.vmdk
and then edit the vmx to point to this.
Compress and shrink the disk
/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -d precise64.vmdk /Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -k precise64.vmdk
Create a Tenderfile. Example:
Tenderloin::Config.run do |config| config.vm.box_vmx = "precise64.vmx" end
Tar them up as a .box
tar -cvf precise64.box precise64.vmx Tenderfile precise64.vmdk