make ec2ami
As my regular readers will be aware, I have been working on bringing FreeBSD to the Amazon EC2 platform for many years. While I have been providing pre-built FreeBSD/EC2 AMIs for a while, and last year I wrote about my process for building images, I have been told repeatedly that FreeBSD users would like to have a more streamlined process for building images. As of a few minutes ago, this is now available in the FreeBSD src tree: make ec2amiThis code makes use of the FreeBSD release-building framework — in particular the work done by Glen Barber to create virtual-machine images — and the bsdec2-image-upload tool I wrote a few months ago. Once you have installed bsdec2-image-upload (from pkg or the ports tree) and set some AWS parameters (AWS key file, region, and S3 bucket to be used for staging) in /etc/make.conf, building an AMI takes just two commands:
# cd /usr/src && make buildworld buildkernel # cd /usr/src/release && make ec2ami
This will build an AMI in the EC2 region you specified; if you want to copy the AMI out to all EC2 regions and make it public, you can do this by adding an extra option:
# cd /usr/src && make buildworld buildkernel # cd /usr/src/release && make ec2ami EC2PUBLIC=YES
I did this a few hours ago, and after about an hour of bits being copied around, I had this on my console:
Created AMI in us-east-1 region: ami-aa0532c2 Created AMI in us-west-1 region: ami-bb2cccff Created AMI in us-west-2 region: ami-534b6263 Created AMI in sa-east-1 region: ami-1315ae0e Created AMI in eu-west-1 region: ami-55b12b22 Created AMI in eu-central-1 region: ami-4a97aa57 Created AMI in ap-northeast-1 region: ami-1de21f1d Created AMI in ap-southeast-1 region: ami-a66f5cf4 Created AMI in ap-southeast-2 region: ami-2df98a17
Building an AMI in one command: Could it really get any easier?