Commit 1bd7053c2d5b7fc8256e02dd9787f9beca1b616e

Authored by Gary Larizza
1 parent a970e15714

Update README.md for @wfarr's changes

Based on the feedback in the Pull request <https://github.com/boxen/our-boxen/pull/12>,
this commit implements changes to clarify how someone would customize
their Boxen setup.

Showing 1 changed file with 31 additions and 11 deletions Side-by-side Diff

... ... @@ -81,17 +81,37 @@
81 81 <...>
82 82 }
83 83  
84   -All Puppet
85   -[class declarations](http://docs.puppetlabs.com/learning/modules1.html#classes)
86   -should be included in the default node definition. Theoretically, you _COULD_
87   -declare every
88   -[Puppet resource](http://docs.puppetlabs.com/learning/ral.html) in the
89   -`manifests/site.pp` file, but that would quickly become unwieldy. Instead,
90   -it's easier to create
91   -[Puppet modules](http://docs.puppetlabs.com/learning/modules1.html#modules)
92   -inside the `modules` folder of the Boxen repo. Boxen is setup to discover any
93   -modules you create in the `modules` folder, and we've already created a
94   -`people` and `projects` module structure for you to start using.
  84 +### How Boxen interacts with Puppet
  85 +
  86 +Boxen runs everything declared in `manifests/site.pp` by default.
  87 +But just like any other source code, throwing all your work into one massive
  88 +file is going to be difficult to work with. Instead, we recommend you
  89 +use modules via the `Puppetfile` when you can and making new modules
  90 +in the `modules/` directory when you can't. Then you just need to
  91 +`include $modulename` those modules in `manifests/site.pp`. One pattern
  92 +that's very common is to create a module for your organization
  93 +(eg. `modules/github`) and put an environment class in that module
  94 +to include all of the modules your organization wants to install for
  95 +everyone by default. An example of this might look like so:
  96 +
  97 +```
  98 + class github::environment {
  99 + include github::apps::mac
  100 +
  101 + include ruby::1-8-7
  102 +
  103 + include projects::super-top-secret-project
  104 + }
  105 + ```
  106 +
  107 + If you'd like to read more about how Puppet works, we recommend
  108 + checking out [the official documentation](http://docs.puppetlabs.com/)
  109 + for:
  110 +
  111 + * [Modules](http://docs.puppetlabs.com/learning/modules1.html#modules)
  112 + * [Classes](http://docs.puppetlabs.com/learning/modules1.html#classes)
  113 + * [Defined Types](http://docs.puppetlabs.com/learning/definedtypes.html)
  114 + * [Facts](http://docs.puppetlabs.com/guides/custom_facts.html)
95 115  
96 116 ### Creating a personal module
97 117