bosh-lite can be better on AWS

bosh-lite is the best way to dev/test new BOSH releases or changes to community releases such as Cloud Foundry’s cf-release. But if your laptop doesn’t have 8G of RAM or you don’t already have all the stemcells (400M each) and releases (cf-release is now 3.5G) downloaded then you can spend half a day just getting started.

Instead, it can be more productive to boot up bosh-lite into AWS. It’s almost as simple to do this as it is to bootstrap bosh-lite locally.

The new instructions for AWS can be found at https://github.com/cloudfoundry/bosh-lite/blob/master/docs/aws-provider.md

First, install Vagrant. VirtualBox is not required – we’re using AWS provider instead.

Install the AWS plugin.

vagrant plugin install vagrant-aws

Clone bosh-lite:

git clone https://github.com/cloudfoundry/bosh-lite.git
cd bosh-lite

Create a security group bosh in AWS console. At a minimum you need to expose ports:

  • 25555 for the Director API
  • 22 for SSH access

Create a keypair bosh in AWS console, and store the bosh.pem:

mv ~/Downloads/bosh.pem ~/.ssh/bosh.pem
chmod 600 ~/.ssh/bosh.pem

Configure the Vagrant provisioner with your AWS credentials:

export BOSH_AWS_ACCESS_KEY_ID=<KEY>
export BOSH_AWS_SECRET_ACCESS_KEY=<SECRET>
export BOSH_LITE_NAME=bosh-lite
export BOSH_LITE_SECURITY_GROUP=bosh
export BOSH_LITE_KEYPAIR=bosh
export BOSH_LITE_PRIVATE_KEY=~/.ssh/bosh.pem

Using a tool like http://direnv.net/ can make it easy to setup these environment variables once and reuse them later to re-provision.

To bootstrap the VM:

vagrant up --provider=aws

Because the output has pretty colours, here is a screenshot of successfully bootstrapping bosh-lite:

bosh-lite-aws

The instructions at the bottom give you usage options:

  • Use it from your remote laptop – bosh target IPADDR
  • Use it within the bosh-lite VM – run vagrant ssh and then bosh target 127.0.0.1

The username/password is admin/admin.

Clean up

Vagrant makes it very easy to destroy your bosh-lite:

vagrant destroy

There is nothing else to do as all the "VMs" you might have created whilst using bosh-lite are actually internal Warden containers.

Spread the word

twitter icon facebook icon linkedin icon