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
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.
A Deployment is
Description of the deployment process:
- describe which operating system image to use (the stemcell)
- describe which software needs to be deployed on the VMs created with these images
- describe how to keep track of persisted data (e.g. during an update process)
- 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.
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...
$ gem install bosh_cli
$ bosh target 192.168.50.4