corl 0.5.6 → 0.5.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +10 -1
  3. data/Gemfile +1 -0
  4. data/Gemfile.lock +4 -0
  5. data/README.rdoc +125 -517
  6. data/Rakefile +57 -0
  7. data/VERSION +1 -1
  8. data/bootstrap/os/ubuntu/00_base.sh +10 -7
  9. data/bootstrap/os/ubuntu/05_ruby.sh +4 -4
  10. data/corl.gemspec +32 -5
  11. data/info/AUTOMATION.rdoc +5 -0
  12. data/info/INSTALLATION.rdoc +163 -0
  13. data/info/PACKAGING.rdoc +171 -0
  14. data/info/PLUGINS.rdoc +57 -0
  15. data/info/TODO.rdoc +27 -0
  16. data/lib/CORL/configuration/file.rb +2 -2
  17. data/lib/CORL/machine/docker.rb +327 -0
  18. data/lib/CORL/machine/vagrant.rb +142 -107
  19. data/lib/CORL/node/docker.rb +269 -0
  20. data/lib/CORL/node/vagrant.rb +23 -0
  21. data/lib/CORL/provisioner/puppetnode.rb +52 -27
  22. data/lib/core/facade.rb +36 -34
  23. data/lib/core/mixin/builder.rb +44 -44
  24. data/lib/core/mixin/machine/ssh.rb +34 -34
  25. data/lib/core/mod/vagrant.rb +32 -0
  26. data/lib/core/plugin/cloud_action.rb +1 -1
  27. data/lib/core/plugin/machine.rb +85 -85
  28. data/lib/core/plugin/network.rb +23 -9
  29. data/lib/core/plugin/node.rb +10 -7
  30. data/lib/core/plugin/provisioner.rb +3 -3
  31. data/lib/core/vagrant/action.rb +15 -13
  32. data/lib/core/vagrant/actions/include_overrides.rb +17 -0
  33. data/lib/core/vagrant/actions/init_keys.rb +9 -5
  34. data/lib/core/vagrant/commands/launcher.rb +1 -1
  35. data/lib/core/vagrant/config.rb +343 -143
  36. data/lib/core/vagrant/plugins.rb +14 -14
  37. data/lib/corl.rb +3 -7
  38. data/lib/nucleon/action/node/provision.rb +15 -4
  39. data/lib/nucleon/action/node/seed.rb +2 -2
  40. data/lib/nucleon/extension/vagrant.rb +30 -0
  41. data/locales/en.yml +5 -0
  42. data/rdoc/site/0.5.7/README.rdoc +595 -0
  43. data/rdoc/site/0.5.7/info/AUTOMATION.rdoc +382 -0
  44. data/rdoc/site/0.5.7/info/INSTALLATION.rdoc +543 -0
  45. data/rdoc/site/0.5.7/info/PACKAGES.rdoc +556 -0
  46. data/rdoc/site/0.5.7/info/PACKAGING.rdoc +563 -0
  47. data/rdoc/site/0.5.7/info/PLUGINS.rdoc +534 -0
  48. data/rdoc/site/0.5.7/info/TODO.rdoc +412 -0
  49. data/tmp/README.rdoc +217 -0
  50. data/tmp/info/AUTOMATION.rdoc +6 -0
  51. data/tmp/info/INSTALLATION.rdoc +158 -0
  52. data/tmp/info/PACKAGES.rdoc +177 -0
  53. data/tmp/info/PACKAGING.rdoc +184 -0
  54. data/tmp/info/PLUGINS.rdoc +129 -0
  55. data/tmp/info/README.rdoc +217 -0
  56. data/tmp/info/TODO.rdoc +36 -0
  57. metadata +41 -3
  58. data/TODO.rdoc +0 -12
@@ -0,0 +1,556 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>PACKAGES - corl 0.5.7</title>
8
+
9
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
21
+
22
+
23
+ <body class="file">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../index.html">Home</a>
28
+ <a href="../table_of_contents.html#classes">Classes</a>
29
+ <a href="../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="project-metadata">
47
+ <nav id="fileindex-section" class="section project-section">
48
+ <h3 class="section-header">Pages</h3>
49
+
50
+ <ul>
51
+
52
+ <li class="file"><a href="../README_rdoc.html">README</a>
53
+
54
+ <li class="file"><a href="../info/AUTOMATION_rdoc.html">AUTOMATION</a>
55
+
56
+ <li class="file"><a href="../info/INSTALLATION_rdoc.html">INSTALLATION</a>
57
+
58
+ <li class="file"><a href="../info/PACKAGES_rdoc.html">PACKAGES</a>
59
+
60
+ <li class="file"><a href="../info/PLUGINS_rdoc.html">PLUGINS</a>
61
+
62
+ <li class="file"><a href="../info/TODO_rdoc.html">TODO</a>
63
+
64
+ </ul>
65
+ </nav>
66
+
67
+ <nav id="classindex-section" class="section project-section">
68
+ <h3 class="section-header">Class and Module Index</h3>
69
+
70
+ <ul class="link-list">
71
+
72
+ <li><a href="../CORL.html">CORL</a>
73
+
74
+ <li><a href="../CORL/Build.html">CORL::Build</a>
75
+
76
+ <li><a href="../CORL/Builder.html">CORL::Builder</a>
77
+
78
+ <li><a href="../CORL/Builder/Identity.html">CORL::Builder::Identity</a>
79
+
80
+ <li><a href="../CORL/Builder/Package.html">CORL::Builder::Package</a>
81
+
82
+ <li><a href="../CORL/Builder/Project.html">CORL::Builder::Project</a>
83
+
84
+ <li><a href="../CORL/Configuration.html">CORL::Configuration</a>
85
+
86
+ <li><a href="../CORL/Configuration/File.html">CORL::Configuration::File</a>
87
+
88
+ <li><a href="../CORL/Errors.html">CORL::Errors</a>
89
+
90
+ <li><a href="../CORL/Facade.html">CORL::Facade</a>
91
+
92
+ <li><a href="../CORL/Machine.html">CORL::Machine</a>
93
+
94
+ <li><a href="../CORL/Machine/AWS.html">CORL::Machine::AWS</a>
95
+
96
+ <li><a href="../CORL/Machine/Docker.html">CORL::Machine::Docker</a>
97
+
98
+ <li><a href="../CORL/Machine/FogBase.html">CORL::Machine::FogBase</a>
99
+
100
+ <li><a href="../CORL/Machine/Physical.html">CORL::Machine::Physical</a>
101
+
102
+ <li><a href="../CORL/Machine/Rackspace.html">CORL::Machine::Rackspace</a>
103
+
104
+ <li><a href="../CORL/Machine/Vagrant.html">CORL::Machine::Vagrant</a>
105
+
106
+ <li><a href="../CORL/Mixin.html">CORL::Mixin</a>
107
+
108
+ <li><a href="../CORL/Mixin/Action.html">CORL::Mixin::Action</a>
109
+
110
+ <li><a href="../CORL/Mixin/Action/Keypair.html">CORL::Mixin::Action::Keypair</a>
111
+
112
+ <li><a href="../CORL/Mixin/Action/Registration.html">CORL::Mixin::Action::Registration</a>
113
+
114
+ <li><a href="../CORL/Mixin/Builder.html">CORL::Mixin::Builder</a>
115
+
116
+ <li><a href="../CORL/Mixin/Builder/Global.html">CORL::Mixin::Builder::Global</a>
117
+
118
+ <li><a href="../CORL/Mixin/Builder/Instance.html">CORL::Mixin::Builder::Instance</a>
119
+
120
+ <li><a href="../CORL/Mixin/Lookup.html">CORL::Mixin::Lookup</a>
121
+
122
+ <li><a href="../CORL/Mixin/Machine.html">CORL::Mixin::Machine</a>
123
+
124
+ <li><a href="../CORL/Mixin/Machine/SSH.html">CORL::Mixin::Machine::SSH</a>
125
+
126
+ <li><a href="../CORL/Mixin/Macro.html">CORL::Mixin::Macro</a>
127
+
128
+ <li><a href="../CORL/Mixin/Macro/NetworkSettings.html">CORL::Mixin::Macro::NetworkSettings</a>
129
+
130
+ <li><a href="../CORL/Network.html">CORL::Network</a>
131
+
132
+ <li><a href="../CORL/Network/CORL.html">CORL::Network::CORL</a>
133
+
134
+ <li><a href="../CORL/Node.html">CORL::Node</a>
135
+
136
+ <li><a href="../CORL/Node/AWS.html">CORL::Node::AWS</a>
137
+
138
+ <li><a href="../CORL/Node/Docker.html">CORL::Node::Docker</a>
139
+
140
+ <li><a href="../CORL/Node/FogBase.html">CORL::Node::FogBase</a>
141
+
142
+ <li><a href="../CORL/Node/Local.html">CORL::Node::Local</a>
143
+
144
+ <li><a href="../CORL/Node/Rackspace.html">CORL::Node::Rackspace</a>
145
+
146
+ <li><a href="../CORL/Node/Vagrant.html">CORL::Node::Vagrant</a>
147
+
148
+ <li><a href="../CORL/Plugin.html">CORL::Plugin</a>
149
+
150
+ <li><a href="../CORL/Plugin/Builder.html">CORL::Plugin::Builder</a>
151
+
152
+ <li><a href="../CORL/Plugin/Configuration.html">CORL::Plugin::Configuration</a>
153
+
154
+ <li><a href="../CORL/Plugin/Machine.html">CORL::Plugin::Machine</a>
155
+
156
+ <li><a href="../CORL/Plugin/Network.html">CORL::Plugin::Network</a>
157
+
158
+ <li><a href="../CORL/Plugin/Node.html">CORL::Plugin::Node</a>
159
+
160
+ <li><a href="../CORL/Plugin/Provisioner.html">CORL::Plugin::Provisioner</a>
161
+
162
+ <li><a href="../CORL/Provisioner.html">CORL::Provisioner</a>
163
+
164
+ <li><a href="../CORL/Provisioner/Puppetnode.html">CORL::Provisioner::Puppetnode</a>
165
+
166
+ <li><a href="../CORL/Util.html">CORL::Util</a>
167
+
168
+ <li><a href="../CORL/Util/Puppet.html">CORL::Util::Puppet</a>
169
+
170
+ <li><a href="../CORL/Util/Puppet/Resource.html">CORL::Util::Puppet::Resource</a>
171
+
172
+ <li><a href="../CORL/Util/Puppet/ResourceGroup.html">CORL::Util::Puppet::ResourceGroup</a>
173
+
174
+ <li><a href="../CORL/Vagrant.html">CORL::Vagrant</a>
175
+
176
+ <li><a href="../CORL/Vagrant/Config.html">CORL::Vagrant::Config</a>
177
+
178
+ <li><a href="../Nucleon.html">Nucleon</a>
179
+
180
+ <li><a href="../Nucleon/Action.html">Nucleon::Action</a>
181
+
182
+ <li><a href="../Nucleon/Action/Cloud.html">Nucleon::Action::Cloud</a>
183
+
184
+ <li><a href="../Nucleon/Action/Cloud/Config.html">Nucleon::Action::Cloud::Config</a>
185
+
186
+ <li><a href="../Nucleon/Action/Cloud/Create.html">Nucleon::Action::Cloud::Create</a>
187
+
188
+ <li><a href="../Nucleon/Action/Cloud/Images.html">Nucleon::Action::Cloud::Images</a>
189
+
190
+ <li><a href="../Nucleon/Action/Cloud/Inspect.html">Nucleon::Action::Cloud::Inspect</a>
191
+
192
+ <li><a href="../Nucleon/Action/Cloud/Machines.html">Nucleon::Action::Cloud::Machines</a>
193
+
194
+ <li><a href="../Nucleon/Action/Cloud/Regions.html">Nucleon::Action::Cloud::Regions</a>
195
+
196
+ <li><a href="../Nucleon/Action/Cloud/Remote.html">Nucleon::Action::Cloud::Remote</a>
197
+
198
+ <li><a href="../Nucleon/Action/Cloud/Settings.html">Nucleon::Action::Cloud::Settings</a>
199
+
200
+ <li><a href="../Nucleon/Action/Cloud/Vagrantfile.html">Nucleon::Action::Cloud::Vagrantfile</a>
201
+
202
+ <li><a href="../Nucleon/Action/Node.html">Nucleon::Action::Node</a>
203
+
204
+ <li><a href="../Nucleon/Action/Node/Authorize.html">Nucleon::Action::Node::Authorize</a>
205
+
206
+ <li><a href="../Nucleon/Action/Node/Bootstrap.html">Nucleon::Action::Node::Bootstrap</a>
207
+
208
+ <li><a href="../Nucleon/Action/Node/Build.html">Nucleon::Action::Node::Build</a>
209
+
210
+ <li><a href="../Nucleon/Action/Node/Cache.html">Nucleon::Action::Node::Cache</a>
211
+
212
+ <li><a href="../Nucleon/Action/Node/Destroy.html">Nucleon::Action::Node::Destroy</a>
213
+
214
+ <li><a href="../Nucleon/Action/Node/Exec.html">Nucleon::Action::Node::Exec</a>
215
+
216
+ <li><a href="../Nucleon/Action/Node/Fact.html">Nucleon::Action::Node::Fact</a>
217
+
218
+ <li><a href="../Nucleon/Action/Node/Facts.html">Nucleon::Action::Node::Facts</a>
219
+
220
+ <li><a href="../Nucleon/Action/Node/Group.html">Nucleon::Action::Node::Group</a>
221
+
222
+ <li><a href="../Nucleon/Action/Node/Groups.html">Nucleon::Action::Node::Groups</a>
223
+
224
+ <li><a href="../Nucleon/Action/Node/IP.html">Nucleon::Action::Node::IP</a>
225
+
226
+ <li><a href="../Nucleon/Action/Node/Identity.html">Nucleon::Action::Node::Identity</a>
227
+
228
+ <li><a href="../Nucleon/Action/Node/Image.html">Nucleon::Action::Node::Image</a>
229
+
230
+ <li><a href="../Nucleon/Action/Node/Keypair.html">Nucleon::Action::Node::Keypair</a>
231
+
232
+ <li><a href="../Nucleon/Action/Node/Lookup.html">Nucleon::Action::Node::Lookup</a>
233
+
234
+ <li><a href="../Nucleon/Action/Node/Provision.html">Nucleon::Action::Node::Provision</a>
235
+
236
+ <li><a href="../Nucleon/Action/Node/Reboot.html">Nucleon::Action::Node::Reboot</a>
237
+
238
+ <li><a href="../Nucleon/Action/Node/Revoke.html">Nucleon::Action::Node::Revoke</a>
239
+
240
+ <li><a href="../Nucleon/Action/Node/SSH.html">Nucleon::Action::Node::SSH</a>
241
+
242
+ <li><a href="../Nucleon/Action/Node/Seed.html">Nucleon::Action::Node::Seed</a>
243
+
244
+ <li><a href="../Nucleon/Action/Node/Spawn.html">Nucleon::Action::Node::Spawn</a>
245
+
246
+ <li><a href="../Nucleon/Action/Node/Start.html">Nucleon::Action::Node::Start</a>
247
+
248
+ <li><a href="../Nucleon/Action/Node/Status.html">Nucleon::Action::Node::Status</a>
249
+
250
+ <li><a href="../Nucleon/Action/Node/Stop.html">Nucleon::Action::Node::Stop</a>
251
+
252
+ <li><a href="../Nucleon/Action/Plugin.html">Nucleon::Action::Plugin</a>
253
+
254
+ <li><a href="../Nucleon/Action/Plugin/Create.html">Nucleon::Action::Plugin::Create</a>
255
+
256
+ <li><a href="../Nucleon/Action/Plugin/List.html">Nucleon::Action::Plugin::List</a>
257
+
258
+ <li><a href="../Nucleon/Action/Plugins.html">Nucleon::Action::Plugins</a>
259
+
260
+ <li><a href="../Nucleon/Config.html">Nucleon::Config</a>
261
+
262
+ <li><a href="../Nucleon/Event.html">Nucleon::Event</a>
263
+
264
+ <li><a href="../Nucleon/Event/Puppet.html">Nucleon::Event::Puppet</a>
265
+
266
+ <li><a href="../Nucleon/Extension.html">Nucleon::Extension</a>
267
+
268
+ <li><a href="../Nucleon/Extension/CorlConfig.html">Nucleon::Extension::CorlConfig</a>
269
+
270
+ <li><a href="../Nucleon/Extension/Vagrant.html">Nucleon::Extension::Vagrant</a>
271
+
272
+ <li><a href="../Nucleon/Plugin.html">Nucleon::Plugin</a>
273
+
274
+ <li><a href="../Nucleon/Plugin/Agent.html">Nucleon::Plugin::Agent</a>
275
+
276
+ <li><a href="../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
277
+
278
+ <li><a href="../Nucleon/Plugin/CloudAction.html">Nucleon::Plugin::CloudAction</a>
279
+
280
+ <li><a href="../Nucleon/Template.html">Nucleon::Template</a>
281
+
282
+ <li><a href="../Nucleon/Template/Environment.html">Nucleon::Template::Environment</a>
283
+
284
+ <li><a href="../VagrantPlugins.html">VagrantPlugins</a>
285
+
286
+ <li><a href="../VagrantPlugins/CORL.html">VagrantPlugins::CORL</a>
287
+
288
+ <li><a href="../VagrantPlugins/CORL/Action.html">VagrantPlugins::CORL::Action</a>
289
+
290
+ <li><a href="../VagrantPlugins/CORL/Action/DeleteCache.html">VagrantPlugins::CORL::Action::DeleteCache</a>
291
+
292
+ <li><a href="../VagrantPlugins/CORL/Action/IncludeOverrides.html">VagrantPlugins::CORL::Action::IncludeOverrides</a>
293
+
294
+ <li><a href="../VagrantPlugins/CORL/Action/InitKeys.html">VagrantPlugins::CORL::Action::InitKeys</a>
295
+
296
+ <li><a href="../VagrantPlugins/CORL/Action/LinkNetwork.html">VagrantPlugins::CORL::Action::LinkNetwork</a>
297
+
298
+ <li><a href="../VagrantPlugins/CORL/BaseAction.html">VagrantPlugins::CORL::BaseAction</a>
299
+
300
+ <li><a href="../VagrantPlugins/CORL/Command.html">VagrantPlugins::CORL::Command</a>
301
+
302
+ <li><a href="../VagrantPlugins/CORL/Command/Launcher.html">VagrantPlugins::CORL::Command::Launcher</a>
303
+
304
+ <li><a href="../VagrantPlugins/CORL/Config.html">VagrantPlugins::CORL::Config</a>
305
+
306
+ <li><a href="../VagrantPlugins/CORL/Config/CORL.html">VagrantPlugins::CORL::Config::CORL</a>
307
+
308
+ <li><a href="../VagrantPlugins/CORL/Plugin.html">VagrantPlugins::CORL::Plugin</a>
309
+
310
+ <li><a href="../VagrantPlugins/CORL/Provisioner.html">VagrantPlugins::CORL::Provisioner</a>
311
+
312
+ <li><a href="../VagrantPlugins/CORL/Provisioner/CORL.html">VagrantPlugins::CORL::Provisioner::CORL</a>
313
+
314
+ <li><a href="../VagrantPlugins/CommunicatorSSH.html">VagrantPlugins::CommunicatorSSH</a>
315
+
316
+ <li><a href="../VagrantPlugins/CommunicatorSSH/Communicator.html">VagrantPlugins::CommunicatorSSH::Communicator</a>
317
+
318
+ <li><a href="../Puppet.html">Puppet</a>
319
+
320
+ <li><a href="../Puppet/DataBinding.html">Puppet::DataBinding</a>
321
+
322
+ <li><a href="../Puppet/DataBinding/Corl.html">Puppet::DataBinding::Corl</a>
323
+
324
+ <li><a href="../Puppet/Indirector.html">Puppet::Indirector</a>
325
+
326
+ <li><a href="../Puppet/Indirector/Corl.html">Puppet::Indirector::Corl</a>
327
+
328
+ <li><a href="../Puppet/Parser.html">Puppet::Parser</a>
329
+
330
+ <li><a href="../Puppet/Parser/Functions.html">Puppet::Parser::Functions</a>
331
+
332
+ <li><a href="../Fog.html">Fog</a>
333
+
334
+ <li><a href="../Fog/Compute.html">Fog::Compute</a>
335
+
336
+ <li><a href="../Fog/Compute/AWS.html">Fog::Compute::AWS</a>
337
+
338
+ <li><a href="../Fog/Compute/AWS/Server.html">Fog::Compute::AWS::Server</a>
339
+
340
+ <li><a href="../Fog/Compute/RackspaceV2.html">Fog::Compute::RackspaceV2</a>
341
+
342
+ <li><a href="../Fog/Compute/RackspaceV2/Server.html">Fog::Compute::RackspaceV2::Server</a>
343
+
344
+ <li><a href="../Vagrant.html">Vagrant</a>
345
+
346
+ <li><a href="../Vagrant/Config.html">Vagrant::Config</a>
347
+
348
+ <li><a href="../Vagrant/Config/Loader.html">Vagrant::Config::Loader</a>
349
+
350
+ <li><a href="../Vagrant/Vagrantfile.html">Vagrant::Vagrantfile</a>
351
+
352
+ <li><a href="../Hiera.html">Hiera</a>
353
+
354
+ <li><a href="../Hiera/Backend.html">Hiera::Backend</a>
355
+
356
+ <li><a href="../Hiera/Corl_logger.html">Hiera::Corl_logger</a>
357
+
358
+ <li><a href="../Object.html">Object</a>
359
+
360
+ </ul>
361
+ </nav>
362
+
363
+ </div>
364
+ </nav>
365
+
366
+ <div id="documentation" class="description">
367
+
368
+ <h1 id="label-CORL+packaging+system"><a href="../CORL.html">CORL</a> packaging system</h1>
369
+
370
+ <p><a href="../CORL.html">CORL</a> provides a middle layer between
371
+ configuration management tools like <a href="../Puppet.html">Puppet</a> and
372
+ automation systems and processes. <a href="../CORL.html">CORL</a> can be
373
+ extended in individual projects and easily merge libraries of bundled
374
+ plugin interfaces and providers.</p>
375
+
376
+ <h4 id="label-Networks">Networks</h4>
377
+
378
+ <p>At the very top level in <a href="../CORL.html">CORL</a> there is a network
379
+ project. Think of it as a parent container for everything necessary to
380
+ grow a network of machines. By default the network is a shared Git
381
+ repository but the project interface is pluggable for individual needs.</p>
382
+
383
+ <p>Networks bundle:</p>
384
+ <ul><li>
385
+ <p>Network and node group settings</p>
386
+ </li><li>
387
+ <p>Contexual configurations</p>
388
+ </li><li>
389
+ <p>Build definitions (packages, identities, projects, etc…)</p>
390
+ </li><li>
391
+ <p>Node data objects</p>
392
+ </li><li>
393
+ <p>Shared authentication information</p>
394
+ </li><li>
395
+ <p><a href="../CORL.html">CORL</a> plugin interface implementations</p>
396
+ </li><li>
397
+ <p>Any other shared files</p>
398
+ </li></ul>
399
+
400
+ <p>To see an example of a network project, <a
401
+ href="https://github.com/coralnexus/network-template">checkout our starter
402
+ template</a>.</p>
403
+
404
+ <h4 id="label-Packages">Packages</h4>
405
+
406
+ <p>Packages are revision controlled projects (Git) that contain reusable
407
+ infrastructure components. Packages are like lego blocks and can be
408
+ derived from combinations of other packages.</p>
409
+
410
+ <p><img
411
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/package.png"
412
+ /></p>
413
+
414
+ <p>Packages define a corl.{json|yaml} file in the root directory that contains
415
+ build directives targeted at various environments, like development,
416
+ staging, qa, and production. We internally lock qa and production build
417
+ revisions so we get standardized environments.</p>
418
+
419
+ <p>Packages bundle:</p>
420
+ <ul><li>
421
+ <p>Build definitions (packages, provisioner modules, projects, identities,
422
+ etc…)</p>
423
+ </li><li>
424
+ <p>Default configurations (<a href="../Puppet.html">Puppet</a> by default)</p>
425
+ </li><li>
426
+ <p>Provisioner gateways (<a href="../Puppet.html">Puppet</a> by default)</p>
427
+ </li><li>
428
+ <p>Provisioner profiles (<a href="../Puppet.html">Puppet</a> by default)</p>
429
+ </li></ul>
430
+
431
+ <p>Example build directive: (tracks <strong>master</strong> by default)</p>
432
+
433
+ <p>&gt; {package directory}/<strong>corl.json</strong></p>
434
+
435
+ <pre>{
436
+ &quot;builders&quot;: {
437
+ &quot;package&quot;: {
438
+ &quot;environment&quot;: {
439
+ &quot;production&quot;: {
440
+ &quot;coralnexus__core&quot;: &quot;github:::coralnexus/corl-package-core[04eaa0f855c7824c58d43f0dd7b1370fa16157d6]&quot;
441
+ },
442
+ &quot;qa&quot;: {
443
+ &quot;use&quot;: &quot;production&quot;
444
+ },
445
+ &quot;default&quot;: {
446
+ &quot;coralnexus__core&quot;: &quot;github:::coralnexus/corl-package-core&quot;
447
+ }
448
+ }
449
+ }
450
+ }
451
+ }</pre>
452
+
453
+ <p>This directive basically defines a dependency on the coralnexus core
454
+ package so that when this package is built on a system and profiles are
455
+ loaded the dependency and it&#39;s profiles are loaded first. Different
456
+ environments can track different branches of the same projects or include
457
+ different projects based on the state of the environment. Above we just
458
+ lock in a constant revision when in a production or QA environment.</p>
459
+
460
+ <p>Example <a href="../Puppet.html">Puppet</a> node profile: (Varnish proxy
461
+ server)</p>
462
+
463
+ <p>&gt; {package directory}/<strong>profiles/varnish_server.pp</strong></p>
464
+
465
+ <pre class="ruby"><span class="ruby-keyword">class</span> <span class="ruby-identifier">vendor_name</span><span class="ruby-operator">::</span><span class="ruby-identifier">package_namespace</span><span class="ruby-operator">::</span><span class="ruby-identifier">profile</span><span class="ruby-operator">::</span><span class="ruby-identifier">varnish_server</span> {
466
+ <span class="ruby-identifier">$base_name</span> = <span class="ruby-string">&#39;coralnexus_varnish_server&#39;</span>
467
+ <span class="ruby-identifier">anchor</span> { <span class="ruby-identifier">$base_name</span><span class="ruby-operator">:</span> }
468
+ <span class="ruby-comment">#---------------------------------------------------------------------------</span>
469
+ <span class="ruby-comment"># Required systems</span>
470
+ <span class="ruby-identifier">class</span> { <span class="ruby-string">&#39;varnish&#39;</span><span class="ruby-operator">:</span> <span class="ruby-identifier">require</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Anchor</span>[<span class="ruby-identifier">$base_name</span>] }
471
+ <span class="ruby-identifier">class</span> { <span class="ruby-string">&#39;varnish::vcl&#39;</span><span class="ruby-operator">:</span> <span class="ruby-identifier">require</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Class</span>[<span class="ruby-string">&#39;varnish&#39;</span>] }
472
+ <span class="ruby-comment">#---------------------------------------------------------------------------</span>
473
+ <span class="ruby-comment"># Optional systems</span>
474
+ <span class="ruby-identifier">corl</span><span class="ruby-operator">::</span><span class="ruby-identifier">include</span> { <span class="ruby-string">&#39;varnish_server_classes&#39;</span><span class="ruby-operator">:</span> <span class="ruby-identifier">require</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Class</span>[<span class="ruby-string">&#39;varnish::vcl&#39;</span>] }
475
+ <span class="ruby-comment">#---------------------------------------------------------------------------</span>
476
+ <span class="ruby-comment"># Resources</span>
477
+ <span class="ruby-identifier">corl_resources</span>(<span class="ruby-string">&#39;varnish::acl&#39;</span>, <span class="ruby-string">&#39;varnish_server::acl&#39;</span>, <span class="ruby-string">&#39;varnish_server::acl_defaults&#39;</span>)
478
+ <span class="ruby-identifier">corl_resources</span>(<span class="ruby-string">&#39;varnish::probe&#39;</span>, <span class="ruby-string">&#39;varnish_server::probe&#39;</span>, <span class="ruby-string">&#39;varnish_server::probe_defaults&#39;</span>)
479
+ <span class="ruby-identifier">corl_resources</span>(<span class="ruby-string">&#39;varnish::backend&#39;</span>, <span class="ruby-string">&#39;varnish_server::backend&#39;</span>, <span class="ruby-string">&#39;varnish_server::backend_defaults&#39;</span>)
480
+ <span class="ruby-identifier">corl_resources</span>(<span class="ruby-string">&#39;varnish::director&#39;</span>, <span class="ruby-string">&#39;varnish_server::director&#39;</span>, <span class="ruby-string">&#39;varnish_server::director_defaults&#39;</span>)
481
+ <span class="ruby-identifier">corl_resources</span>(<span class="ruby-string">&#39;varnish::selector&#39;</span>, <span class="ruby-string">&#39;varnish_server::selector&#39;</span>, <span class="ruby-string">&#39;varnish_server::selector_defaults&#39;</span>)
482
+ }
483
+ </pre>
484
+
485
+ <p>Example provisioner directive: (tracks <strong>master</strong> by default)</p>
486
+
487
+ <p>&gt; {package directory}/<strong>corl.json</strong></p>
488
+
489
+ <pre>{
490
+ &quot;provisioners&quot;: {
491
+ &quot;puppetnode&quot;: {
492
+ &quot;vendor_name::package_namespace&quot;: {
493
+ &quot;varnish_server&quot;: {
494
+ &quot;environment&quot;: {
495
+ &quot;production&quot;: {
496
+ &quot;modules&quot;: {
497
+ &quot;varnish&quot;: &quot;github:::maxchk/puppet-varnish[b9846d1b35e87a45c98213fddfe71fa0a6f3b31c]&quot;,
498
+ &quot;varnish_drupal&quot;: &quot;github:::coralnexus/puppet-varnish_drupal[b1f8ecd9be5144d642d7717429a3652234b5f0d9]&quot;
499
+ }
500
+ },
501
+ &quot;qa&quot;: {
502
+ &quot;use&quot;: &quot;production&quot;
503
+ },
504
+ &quot;default&quot;: {
505
+ &quot;modules&quot;: {
506
+ &quot;varnish&quot;: &quot;github:::maxchk/puppet-varnish[develop]&quot;,
507
+ &quot;varnish_drupal&quot;: &quot;github:::coralnexus/puppet-varnish_drupal&quot;
508
+ }
509
+ }
510
+ }
511
+ }
512
+ }
513
+ }
514
+ }
515
+ }</pre>
516
+
517
+ <p>The above provisioner directive tells <a href="../CORL.html">CORL</a> to</p>
518
+
519
+ <p>To see an example of a package, <a
520
+ href="https://github.com/coralnexus/network-template">checkout our core
521
+ package</a>.</p>
522
+
523
+ <h4 id="label-Profiles">Profiles</h4>
524
+
525
+ <p>Node profiles are packaged systems and default configurations meant to run
526
+ as standalone server images or combined to create meta server images. The
527
+ <a href="../CORL.html">CORL</a> provisioner plugin defines an interface for
528
+ creating, linking, and provisioning profiles. Currently only <a
529
+ href="../Puppet.html">Puppet</a> is supported, but more provisioners are on
530
+ the way in the future.</p>
531
+
532
+ <p><img
533
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/profile.png"
534
+ /></p>
535
+
536
+ <p>Profiles are created in the native file format of the configuration
537
+ management system being used. For instance in our default Puppetnode
538
+ provisioner</p>
539
+
540
+ <p><img
541
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/example-network-architecture.png"
542
+ /></p>
543
+ <hr style="height: 1px">
544
+
545
+ <p><a href="../README.rdoc">Click here to return to the README</a></p>
546
+
547
+ </div>
548
+
549
+
550
+
551
+ <footer id="validator-badges">
552
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
553
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
554
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
555
+ </footer>
556
+