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,217 @@
1
+ <!DOCTYPE html><html lang='en' class=''><head><title>Test Github markup</title><link href="https://assets-cdn.github.com/assets/github-07ee5f9b28252daadba7750d43951602b35cdaa9dc19b5aff2eececebd6b6627.css" media="all" rel="stylesheet" type="text/css" /><link href="https://assets-cdn.github.com/assets/github2-13950c15da59f6c02f99ce11c07b93342a063458ce7ab72e243013dd9729008e.css" media="all" rel="stylesheet" type="text/css" /></head><body style='padding: 30px'><div class='site' itemscope itemtype='http://schema.org/WebPage'><article class='markdown-body entry-content' itemprop='mainContentOfPage'>
2
+ <h1 id="label-CORL+-+Coral+Orchestration+and+Research+Library">CORL - Coral Orchestration and Research Library</h1>
3
+
4
+ <p><a href="https://github.com/coralnexus/nucleon">Nucleon</a> plugin library
5
+ and framework for building, synchronizing, and executing distributed
6
+ actions and agents across heterogeneous networks of machines.</p>
7
+
8
+ <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>
9
+
10
+ <p>This project began with the need to automate the management of our own
11
+ infrastructure architecture starting in mid 2012. In early 2013 the
12
+ initial work towards this goal was merged into two projects; Nucleon
13
+ (general plugin management framework and execution environment), and CORL
14
+ (this project).</p>
15
+
16
+ <p>We believe in the future, as machines become more connected and integrated,
17
+ there will be profound need for frameworks that allow for the creation of
18
+ semi or fully autonomous cyber entities that evolve across the cloud. These
19
+ software entities will have varying capabilities and objectives but all
20
+ will be capable of managing their machines, communicating with others in
21
+ their network, and reproducing when neccessary. We want to help further a
22
+ new era of smart infrastructure by providing an open source framework for
23
+ developing such entities and their requisite environments.</p>
24
+
25
+ <p>Treating machines as autonomous software entities that can self manage
26
+ allows for the agile and adaptive evolution of the computer systems we rely
27
+ on to make our lives easier. Management dashboards and user controls are
28
+ great but the future of the web belongs to the machines acting in our
29
+ interests. CORL is being developed to help bring the machines to life (in
30
+ a manner of speaking).</p>
31
+
32
+ <h2 id="label-State+of+the+project">State of the project</h2>
33
+
34
+ <p>CORL, and its parent <a
35
+ href="https://github.com/coralnexus/nucleon">Nucleon</a> are still in alpha
36
+ development and not yet ready for production unless you know how to
37
+ develop with it and fix bugs. We use it for our infrastructure
38
+ architecture internally, but there are kinks we still have to work out to
39
+ meet the full set of intended architectual objectives. We are currently
40
+ finalizing the acquarium, next comes the fish.</p>
41
+
42
+ <p>If you are a tinkerer and are passionate about machine managed systems or
43
+ organically inspired software systems we invite your contributions in
44
+ whatever form you wish to provide. Contact Adrian Webb (
45
+ adrian.webb@coralnexus.com ) with questions or feedback or just post an
46
+ issue.</p>
47
+
48
+ <p><strong>Note that all development and testing has been on Ubuntu
49
+ (12.04/14.04) so far.</strong></p>
50
+
51
+ <p>To review tasks needing completion before first production release, <a
52
+ href="info/TODO.rdoc">see the TODO</a>.</p>
53
+
54
+ <p>To get an overview of what plugins are currently provided, go <a
55
+ href="info/PLUGINS.rdoc">here</a>.</p>
56
+
57
+ <h2 id="label-CORL+architecture">CORL architecture</h2>
58
+
59
+ <p>CORL is a <strong>programming framework</strong> and <strong>execution
60
+ environment</strong> intended for:</p>
61
+
62
+ <pre>1. Management of reusable high availability platforms across cloud providers
63
+
64
+ 2. Distributed programming or script execution across dynamically managed nodes
65
+
66
+ 3. Decentralized networking and provisioning of heterogeneous machines
67
+
68
+ 4. Cloud based evolutionary multi-agent simulations and processing</pre>
69
+
70
+ <h3 id="label-Key+design+requirements%3A">Key design requirements:</h3>
71
+ <ul><li>
72
+ <p>Lightweight programming framework for executing actions and managing agents
73
+ across dynamically evolving networks of nodes</p>
74
+ </li><li>
75
+ <p>Pluggable data driven integration capabilities</p>
76
+ </li><li>
77
+ <p>Portable actions and packages that can be searched and aggregated from
78
+ across the system</p>
79
+ </li><li>
80
+ <p>Network projects that connect nodes, architecture, and resources as
81
+ decentralized revision controlled projects, not centralized hosted
82
+ databases</p>
83
+ </li><li>
84
+ <p>CLI action interface</p>
85
+ </li><li>
86
+ <p>REST action host (not implemented yet)</p>
87
+ </li></ul>
88
+
89
+ <h3 id="label-Things+CORL+is+NOT+meant+to+be%3A">Things CORL is NOT meant to be:</h3>
90
+ <ul><li>
91
+ <p>A dashboard or UI driven application (we are focused solely on machines)</p>
92
+ </li><li>
93
+ <p>A continuously running agent or hosted application (we need to minimize
94
+ system resource usage)</p>
95
+ </li><li>
96
+ <p>A bloated platform that requires a multi-system platform or dedicated
97
+ servers to operate</p>
98
+ </li><li>
99
+ <p>A virtualization system (although it uses them)</p>
100
+ </li></ul>
101
+
102
+ <p>Care to <a href="https://prezi.com/enwlxtfhdqoq/corl">walk through the CORL
103
+ architecture on Prezi</a>?</p>
104
+
105
+ <h2 id="label-CORL+focus+areas">CORL focus areas</h2>
106
+
107
+ <p>Our ultimate goal is the scalable application of our resources, time, and
108
+ workflows, while allowing for evolutionary and adaptive growth of our IT
109
+ infrastructure.</p>
110
+
111
+ <p><a href="README.rdoc"><img
112
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/purpose.png"
113
+ align="right"></a></p>
114
+
115
+ <p><strong>Packaging</strong> serves as a foundation for an automated
116
+ architecture by providing reusable configuration managed images that can be
117
+ easily launched across local and remote virtual machine and container
118
+ providers. Our goal with packaging is to turn machines into programmable
119
+ data objects which can be easily automated through diverse software
120
+ systems.</p>
121
+
122
+ <p><strong>Automation</strong> builds on packaged data and systems, and allows
123
+ for reusable development of flexible integrated workflows. Automation
124
+ capabilities depend on the degree to which machine inspection and
125
+ management has been abstracted from the various configuration files,
126
+ system services, and operating system nuances. CORL tries to bridge
127
+ technologies that abstract the relevant data from the machine and various
128
+ applications so we can more easily monitor and automate. Two modes of
129
+ automation are possible; actions (fire and forget), and agents (managed
130
+ services that utilize actions).</p>
131
+
132
+ <p><strong>Scaling</strong> of infrastructure resources and workflows becomes
133
+ easier when we have a flexible automation system that can work with
134
+ machines as data, and deeply integrate with the software, services, and
135
+ workflows we already employ.</p>
136
+
137
+ <h3 id="label-Packaging+system">Packaging system</h3>
138
+
139
+ <p>To build adaptive infrastructure we treat each machine as a programmable
140
+ data model that is connected to other machines in a shared network (data
141
+ pool).</p>
142
+
143
+ <p>This also helps create an entirely hands off administration process that is
144
+ easy to query and modify through remote action execution.</p>
145
+
146
+ <p><img
147
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/packaging-overview.png"
148
+ /></p>
149
+
150
+ <p>To read more on the CORL packaging system, <a
151
+ href="info/PACKAGING.rdoc">see the packaging overview</a>.</p>
152
+
153
+ <h3 id="label-Automation+system">Automation system</h3>
154
+
155
+ <p>The ability to create, reuse, and extend integrated development and
156
+ administration workflows across standardized plugin interfaces gives us the
157
+ ability to focus on the task at hand while allowing for the creation of
158
+ different interface implementations when needed.</p>
159
+
160
+ <p><img
161
+ src="https://raw.githubusercontent.com/coralnexus/corl/0.5/images/automation-overview.png"
162
+ /></p>
163
+
164
+ <h2 id="label-CORL+installation+and+setup">CORL installation and setup</h2>
165
+
166
+ <p>CORL is designed so it requires few dependencies outside of the Ruby
167
+ language and some useful Gems.</p>
168
+
169
+ <p>See the <a href="info/INSTALLATION.rdoc">installation instructions</a> for
170
+ information on requirements and getting CORL installed on your machines.</p>
171
+
172
+ <h2 id="label-Ruby+Versions">Ruby Versions</h2>
173
+
174
+ <p>This library has been developed with and should support MRI Ruby versions:</p>
175
+ <ul><li>
176
+ <p><strong>Ruby 1.9.2</strong></p>
177
+ </li><li>
178
+ <p><strong>Ruby 1.9.3</strong></p>
179
+ </li><li>
180
+ <p><strong>Ruby 2.0.0</strong></p>
181
+ </li><li>
182
+ <p><strong>Ruby 2.1.0</strong></p>
183
+ </li></ul>
184
+
185
+ <p>If something doesn&#39;t work on one of these Ruby versions, it&#39;s a
186
+ bug.</p>
187
+
188
+ <p>This library may inadvertently work (or seem to work) on other Ruby
189
+ implementations, but support will only be provided for the versions listed
190
+ above. <strong>Rubinius</strong> is being tested and will ultimately be
191
+ supported.</p>
192
+
193
+ <p>This library currently does not work on <strong>JRuby</strong> due to CORL
194
+ gem dependencies, such as Rugged, that provide C Ruby extensions (which
195
+ JRuby does not support).</p>
196
+
197
+ <p>We have developed this so far pretty much entirely on Ubuntu but the core
198
+ framework should work with other Linux distributions. There are known
199
+ issues with Windows when executed through Vagrant and Cygwin.</p>
200
+
201
+ <h2 id="label-Versioning">Versioning</h2>
202
+
203
+ <p>This framework should be considered unstable and likely to break as
204
+ remaining bugs and unit testing are completed going forward. When we reach
205
+ version 1.0.0 full <a href="http://semver.org">semantic versioning</a>
206
+ will be ahered to. Until then the minor version specifies a major
207
+ architectural change, and patch versions could fix bugs and revise features
208
+ that could break backward compatibility.</p>
209
+
210
+ <h2 id="label-License">License</h2>
211
+
212
+ <p>Licensed under Apache License 2.0. See LICENSE.txt for further details.</p>
213
+
214
+ <p>Copyright © 2013-2015 Adrian Webb ( <a
215
+ href="mailto:adrian.webb@coraltech.net">adrian.webb@coraltech.net</a> )
216
+ <strong>Coral Technology Group LLC</strong></p>
217
+ </article></div></body></html>
@@ -0,0 +1,36 @@
1
+ <!DOCTYPE html><html lang='en' class=''><head><title>Test Github markup</title><link href="https://assets-cdn.github.com/assets/github-07ee5f9b28252daadba7750d43951602b35cdaa9dc19b5aff2eececebd6b6627.css" media="all" rel="stylesheet" type="text/css" /><link href="https://assets-cdn.github.com/assets/github2-13950c15da59f6c02f99ce11c07b93342a063458ce7ab72e243013dd9729008e.css" media="all" rel="stylesheet" type="text/css" /></head><body style='padding: 30px'><div class='site' itemscope itemtype='http://schema.org/WebPage'><article class='markdown-body entry-content' itemprop='mainContentOfPage'>
2
+ <h1 id="label-CORL+tasks+to+be+completed+before+1.0.0+release">CORL tasks to be completed before 1.0.0 release</h1>
3
+
4
+ <p>This framework should be considered unstable and likely to break as
5
+ remaining bugs and unit testing are completed going forward. When we reach
6
+ version 1.0.0 full <a href="http://semver.org">semantic versioning</a>
7
+ will be ahered to. Until then the minor version specifies a major
8
+ architectural change, and patch versions could fix bugs and revise features
9
+ that could break backward compatibility.</p>
10
+
11
+ <h2 id="label-TODO%3A">TODO:</h2>
12
+ <ul><li>
13
+ <p>Default action arguments and options for networks</p>
14
+ </li><li>
15
+ <p>Error handling improvements</p>
16
+ </li><li>
17
+ <p>Full code documentation</p>
18
+ </li><li>
19
+ <p>Full coverage unit tests</p>
20
+ </li><li>
21
+ <p>Test on Windows, Mac, Linux (Debian, Ubuntu, CentOS, Redhat, Suse)</p>
22
+ </li><li>
23
+ <p>Performance improvements</p>
24
+ </li><li>
25
+ <p>Google node and machine providers</p>
26
+ </li><li>
27
+ <p>Localization improvements</p>
28
+ </li><li>
29
+ <p>Logging consolidation (eliminate redundant log information)</p>
30
+ </li><li>
31
+ <p>Fix bugs :-(</p>
32
+ </li></ul>
33
+ <hr style="height: 1px">
34
+
35
+ <p><a href="README.rdoc">Click here to return to the README</a></p>
36
+ </article></div></body></html>
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: corl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adrian Webb
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-12-29 00:00:00.000000000 Z
11
+ date: 2015-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nucleon
@@ -156,6 +156,20 @@ dependencies:
156
156
  - - "~>"
157
157
  - !ruby/object:Gem::Version
158
158
  version: '3.12'
159
+ - !ruby/object:Gem::Dependency
160
+ name: github-markup
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '1.3'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '1.3'
159
173
  description: Framework that provides a simple foundation for growing organically in
160
174
  the cloud
161
175
  email: adrian.webb@coralnexus.com
@@ -173,7 +187,6 @@ files:
173
187
  - LICENSE.txt
174
188
  - README.rdoc
175
189
  - Rakefile
176
- - TODO.rdoc
177
190
  - VERSION
178
191
  - bin/corl
179
192
  - bootstrap/bootstrap.sh
@@ -193,16 +206,23 @@ files:
193
206
  - bootstrap/os/ubuntu/09_nucleon.sh
194
207
  - bootstrap/os/ubuntu/10_corl.sh
195
208
  - corl.gemspec
209
+ - info/AUTOMATION.rdoc
210
+ - info/INSTALLATION.rdoc
211
+ - info/PACKAGING.rdoc
212
+ - info/PLUGINS.rdoc
213
+ - info/TODO.rdoc
196
214
  - lib/CORL/builder/identity.rb
197
215
  - lib/CORL/builder/package.rb
198
216
  - lib/CORL/builder/project.rb
199
217
  - lib/CORL/configuration/file.rb
200
218
  - lib/CORL/machine/AWS.rb
219
+ - lib/CORL/machine/docker.rb
201
220
  - lib/CORL/machine/physical.rb
202
221
  - lib/CORL/machine/rackspace.rb
203
222
  - lib/CORL/machine/vagrant.rb
204
223
  - lib/CORL/network/CORL.rb
205
224
  - lib/CORL/node/AWS.rb
225
+ - lib/CORL/node/docker.rb
206
226
  - lib/CORL/node/local.rb
207
227
  - lib/CORL/node/rackspace.rb
208
228
  - lib/CORL/node/vagrant.rb
@@ -219,6 +239,7 @@ files:
219
239
  - lib/core/mod/fog_aws_server.rb
220
240
  - lib/core/mod/fog_rackspace_server.rb
221
241
  - lib/core/mod/hiera_backend.rb
242
+ - lib/core/mod/vagrant.rb
222
243
  - lib/core/plugin/agent.rb
223
244
  - lib/core/plugin/builder.rb
224
245
  - lib/core/plugin/cloud_action.rb
@@ -234,6 +255,7 @@ files:
234
255
  - lib/core/util/puppet/resource_group.rb
235
256
  - lib/core/vagrant/action.rb
236
257
  - lib/core/vagrant/actions/delete_cache.rb
258
+ - lib/core/vagrant/actions/include_overrides.rb
237
259
  - lib/core/vagrant/actions/init_keys.rb
238
260
  - lib/core/vagrant/actions/link_network.rb
239
261
  - lib/core/vagrant/commands/launcher.rb
@@ -286,6 +308,7 @@ files:
286
308
  - lib/nucleon/action/plugins.rb
287
309
  - lib/nucleon/event/puppet.rb
288
310
  - lib/nucleon/extension/corl_config.rb
311
+ - lib/nucleon/extension/vagrant.rb
289
312
  - lib/nucleon/template/environment.rb
290
313
  - lib/puppet/indirector/corl.rb
291
314
  - lib/puppet/indirector/data_binding/corl.rb
@@ -310,7 +333,22 @@ files:
310
333
  - lib/puppet/parser/functions/render.rb
311
334
  - lib/puppet/parser/functions/value.rb
312
335
  - locales/en.yml
336
+ - rdoc/site/0.5.7/README.rdoc
337
+ - rdoc/site/0.5.7/info/AUTOMATION.rdoc
338
+ - rdoc/site/0.5.7/info/INSTALLATION.rdoc
339
+ - rdoc/site/0.5.7/info/PACKAGES.rdoc
340
+ - rdoc/site/0.5.7/info/PACKAGING.rdoc
341
+ - rdoc/site/0.5.7/info/PLUGINS.rdoc
342
+ - rdoc/site/0.5.7/info/TODO.rdoc
313
343
  - spec/spec_helper.rb
344
+ - tmp/README.rdoc
345
+ - tmp/info/AUTOMATION.rdoc
346
+ - tmp/info/INSTALLATION.rdoc
347
+ - tmp/info/PACKAGES.rdoc
348
+ - tmp/info/PACKAGING.rdoc
349
+ - tmp/info/PLUGINS.rdoc
350
+ - tmp/info/README.rdoc
351
+ - tmp/info/TODO.rdoc
314
352
  homepage: http://github.com/coralnexus/corl
315
353
  licenses:
316
354
  - Apache License, Version 2.0
data/TODO.rdoc DELETED
@@ -1,12 +0,0 @@
1
- == CORL tasks to complete before 1.0 release
2
-
3
- * Default action arguments and options for networks
4
- * Error handling improvements
5
- * Full code documentation
6
- * Full coverage unit tests
7
- * Test on Windows, Mac, Linux (Debian, Ubuntu, CentOS, Redhat, Suse)
8
- * Performance improvements
9
- * Google node and machine providers
10
- * Localization improvements
11
- * Logging consolidation (eliminate redundant log entries)
12
- * Fix bugs :-(