Skip to content
This repository has been archived by the owner on Jul 27, 2024. It is now read-only.

Latest commit

 

History

History
59 lines (44 loc) · 2.81 KB

README.md

File metadata and controls

59 lines (44 loc) · 2.81 KB

Sprout Orchard is a set of scripts (bash & ruby) which run a selection of Chef recipes in Pivotal Sprout as specified by the meta-recipes in Sprout Wrap in order to create OS X disk images which are deployed via DeployStudio.

Why?

Sprout Orchard delivers a disk image which we can use to quickly (~20 minutes) bring a freshly-unboxed OS X machine to a useful state.

In our case, we use it for our developer workstations. Our developers use a variety of tools (IDEs such as RubyMine, editors such as vim and TextMate, databases such as MySQL and PostgrSQL, applications such as Chrome and Skype). When we give a developer a new machine, it is pre-loaded with those items.

Our process of building a developer workstation is encapsulated in a series of Chef recipes (i.e. Sprout, Sprout-wrap). Sprout Orchard pre-bakes those recipes in a disk image. Installing the disk image is faster than running the Chef recipes on each new workstation. Also, having a disk image spares the developer from problems such as inaccessible download servers, stale URLs, etc.

The process is fairly automated. A typical workflow is as follows:

  • A developer updates a recipe (e.g. Sublime Text) and pushes to Pivotal-sprout's sprout repo on github
  • A Sprout Orchard Jenkins server detects that there has been an update to the repo and begins a build
  • At the end of the build (assuming success), the resulting disk image, with the new TextMate, is copied to the DeployStudio server

How do I set it up?

If you're interested in setting it up yourself, please refer to the wiki

What will I need?

You'll need the following:

  1. A DeployStudio server
  2. A Jenkins server (can also be the same machine as the DeployStudio server)
  3. An OS X build machine (it can be a virtual machine running under VMWare Fusion)

Bugs

This process doesn't capture recovery partitions (i.e. a newly-imaged machine won't have a recovery partition); however, this is workable by creating a package which installs a recovery partition. This blogpost has good information.

The build process will frequently fail, a success rate of 20% is good. Failures can be caused by the DeployStudio share not mounted on boot by the OS X machine's "Persistent" personality, by stale download URLs, by offline download servers, by flawed gem dependencies, etc....

To whom do we complain?

sprout-orchard started as a side project of Matthew Kocher and Brian Cunnie of Pivotal Labs in Summer 2011.