Skip to content

Instantly share code, notes, and snippets.

@michaellihs
Last active April 6, 2016 21:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save michaellihs/e205063847e853e87a7d9c1b4bf7aaa9 to your computer and use it in GitHub Desktop.
Save michaellihs/e205063847e853e87a7d9c1b4bf7aaa9 to your computer and use it in GitHub Desktop.
Some Snippets and Resources for BOSH

Learning BOSH

Basic Concepts of BOSH

What is a Stemcell?

A Stemcell is a OS image wrapped with IaaS specific packaging. Amongst other tools, it always contains a BOSH Agent (like a Chef client) running on the VM to which the stemcell is deployed to and listens for instructions from the BOSH Director.

Stemcells do not contain

  • any specific information concerning the software that is later on running on them
  • any credentials / sensitive information that would make them unable to be shared with other BOSH users

What is a Release?

A release is a versioned collection of

  • configuration properties
  • configuration templates
  • start up scripts
  • source code
  • binary artifacts
  • ...

to build and deploy software in a reproducible way.

What is a Deployment?

A Deployment is

Description of the deployment process:

  1. describe which operating system image to use (the stemcell)
  2. describe which software needs to be deployed on the VMs created with these images
  3. describe how to keep track of persisted data (e.g. during an update process)
  4. describe how to deploy images to an IaaS

BOSH builds upon previously introduced primitives (stemcells and releases) by providing a way to state an explicit combination of stemcells, releases, and operator-specified properties in a human readable file. This file is called a deployment manifest.

Deployment manifests are uploaded to the BOSH Director. The Director allocates resources and stores them. These resources form a Deployment. A deployment consists of allocated VMs and persistent storage. As deployment manifests change, VMs are updated and persistent disks are re-attached to the newer VMs.

The deployment manifest describes the deployment in an IaaS-agnostic way, which means it abstracts the differences between different IaaSes.

Preperational Tasks

Install BOSH-Lite

When connecting to the BOSH-Lite instance provided by the Learning BOSH tutorial, the credentials will be admin/admin

$ vagrant init cloudfoundry/bosh-lite
$ vagrant up --provider=virtualbox
Bringing machine 'default' up with 'virtualbox' provider...

Install BOSH CLI

$ gem install bosh_cli
$ bosh target 192.168.50.4

Further Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment