Commit 1bd7053c2d5b7fc8256e02dd9787f9beca1b616e
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
README.md
| ... | ... | @@ -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 |