Running Cloud Foundry with BOSH 2.0

If you do not have a BOSH-Lite installed with bosh2 locally on your VirtualBox yet, you can follow Bootstrap BOSH on VirtualBox with BOSH 2.0 to do so. If you already have BOSH-Lite installed, make sure you are logged into your director as admin user. Also make sure your are using bosh cli v2. In this blog we are assuming that the BOSH-Lite is using IP and the alias is vbox.

bosh2 CLI

If you’ve installed the bosh2 CLI, then for the sake of future proofing this article, we will alias it to bosh (which will be its future name):

alias bosh=bosh2

Target BOSH2

If you followed one of our previous articles on Bootstrapping BOSH2, you can login to your BOSH2 director using environment variables:

cd path/to/bosh-deployment
export BOSH_CLIENT=admin
export BOSH_CLIENT_SECRET=`bosh int ./creds.yml --path /admin_password`
cd -

Deploy Cloud Foundry

First clone the cf-deployment repo and cd into the directory.

git clone
cd cf-deployment

Upload a base server image (called a "stemcell"):

bosh -e vbox upload-stemcell

Configure your VirtualBox BOSH with appropriate networking/vm type information (called "cloud-config"):

bosh -e vbox update-cloud-config iaas-support/bosh-lite/cloud-config.yml

Deploy CF by running the follow command:

bosh -e vbox -d cf deploy cf-deployment.yml \
  -o operations/bosh-lite.yml \
  --vars-store deployment-vars.yml \

Run bosh -e vbox -d cf instances and you will see:

Deployment 'cf'
Instance                                            Process State  AZ  IPs
api/20a3fa6f-9f5a-4de2-a8ca-768b2f4386ba            running        z1
blobstore/c2758b58-dea0-45a3-911c-9701273b623b      running        z1
cc-bridge/c4c1d381-6b62-49e7-ba2f-be7de97a039d      running        z1
cc-clock/f300ac6d-a93c-418e-9f93-9b6e9845b191       running        z1
consul/843f1048-2dfa-4767-8bc9-ed68d52e5103         running        z1
diego-bbs/cc2c41df-ffa3-4081-9aee-d507dbff0b7f      running        z1
diego-brain/bd5a5843-b7ea-4c15-aa10-0599bc4472e8    running        z1
diego-cell/f1eb8bc4-a0f8-4430-9eef-21616b443f9d     running        z1
doppler/8b6ccc50-fe95-449b-8e75-d28de9a4477b        running        z1
etcd/0da55d0e-acb3-40f4-9800-c69e1dbb1932           running        z1
log-api/b3d30ac5-822d-4b26-931e-055d8d64f04c        running        z1
nats/1f680c67-51b0-41d8-9475-1fbfe0e5f5a0           running        z1
postgres/f00865c7-1a1a-42eb-9b63-5c1559e8123e       running        z1
route-emitter/76a97ceb-d930-4085-be8c-f050bd635843  running        z1
router/e9fed71a-7f51-4a58-9151-790c98be1c11         running        z1
smoke-tests/fb636f19-f2e3-4ab3-9795-5c495a8f3f9e    -              z1  -
uaa/9d015e66-47d2-4c73-9d8e-742dfc9fa281            running        z1
17 instances

Logging into the CF API

Add the following route so you will be able to reach the CF API and also bosh ssh to the instances you deployed.

Adding route:

sudo route add -net # Mac OS X
sudo route add -net gw # Linux
route add  # Windows

Set up CF api and login as admin. If you do not have cf cli installed yet, you can follow Install CF CLI.

cf api --skip-ssl-validation
export CF_ADMIN_PASSWORD=$(bosh2 int ./deployment-vars.yml --path /cf_admin_password)
cf auth admin $CF_ADMIN_PASSWORD

bosh ssh to CF

When you run bosh ssh, there is no list of instances anymore, so you have to specify your specific instance otherwise it will complain Running SSH:Interactive SSH only works for a single host at a time.

For example, you can run bosh -e vbox -d cf ssh uaa/0 to access the container of uaa/0 in cf deployment on your BOSH-Lite Director.

Congratulations! Your CF is ready to go!

Spread the word

twitter icon facebook icon linkedin icon