Skip to content

Sprout Orchard (where you grow trees) is a set of programs which support the taking of snapshots of disks of successfully-run chef scripts

License

Notifications You must be signed in to change notification settings

pivotal-sprout/sprout-orchard

Repository files navigation

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.

About

Sprout Orchard (where you grow trees) is a set of programs which support the taking of snapshots of disks of successfully-run chef scripts

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •