Dec 24, 2014 Traveling BOSH CLI - no more installation pain
As a trainer, contributor, fanboy, and consultant for BOSH it has been frustrating watching other sysadmins attempt to get started with BOSH - the project for release engineering, deployment, and lifecycle management of large-scale cloud software.
Using BOSH can be fantastic - watching it boot up dozens of VMs, to have a fulling running production PaaS like Cloud Foundry in 10s of minutes, and watching it automatically resurrect VMs - but new users can lose hope before they ever get BOSH running.
Why is it so hard? The BOSH CLI is written in Ruby and requires many dependencies. It requires a modern Ruby, and that Ruby needs to have been built against several optional system extensions. On many default systems the default
ruby isn't sufficient; and the errors from running
bosh aren't helpful.
Sysadmins now have a new way to install the BOSH CLI without first requiring complex Ruby installation. The project is called traveling-bosh.
To install for one user:
curl -s https://raw.githubusercontent.com/cloudfoundry-community/traveling-bosh/master/scripts/installer | bash
To install for all users:
curl -s https://raw.githubusercontent.com/cloudfoundry-community/traveling-bosh/master/scripts/installer | sudo bash
Afterwards, restart your terminal session to update your
Not only is the
bosh CLI installed, but also
spiff [link] and Hashicorp's
terraform [link]. The latter two are growing in their use for preparing manifests or setting up IaaS networking (something BOSH itself doesn't do).
Additionally, the bosh-bootstrap plugin is pre-installed. This means you can immediately bootstrap a new micro BOSH against AWS, OpenStack or vSphere:
bosh bootstrap deploy
Finally, you only need to remember the
curl | bash installation once. There is a plugin included to make upgrading easy:
bosh update cli
Thanks so much to the Phusion team for starting the traveling-ruby project.
Hongli Lai has been a great sport in building out extra native C rubygems that I needed for the
bosh micro deploy commands.
Also, thanks to Mitchell Hashimoto for letting me bundle
terraform and its plugins. More and more I can see terraform being useful as part of BOSH.
We have been working on some terraform modules that will make it very easy to bootstrap entire Cloud Foundry platforms from scratch. Looking forward to sharing those soon!
Finally, thanks again to the BOSH core team, and to Pivotal who massively sponsor the BOSH project as part of their commitment to the Cloud Foundry Foundation.