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,543 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>INSTALLATION - 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+installation"><a href="../CORL.html">CORL</a> installation</h1>
369
+
370
+ <h2 id="label-Requirements">Requirements</h2>
371
+
372
+ <p><a href="../CORL.html">CORL</a> and <a href="../Nucleon.html">Nucleon</a>
373
+ are available as Ruby Gems, which can easily be included in other
374
+ projects. They are ultimately destined for compatibility with any Linux,
375
+ Mac, and Windows machines, but due to early development resource
376
+ limitations we started with what we use internally.</p>
377
+
378
+ <p>This means they have currently been tested on:</p>
379
+
380
+ <pre>Ubuntu (12.04 / 14.04)
381
+ Ruby versions from 1.8 to 2.1 (&gt;= 1.9 highly recommended due to ordered hash capabilities)</pre>
382
+
383
+ <p>For information on the various ways to install Ruby, see the <a
384
+ href="https://www.ruby-lang.org/en/documentation/installation">Ruby
385
+ installation instructions</a>. We highly recommend <a
386
+ href="https://rvm.io">RVM</a>.</p>
387
+
388
+ <p>If using the Git or Github project plugin providers, Git will need to be
389
+ installed on the system and accessible in the execution search path. See
390
+ the <a href="http://git-scm.com/downloads">Git home</a> for more
391
+ information.</p>
392
+
393
+ <h2 id="label-Vagrant+development+environment"><a href="../Vagrant.html">Vagrant</a> development environment</h2>
394
+
395
+ <p>The easiest way to get up and running with <a href="../CORL.html">CORL</a>
396
+ from a number of operating systems is to use <a
397
+ href="http://vagrantup.com">Vagrant</a>. Included in this repository is a
398
+ Vagrantfile that can launch a Virtualbox VM or Docker container that
399
+ installs <a href="../CORL.html">CORL</a> on an Ubuntu base image. Make
400
+ sure that <a href="../Vagrant.html">Vagrant</a> (&gt; 1.6.5) is installed
401
+ on your system and fetch the <a href="../CORL.html">CORL</a> project into a
402
+ local directory.</p>
403
+
404
+ <pre>git clone -b 0.5 https://github.com/coralnexus/corl.git {corl/dev/path}
405
+ cd {corl/dev/path}
406
+ git submodule update --init --recursive</pre>
407
+
408
+ <p>To launch <a href="../CORL.html">CORL</a> in a local Virtualbox machine:</p>
409
+
410
+ <pre>vagrant up corl</pre>
411
+
412
+ <p>To launch <a href="../CORL.html">CORL</a> in a local Docker container you
413
+ must be running a Docker supported Linux version and have the Docker server
414
+ running on the local host.</p>
415
+
416
+ <pre>vagrant up corl_linux</pre>
417
+
418
+ <p>The <a href="../CORL.html">CORL</a> bootstrap process will initialize the
419
+ operating environment and install <a href="../CORL.html">CORL</a> onto the
420
+ VM or container.</p>
421
+
422
+ <pre>vagrant ssh corl | corl_linux
423
+ # Play around...</pre>
424
+
425
+ <p>When your done:</p>
426
+
427
+ <pre>vagrant destroy --force</pre>
428
+
429
+ <p>Three directories are shared with the VM/container to make development and
430
+ testing easier.</p>
431
+
432
+ <pre>{corl repo}/share/network -&gt; /var/corl # Two way share of root level network project
433
+ {corl repo}/share/home -&gt; /home/vagrant # One way RSync push to home (no delete)
434
+ {corl repo} -&gt; {remote gem path} # One way RSync push to the remote CORL gem code</pre>
435
+
436
+ <h2 id="label-Automated+bootstrap+%28for+images%29">Automated bootstrap (for images)</h2>
437
+
438
+ <p>If you are installing <a href="../CORL.html">CORL</a> outside of <a
439
+ href="../Vagrant.html">Vagrant</a>, we provide an internal <a
440
+ href="../CORL.html">CORL</a> bootstrap script package that automates the
441
+ installation (currently on Ubuntu only).</p>
442
+
443
+ <p>See the <a href="https://github.com/coralnexus/corl-bootstrap">CORL
444
+ bootstrap project on GitHub</a> to review the installation process and
445
+ dependencies in our automated Ubuntu installation scripts.</p>
446
+
447
+ <p>Here is an example <a href="../CORL.html">CORL</a> install script
448
+ (<strong>for Ubuntu</strong>)</p>
449
+
450
+ <pre>#!/bin/bash
451
+ #-----------------------------------------------------------------------------
452
+ echo &quot;1. Initializing Git&quot;
453
+ apt-get -y install git || exit 1
454
+
455
+ echo &quot;2. Fetching CORL bootstrap source repository&quot;
456
+ rm -Rf /tmp/corl-bootstrap
457
+ git clone https://github.com/coralnexus/corl-bootstrap.git /tmp/corl-bootstrap &gt;/tmp/corl.bootstrap.log 2&gt;&amp;1 || exit 2
458
+ cd /tmp/corl-bootstrap
459
+ git submodule update --init --recursive &gt;&gt;/tmp/corl.bootstrap.log 2&gt;&amp;1 || exit 3
460
+
461
+ echo &quot;3. Executing CORL bootstrap process...&quot;
462
+ chmod 755 /tmp/corl-bootstrap/bootstrap.sh
463
+ sudo /tmp/corl-bootstrap/bootstrap.sh || exit $?</pre>
464
+
465
+ <h2 id="label-Manual+installation">Manual installation</h2>
466
+
467
+ <p><strong>As a standalone system</strong></p>
468
+
469
+ <pre>$&gt; gem install corl # add sudo if not running RVM
470
+ $&gt; corl -h</pre>
471
+
472
+ <p><strong>As a <a href="../Vagrant.html">Vagrant</a> plugin</strong></p>
473
+
474
+ <pre>$&gt; vagrant plugin install corl
475
+ $&gt; vagrant corl -h</pre>
476
+
477
+ <p><strong>For Ruby applications</strong>, include in your <a
478
+ href="http://bundler.io/gemfile.html">Gemfile</a>:</p>
479
+
480
+ <pre>gem &quot;corl&quot;, &quot;~&gt; 0.5&quot;</pre>
481
+
482
+ <h2 id="label-Checking+loaded+plugins+and+providers">Checking loaded plugins and providers</h2>
483
+
484
+ <pre>$&gt; corl plugins</pre>
485
+
486
+ <h2 id="label-API+keys">API keys</h2>
487
+
488
+ <p><a href="../CORL.html">CORL</a> encapsulates everything needed to manage
489
+ networks as pluggable version controlled projects, except API keys and
490
+ remote service authorizations.</p>
491
+
492
+ <p><strong>IMPORTANT</strong>: For security reasons cloud service provider API
493
+ keys are not, and should not be, versioned!</p>
494
+
495
+ <p>Valid API keys are required to connect to network servers through the <a
496
+ href="../CORL.html">CORL</a> system. We recommend storing your various
497
+ API keys in an encrypted archive and locking down SSH access, as API keys
498
+ are transferred to the root of new network nodes to allow for service
499
+ oriented operations from that node.</p>
500
+
501
+ <p>In <a href="../CORL.html">CORL</a> core, as of January 2015, there are two
502
+ kinds of API keys used:</p>
503
+
504
+ <p><strong>Cloud service providers</strong>:</p>
505
+
506
+ <pre>Rackspace
507
+ Amazon
508
+ Google (in the works)</pre>
509
+
510
+ <p><strong>Project hosting providers</strong>:</p>
511
+
512
+ <pre>GitHub</pre>
513
+
514
+ <p>Create a <strong>~/.fog</strong> file with cloud service keys**</p>
515
+
516
+ <pre>default:
517
+ rackspace_username: {username}
518
+ rackspace_api_key: {api_key}
519
+ aws_access_key_id: {key_id}
520
+ aws_secret_access_key: {secret_access_key}</pre>
521
+
522
+ <p>Create a <strong>~/.netrc</strong> file**</p>
523
+
524
+ <pre>machine api.github.com
525
+ login {github_username}
526
+ password {api_key}</pre>
527
+
528
+ <p>** An upcoming stable release will merge these two into a single
529
+ authorisation file.</p>
530
+ <hr style="height: 1px">
531
+
532
+ <p><a href="../README.rdoc">Click here to return to the README</a></p>
533
+
534
+ </div>
535
+
536
+
537
+
538
+ <footer id="validator-badges">
539
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
540
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
541
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
542
+ </footer>
543
+