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 192.168.50.6
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 https://github.com/cloudfoundry/cf-deployment
cd cf-deployment
Upload a base server image (called a "stemcell"):
bosh -e vbox upload-stemcell https://bosh.io/d/stemcells/bosh-warden-boshlite-ubuntu-trusty-go_agent
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 \
-v system_domain=bosh-lite.com
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 10.244.0.134
blobstore/c2758b58-dea0-45a3-911c-9701273b623b running z1 10.244.0.133
cc-bridge/c4c1d381-6b62-49e7-ba2f-be7de97a039d running z1 10.244.0.140
cc-clock/f300ac6d-a93c-418e-9f93-9b6e9845b191 running z1 10.244.0.139
consul/843f1048-2dfa-4767-8bc9-ed68d52e5103 running z1 10.244.0.128
diego-bbs/cc2c41df-ffa3-4081-9aee-d507dbff0b7f running z1 10.244.0.135
diego-brain/bd5a5843-b7ea-4c15-aa10-0599bc4472e8 running z1 10.244.0.136
diego-cell/f1eb8bc4-a0f8-4430-9eef-21616b443f9d running z1 10.244.0.137
doppler/8b6ccc50-fe95-449b-8e75-d28de9a4477b running z1 10.244.0.141
etcd/0da55d0e-acb3-40f4-9800-c69e1dbb1932 running z1 10.244.0.130
log-api/b3d30ac5-822d-4b26-931e-055d8d64f04c running z1 10.244.0.142
nats/1f680c67-51b0-41d8-9475-1fbfe0e5f5a0 running z1 10.244.0.129
postgres/f00865c7-1a1a-42eb-9b63-5c1559e8123e running z1 10.244.0.131
route-emitter/76a97ceb-d930-4085-be8c-f050bd635843 running z1 10.244.0.138
router/e9fed71a-7f51-4a58-9151-790c98be1c11 running z1 10.244.0.34
smoke-tests/fb636f19-f2e3-4ab3-9795-5c495a8f3f9e - z1 -
uaa/9d015e66-47d2-4c73-9d8e-742dfc9fa281 running z1 10.244.0.132
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 10.244.0.0/16 192.168.50.6 # Mac OS X
sudo route add -net 10.244.0.0/16 gw 192.168.50.6 # Linux
route add 10.244.0.0/16 192.168.50.6 # 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 https://api.bosh-lite.com --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!