BOSH Lite
- IRC:
#bosh
on freenode - Mailing lists:
- CI: http://lite.bosh-ci.cf-app.com:8080
- Roadmap: Pivotal Tracker (label:bosh-lite)
A local development environment for BOSH using Warden containers in a Vagrant box.
This readme walks through deploying Cloud Foundry with BOSH Lite. BOSH and BOSH Lite can be used to deploy just about anything once you've got the hang of it.
Install BOSH Lite
Prepare the Environment
-
Install latest version of
bosh_cli
.$ gem install bosh_cli
Refer to BOSH CLI installation instructions for more information and troubleshooting tips.
-
Install Vagrant.
Known working version:
$ vagrant --version Vagrant 1.6.3
-
Clone this repository.
$ cd ~/workspace $ git clone https://github.com/cloudfoundry/bosh-lite
Install and Boot a Virtual Machine
Installation instructions for different Vagrant providers:
- Virtualbox (below)
- VMware Fusion
- AWS
Using the Virtualbox Provider
-
Install Virtualbox
Known working version:
$ VBoxManage --version 4.3.14r95030
Note: If you encounter problems with VirtualBox networking try installing Oracle VM VirtualBox Extension Pack as suggested by Issue 202.
-
Start Vagrant from the base directory of this repository, which contains the Vagrantfile. The most recent version of the BOSH Lite boxes will be downloaded by default from the Vagrant Cloud when you run
vagrant up
. If you have already downloaded an older version you will be warned that your version is out of date. You can use the latest version by runningvagrant box update
.$ vagrant up --provider=virtualbox
-
Target the BOSH Director and login with admin/admin.
# if behind a proxy, exclude both the VM's private IP and xip.io by setting no_proxy (xip.io is introduced later) $ export no_proxy=192.168.50.4,xip.io $ bosh target 192.168.50.4 lite Target set to `Bosh Lite Director' $ bosh login Your username: admin Enter password: ***** Logged in as `admin'
-
Add a set of route entries to your local route table to enable direct Warden container access every time your networking gets reset (e.g. reboot or connect to a different network). Your sudo password may be required.
$ bin/add-route
Customizing the local VM IP
The local VMs (virtualbox, vmware providers) will be accessible at 192.168.50.4
. To change this IP, uncomment the private_network
line in the appropriate provider and change the IP address.
config.vm.provider :virtualbox do |v, override|
# To use a different IP address for the bosh-lite director, uncomment this line:
# override.vm.network :private_network, ip: '192.168.59.4', id: :local
end
Deploy Cloud Foundry
Misc
- bosh cck documentation for restoring deployments after VM reboot
- bosh ssh documentation for SSH into deployment jobs
- Offline documentation to configure BOSH lite firewall rules
- xip.io to access local IPs via DNS
Troubleshooting
- Starting over again is often the quickest path to success; you can use
vagrant destroy
from the base directory of this project to remove the VM. - Another option is to use
bosh cleanup
. This will clean up the blob store to free up some space on the virtual machine. - There is an issue (discussed here and here) with Vagrant permissions running on OS X Mavericks 10.9.2+ (after applying Apple's Security Update 2014-002). To diagnose, run
vagrant up --debug
and see if there is an error mentioningSymbol not found: _iconv
. To resolve try one of the two-
Purging vagrant
Purging ~/.vagrant.d
Reinstalling vagrant
-
Removing code block as described here
-
Manage your local boxes
We publish pre-built Vagrant boxes on Amazon S3. It is recommended to use the latest boxes. To do so get a latest copy of the Vagrantfile from this repo and run vagrant up
.