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,595 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>README - 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/PACKAGING_rdoc.html">PACKAGING</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+-+Coral+Orchestration+and+Research+Library"><a href="CORL.html">CORL</a> - Coral Orchestration and Research Library</h1>
369
+
370
+ <p><a href="https://github.com/coralnexus/nucleon">Nucleon</a> plugin library
371
+ and framework for building, synchronizing, and executing distributed
372
+ actions and agents across heterogeneous networks of machines.</p>
373
+
374
+ <h2 id="label-Origin+and+philosophy++%28aka%3A+Why+is+this+project+being+developed%3F%29">Origin and philosophy (aka: Why is this project being developed?)</h2>
375
+
376
+ <p>This project began with the need to automate the management of our own
377
+ infrastructure architecture starting in mid 2012. In early 2013 the
378
+ initial work towards this goal was merged into two projects; <a
379
+ href="Nucleon.html">Nucleon</a> (general plugin management framework and
380
+ execution environment), and <a href="CORL.html">CORL</a> (this project).</p>
381
+
382
+ <p>We believe in the future, as machines become more connected and integrated,
383
+ there will be profound need for frameworks that allow for the creation of
384
+ semi or fully autonomous cyber entities that evolve across the cloud. These
385
+ software entities will have varying capabilities and objectives but all
386
+ will be capable of managing their machines, communicating with others in
387
+ their network, and reproducing when neccessary. We want to help further a
388
+ new era of smart infrastructure by providing an open source framework for
389
+ developing such entities and their requisite environments.</p>
390
+
391
+ <p>Treating machines as autonomous software entities that can self manage
392
+ allows for the agile and adaptive evolution of the computer systems we rely
393
+ on to make our lives easier. Management dashboards and user controls are
394
+ great but the future of the web belongs to the machines acting in our
395
+ interests. <a href="CORL.html">CORL</a> is being developed to help bring
396
+ the machines to life (in a manner of speaking).</p>
397
+
398
+ <h2 id="label-State+of+the+project">State of the project</h2>
399
+
400
+ <p><a href="CORL.html">CORL</a>, and its parent <a
401
+ href="https://github.com/coralnexus/nucleon">Nucleon</a> are still in alpha
402
+ development and not yet ready for production unless you know how to
403
+ develop with it and fix bugs. We use it for our infrastructure
404
+ architecture internally, but there are kinks we still have to work out to
405
+ meet the full set of intended architectual objectives. We are currently
406
+ finalizing the acquarium, next comes the fish.</p>
407
+
408
+ <p>If you are a tinkerer and are passionate about machine managed systems or
409
+ organically inspired software systems we invite your contributions in
410
+ whatever form you wish to provide. Contact Adrian Webb ( coralnexus at
411
+ adrian.webb.com ) with questions or feedback or just post an issue.</p>
412
+
413
+ <p><strong>Note that all development and testing has been on Ubuntu
414
+ (12.04/14.04) so far.</strong></p>
415
+
416
+ <p>To review tasks needing completion before first production release, <a
417
+ href="info/TODO.rdoc">see the TODO</a>.</p>
418
+
419
+ <p>To get an overview of what plugins are currently provided, go <a
420
+ href="info/PLUGINS.rdoc">here</a>.</p>
421
+
422
+ <h2 id="label-CORL+architecture"><a href="CORL.html">CORL</a> architecture</h2>
423
+
424
+ <p><a href="CORL.html">CORL</a> is a <strong>programming framework</strong>
425
+ and <strong>execution environment</strong> intended for:</p>
426
+
427
+ <pre>1. Management of reusable high availability platforms across cloud providers
428
+
429
+ 2. Distributed programming or script execution across dynamically managed nodes
430
+
431
+ 3. Decentralized networking and provisioning of heterogeneous machines
432
+
433
+ 4. Cloud based evolutionary multi-agent simulations and processing</pre>
434
+
435
+ <h3 id="label-Key+design+requirements%3A">Key design requirements:</h3>
436
+ <ul><li>
437
+ <p>Lightweight programming framework for executing actions and managing agents
438
+ across dynamically evolving networks of nodes</p>
439
+ </li><li>
440
+ <p>Pluggable data driven integration capabilities</p>
441
+ </li><li>
442
+ <p>Portable actions and packages that can be searched and aggregated from
443
+ across the system</p>
444
+ </li><li>
445
+ <p>Network projects that connect nodes, architecture, and resources as
446
+ decentralized revision controlled projects, not centralized hosted
447
+ databases</p>
448
+ </li><li>
449
+ <p>CLI action interface</p>
450
+ </li><li>
451
+ <p>REST action host (not implemented yet)</p>
452
+ </li></ul>
453
+
454
+ <h3 id="label-Things+CORL+is+NOT+meant+to+be%3A">Things <a href="CORL.html">CORL</a> is NOT meant to be:</h3>
455
+ <ul><li>
456
+ <p>A dashboard or UI driven application (we are focused solely on machines)</p>
457
+ </li><li>
458
+ <p>A continuously running agent or hosted application (we need to minimize
459
+ system resource usage)</p>
460
+ </li><li>
461
+ <p>A bloated platform that requires a multi-system platform or dedicated
462
+ servers to operate</p>
463
+ </li><li>
464
+ <p>A virtualization system (although it uses them)</p>
465
+ </li></ul>
466
+
467
+ <p>Care to <a href="https://prezi.com/enwlxtfhdqoq/corl">walk through the CORL
468
+ architecture on Prezi</a>?</p>
469
+
470
+ <h2 id="label-CORL+focus+areas"><a href="CORL.html">CORL</a> focus areas</h2>
471
+
472
+ <p>Our ultimate goal is the scalable application of our resources, time, and
473
+ workflows, while allowing for evolutionary and adaptive growth of our IT
474
+ infrastructure.</p>
475
+
476
+ <p><a href="README.rdoc"><img
477
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/purpose.png"
478
+ align="right"></a></p>
479
+
480
+ <p><strong>Packaging</strong> serves as a foundation for an automated
481
+ architecture by providing reusable configuration managed images that can be
482
+ easily launched across local and remote virtual machine and container
483
+ providers. Our goal with packaging is to turn machines into programmable
484
+ data objects which can be easily automated through diverse software
485
+ systems.</p>
486
+
487
+ <p><strong>Automation</strong> builds on packaged data and systems, and allows
488
+ for reusable development of flexible integrated workflows. Automation
489
+ capabilities depend on the degree to which machine inspection and
490
+ management has been abstracted from the various configuration files,
491
+ system services, and operating system nuances. <a
492
+ href="CORL.html">CORL</a> tries to bridge technologies that abstract the
493
+ relevant data from the machine and various applications so we can more
494
+ easily monitor and automate. Two modes of automation are possible;
495
+ actions (fire and forget), and agents (managed services that utilize
496
+ actions).</p>
497
+
498
+ <p><strong>Scaling</strong> of infrastructure resources and workflows becomes
499
+ easier when we have a flexible automation system that can work with
500
+ machines as data, and deeply integrate with the software, services, and
501
+ workflows we already employ.</p>
502
+
503
+ <h3 id="label-Packaging+system">Packaging system</h3>
504
+
505
+ <p>To build adaptive infrastructure we treat each machine as a programmable
506
+ data model that is connected to other machines in a shared network (data
507
+ pool).</p>
508
+
509
+ <p>This also helps create an entirely hands off administration process that is
510
+ easy to query and modify through remote action execution.</p>
511
+
512
+ <p><img
513
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/packaging-overview.png"
514
+ /></p>
515
+
516
+ <p>To read more on the <a href="CORL.html">CORL</a> packaging system, <a
517
+ href="info/PACKAGING.rdoc">see the packaging overview</a>.</p>
518
+
519
+ <h3 id="label-Automation+system">Automation system</h3>
520
+
521
+ <p>The ability to create, reuse, and extend integrated development and
522
+ administration workflows across standardized plugin interfaces gives us the
523
+ ability to focus on the task at hand while allowing for the creation of
524
+ different interface implementations when needed.</p>
525
+
526
+ <p><img
527
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/automation-overview.png"
528
+ /></p>
529
+
530
+ <h2 id="label-CORL+installation+and+setup"><a href="CORL.html">CORL</a> installation and setup</h2>
531
+
532
+ <p><a href="CORL.html">CORL</a> is designed so it requires few dependencies
533
+ outside of the Ruby language and some useful Gems.</p>
534
+
535
+ <p>See the <a href="info/INSTALLATION.rdoc">installation instructions</a> for
536
+ information on requirements and getting <a href="CORL.html">CORL</a>
537
+ installed on your machines.</p>
538
+
539
+ <h2 id="label-Ruby+Versions">Ruby Versions</h2>
540
+
541
+ <p>This library has been developed with and should support MRI Ruby versions:</p>
542
+ <ul><li>
543
+ <p><strong>Ruby 1.9.2</strong></p>
544
+ </li><li>
545
+ <p><strong>Ruby 1.9.3</strong></p>
546
+ </li><li>
547
+ <p><strong>Ruby 2.0.0</strong></p>
548
+ </li><li>
549
+ <p><strong>Ruby 2.1.0</strong></p>
550
+ </li></ul>
551
+
552
+ <p>If something doesn&#39;t work on one of these Ruby versions, it&#39;s a
553
+ bug.</p>
554
+
555
+ <p>This library may inadvertently work (or seem to work) on other Ruby
556
+ implementations, but support will only be provided for the versions listed
557
+ above. <strong>Rubinius</strong> is being tested and will ultimately be
558
+ supported.</p>
559
+
560
+ <p>This library currently does not work on <strong>JRuby</strong> due to <a
561
+ href="CORL.html">CORL</a> gem dependencies, such as Rugged, that provide C
562
+ Ruby extensions (which JRuby does not support).</p>
563
+
564
+ <p>We have developed this so far pretty much entirely on Ubuntu but the core
565
+ framework should work with other Linux distributions. There are known
566
+ issues with Windows when executed through <a
567
+ href="Vagrant.html">Vagrant</a> and Cygwin.</p>
568
+
569
+ <h2 id="label-Versioning">Versioning</h2>
570
+
571
+ <p>This framework should be considered unstable and likely to break as
572
+ remaining bugs and unit testing are completed going forward. When we reach
573
+ version 1.0.0 full <a href="http://semver.org">semantic versioning</a>
574
+ will be ahered to. Until then the minor version specifies a major
575
+ architectural change, and patch versions could fix bugs and revise features
576
+ that could break backward compatibility.</p>
577
+
578
+ <h2 id="label-License">License</h2>
579
+
580
+ <p>Licensed under Apache License 2.0. See LICENSE.txt for further details.</p>
581
+
582
+ <p>Copyright © 2013-2015 Adrian Webb ( <a
583
+ href="mailto:adrian.webb@coraltech.net">adrian.webb@coraltech.net</a> )
584
+ <strong>Coral Technology Group LLC</strong></p>
585
+
586
+ </div>
587
+
588
+
589
+
590
+ <footer id="validator-badges">
591
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
592
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
593
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
594
+ </footer>
595
+