|
1 |
| -Apple Orchard is a set of scripts (bash & ruby) which run the |
2 |
| -[Chef](http://www.opscode.com/chef/) |
3 |
| -recipes in [Pivotal Workstation](https://github.com/pivotal/pivotal_workstation) |
4 |
| -in order to create OS X disk images which are deployed via |
5 |
| -[DeployStudio](http://www.deploystudio.com/Home.html). |
6 |
| - |
7 |
| -## Why? |
8 |
| - |
9 |
| -Apple Orchard delivers a disk image which we can use to quickly (~20 minutes) |
10 |
| -bring a freshly-unboxed OS X machine to a useful state. |
11 |
| - |
12 |
| -In our case, we use it for our developer workstations. Our developers |
13 |
| -use a variety of tools (IDEs such as RubyMine, editors such as vim and TextMate, |
14 |
| -databases such as MySQL and PostgrSQL, applications such as Chrome and Skype). |
15 |
| -When we give a developer a new machine, it is pre-loaded with those items. |
16 |
| - |
17 |
| -Our process of building a developer workstation is encapsulated in a series |
18 |
| -of Chef recipes (i.e. Pivotal Workstation). Apple Orchard pre-bakes those |
19 |
| -recipes in a disk image. Installing the disk image is faster than running |
20 |
| -the Chef recipes on each new workstation. Also, having a disk image spares the |
21 |
| -developer from problems such as inaccessible download servers, stale URLs, etc. |
22 |
| - |
23 |
| -The process is fairly automated. A typical workflow is as follows: |
24 |
| - |
25 |
| -* A developer updates the TextMate recipe and pushes to Pivotal's pivotal_workstation repo on github |
26 |
| -* An Apple Orchard Jenkins server detects that there has been an update to the repo and begins a build |
27 |
| -* At the end of the build (assuming success), the resulting disk image, with the new TextMate, is copied to the DeployStudio server |
28 |
| - |
29 |
| -## How do I set it up? |
30 |
| - |
31 |
| -If you're interested in setting it up yourself, please refer to the [wiki](https://github.com/pivotalexperimental/apple_orchard/wiki/) |
32 |
| - |
33 |
| -## What will I need? |
34 |
| - |
35 |
| -You'll need the following: |
36 |
| - |
37 |
| -1. A DeployStudio server |
38 |
| -2. A [Jenkins](http://jenkins-ci.org/) server (can also be the same machine as the DeployStudio server) |
39 |
| -3. An OS X build machine (it can be a virtual machine running under VMWare Fusion) |
40 |
| - |
41 |
| -## Bugs |
42 |
| - |
43 |
| -This process doesn't capture recovery partitions |
44 |
| -(i.e. a newly-imaged machine won't have a recovery partition); however, this |
45 |
| -is workable by creating a package which installs a recovery partition. |
46 |
| -[This blogpost](http://derflounder.wordpress.com/2012/06/26/creating-an-updated-recovery-hd/) |
47 |
| -has good information. |
48 |
| - |
49 |
| -The build process will frequently fail, a success rate of 20% is good. |
50 |
| -Failures can be caused by the DeployStudio share not mounted on boot by |
51 |
| -the OS X machine's "Persistent" personality, by stale download URLs, by offline |
52 |
| -download servers, by flawed gem dependencies, etc.... |
53 |
| - |
54 |
| -# To whom do we complain? |
55 |
| -**apple_orchard** started as a side project of [Matthew |
56 |
| -Kocher](https://github.com/mkocher) and [Brian |
57 |
| -Cunnie](https://github.com/briancunnie) of Pivotal Labs in Summer 2011. |
| 1 | +This project has moved to https://github.com/pivotal-sprout/sprout-orchard |
0 commit comments