We wanted to let you know that two of your friends bbl and bucc are now best friends with each other! You can now use bbl
to spin up a bucc
fully automated on your target cloud environment.
Setup
The first thing we need is the latest bbl cli.
For this example, we are going to use gcp
. Open your favorite terminal and create a workspace folder: ~/workspace/besties
You’ll need to set up a service account in gcp
. This uses the gcloud sdk to provision and configure the service account.
gcloud iam service-accounts create <service-account-name>
gcloud iam service-accounts keys create --iam-account='<service account name>@<project-id>.iam.gserviceaccount.com' <service account name>.key.json
gcloud projects add-iam-policy-binding <project id> --member='serviceAccount:<service-account-name>@<project-id>.iam.gserviceaccount.com' --role='roles/editor'
Make sure you replace <service-account-name>
and <project-id>
with your values.
Configure BBL
Then you need to export the following bbl
environment variables to in order to start the process.
export BBL_IAAS=gcp
export BBL_ENV_NAME=banana-env
mkdir $BBL_ENV_NAME && cd $BBL_ENV_NAME && git init
Run bbl plan
to see where we are at. This will let us know if we need anything else before we can run bbl up
to bootstrap the environment.
bbl plan -lb-type concourse`
You will notice that this command is pretty intuitive, as it will ask you what you need to supply next.
In our case with gcp
you need:
--gcp-service-account-key
--gcp-region europe-west4
The service account key is a *.key.json
file you created before using the gcloud
commands. Putting all the parameters together you come up with this:
bbl plan --lb-type concourse --gcp-service-account-key ~/<service-account-name>.key.json --gcp-region europe-west4
The region europe-west4
is an example, your region may vary.
A Dash of BUCC
Now, it’s time for some bucc
magic:
git submodule add https://github.com/starkandwayne/bucc.git bucc
ln -s bucc/bbl/*-director-override.sh .
ln -sr bucc/bbl/terraform/$BBL_IAAS/* terraform/
And the next simple step, just like bucc up, is to run:
bbl up
Once it’s done, it will have created the following:
- jumpbox
- bosh-director (with all the bucc goodies)
- load-balancer (so we can use concourse/uaa publicly)
What was all that bucc
magic?
We copied down the bucc
software, and then overlaid a bbl
template that is compatible with bucc
. Find out more about how bbl
works with advanced configuration in their docs.
Friends with Benefits
Now, run the following commands so that all the goodies you get with bbl
and bucc
are loaded into your command shell.
eval "$(bbl print-env)"
eval "$(bucc/bin/bucc env)"
Run bucc info
, you will see the URL of the loadbalancer here that directs to Concourse.
Run bucc fly
so your target is set and able to login in with the fly CLI to Concourse.
Run bosh cloud-config
, you will notice that cloud-config is already pre-populated with the environment we just set up.