Awesome
bosh-bootloader
Also known as bbl
(pronounced: "bubble"), bosh-bootloader is a command line utility for standing up BOSH
on an IaaS. bbl
currently supports AWS, GCP, Microsoft Azure, Openstack and vSphere.
Docs
Prerequisites
Install Dependencies
The following should be installed on your local machine
- bosh-cli
- bosh create-env dependencies
- terraform >= 0.11.0
- ruby (necessary for bosh create-env)
Install bosh-bootloader using a package manager
Mac OS X
$ brew tap cloudfoundry/tap
$ brew install bosh-cli
$ brew install bbl
Usage
IaaS-Specific Getting Started Guides
- Getting Started: Azure
- Getting Started: GCP
- Getting Started: AWS
- Getting Started: vSphere
- Getting Started: OpenStack
- Getting Started: CloudStack
Managing state
The bbl state directory contains all of the files that were used to create your bosh director. You will need the entire bbl state in order to update, delete, or run bosh commands against the environment, so you should keep it someone anyone on your team can access it. However, it is important to note that the bbl state directory contains very senstive IAAS credentials, so you should keep it somewhere you feel comfortable storing these credentials, such as an encrypted bucket.
filename | contents |
---|---|
bbl-state.json | Environment name, and bbl version metadata |
terraform/ | The terraform templates bbl used to pave your IaaS. See docs/advanced-configuration for information on modifying this. |
vars/ | This is where bbl will store environment specific variables. Consider storing this outside of version control. |
jumpbox-deployment/ | The latest jumpbox-deployment that has been tested with your version of bbl. |
create-jumpbox.sh | The BOSH cli command bbl will use to create your jumpbox. |
bosh-deployment/ | The latest bosh-deployment that has been tested with your version of bbl |
create-director.sh | The BOSH cli command bbl will use to create your director when you run bbl up . See docs/advanced-configuration for help with modifying this. |
cloud-config/ | The cloud-config yaml that bbl will upload to the director to map IAAS resources to BOSH resources. |
delete-director.sh | The BOSH cli command bbl will use to delete your director. |
delete-jumpbox.sh | The BOSH cli command bbl will use to delete your jumpbox. |
Troubleshooting
To turn on debugging traces:
- BBL: use
bbl --debug
flag. - BOSH: export the
BOSH_LOG_LEVEL=debug
and theBOSH_LOG_PATH=bosh.log
environment variables in the related bbl shell script, such ascreate-jumpbox.sh
. - TERRAFORM: export the
TF_LOG=TRACE
and theTF_LOG_PATH=terraform.log
environment variables in the related bbl shell script, such ascreate-jumpbox.sh
. - CPI: override or set cpi configuration, e.g. for vsphere cpi within
jumpbox-deployment/vsphere/cpi.yml
sethttp_logging: true
according to vsphere cpi documentation
Tearing down an environment
Once you are done kicking the tires on CF and BOSH, clean up your environment to save IaaS costs:
-
You must first delete any deployments on BOSH. e.g.
bosh -d cf delete-deployment
-
bbl destroy
with your IaaS user/account information.
Automating the automation tool
In order to use bbl
in your concourse pipelines, the current supported way
for cf-deployment
is to use the
cf-deployment-concourse-tasks.
There is a work-in-progress concourse resource for bbl: bbl-state-resource.