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 |