Generate Vagrant boxes with packer.
There are three flavors available:
debian-7-amd64-plain: Minimalistic Debian with Virtualbox-additions where applicable.debian-7-amd64-default: Like above, plusgit,rsync,rubyandpuppet.debian-7-amd64-cm: Like above, plus CM framework dependencies.
Boxes are built and released on Vagrant Cloud for virtualbox and aws.
Example Vagrantfile:
Vagrant.configure('2') do |config|
config.vm.box = 'cargomedia/debian-7-amd64-default'
endBased on official Debian AMIs.
Available regions: eu-west-1, us-east-1.
Example Vagrantfile (using the vagrant AWS provider plugin):
Vagrant.configure('2') do |config|
config.vm.box = 'cargomedia/debian-7-amd64-default'
config.vm.provider :aws do |aws, override|
override.ssh.username = 'admin'
override.ssh.private_key_path = '~/.ssh/<private-key>.pem'
aws.region = 'eu-west-1'
aws.instance_type = 'm3.large'
aws.access_key_id = '<aws-access-key>'
aws.secret_access_key = '<aws-secret-key>'
aws.keypair_name = '<keypair-name>'
aws.security_groups = '<security-group-id>'
aws.block_device_mapping = [
{
'DeviceName' => '/dev/sda',
'VirtualName' => 'root',
'Ebs.VolumeSize' => 100,
'Ebs.DeleteOnTermination' => true,
'Ebs.VolumeType' => 'io1',
'Ebs.Iops' => 2000
}
]
end
endDownload required puppet modules using librarian-puppet:
cd puppet
librarian-puppet install
Rake parameters:
- builder: A list of builders to use (Default: all builders)
- aws_key_id: AWS key id
- aws_key_secret: AWS key secret
- vagrant_cloud_username: Vagrant Cloud username
- vagrant_cloud_access_token: Vagrant Cloud access token
rake build # Build all boxes
rake spec # Run serverspec tests (virtualbox build only!)
rake release # Release boxes to S3 and Vagrant Cloud