corl 0.5.1 → 0.5.2

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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/Gemfile.lock +8 -6
  4. data/VERSION +1 -1
  5. data/bootstrap/os/ubuntu/00_base.sh +2 -2
  6. data/bootstrap/os/ubuntu/05_ruby.sh +14 -2
  7. data/corl.gemspec +175 -5
  8. data/lib/CORL/builder/identity.rb +1 -1
  9. data/lib/CORL/builder/package.rb +1 -1
  10. data/lib/CORL/configuration/file.rb +7 -13
  11. data/lib/CORL/machine/physical.rb +1 -1
  12. data/lib/CORL/machine/vagrant.rb +12 -4
  13. data/lib/CORL/network/CORL.rb +1 -1
  14. data/lib/CORL/node/AWS.rb +25 -23
  15. data/lib/CORL/node/local.rb +1 -1
  16. data/lib/CORL/node/rackspace.rb +13 -15
  17. data/lib/CORL/node/vagrant.rb +1 -1
  18. data/lib/CORL/provisioner/puppetnode.rb +1 -1
  19. data/lib/core/mixin/action/keypair.rb +6 -6
  20. data/lib/core/mixin/action/registration.rb +39 -11
  21. data/lib/core/mod/fog_aws_server.rb +1 -3
  22. data/lib/core/plugin/builder.rb +1 -1
  23. data/lib/core/plugin/cloud_action.rb +59 -49
  24. data/lib/core/plugin/configuration.rb +4 -3
  25. data/lib/core/plugin/fog_machine.rb +10 -2
  26. data/lib/core/plugin/fog_node.rb +10 -4
  27. data/lib/core/plugin/machine.rb +2 -8
  28. data/lib/core/plugin/network.rb +9 -3
  29. data/lib/core/plugin/node.rb +30 -31
  30. data/lib/core/plugin/provisioner.rb +1 -1
  31. data/lib/core/vagrant/Vagrantfile +4 -1
  32. data/lib/core/vagrant/plugins.rb +6 -4
  33. data/lib/corl.rb +1 -1
  34. data/lib/nucleon/action/cloud/config.rb +167 -100
  35. data/lib/nucleon/action/cloud/create.rb +5 -1
  36. data/lib/nucleon/action/cloud/images.rb +10 -7
  37. data/lib/nucleon/action/cloud/inspect.rb +8 -6
  38. data/lib/nucleon/action/cloud/machines.rb +10 -7
  39. data/lib/nucleon/action/cloud/regions.rb +13 -8
  40. data/lib/nucleon/action/cloud/remote.rb +68 -0
  41. data/lib/nucleon/action/cloud/settings.rb +33 -47
  42. data/lib/nucleon/action/cloud/vagrantfile.rb +34 -17
  43. data/lib/nucleon/action/node/IP.rb +2 -2
  44. data/lib/nucleon/action/node/SSH.rb +3 -3
  45. data/lib/nucleon/action/node/authorize.rb +2 -2
  46. data/lib/nucleon/action/node/bootstrap.rb +17 -30
  47. data/lib/nucleon/action/node/build.rb +4 -4
  48. data/lib/nucleon/action/node/cache.rb +2 -4
  49. data/lib/nucleon/action/node/destroy.rb +25 -26
  50. data/lib/nucleon/action/node/exec.rb +2 -2
  51. data/lib/nucleon/action/node/fact.rb +10 -5
  52. data/lib/nucleon/action/node/group.rb +10 -5
  53. data/lib/nucleon/action/node/identity.rb +6 -8
  54. data/lib/nucleon/action/node/image.rb +3 -3
  55. data/lib/nucleon/action/node/keypair.rb +2 -2
  56. data/lib/nucleon/action/node/lookup.rb +2 -4
  57. data/lib/nucleon/action/node/provision.rb +2 -2
  58. data/lib/nucleon/action/node/reboot.rb +3 -3
  59. data/lib/nucleon/action/node/revoke.rb +2 -2
  60. data/lib/nucleon/action/node/seed.rb +28 -43
  61. data/lib/nucleon/action/node/spawn.rb +19 -14
  62. data/lib/nucleon/action/node/start.rb +3 -3
  63. data/lib/nucleon/action/node/status.rb +8 -8
  64. data/lib/nucleon/action/node/stop.rb +3 -3
  65. data/lib/nucleon/action/plugin/create.rb +10 -13
  66. data/lib/nucleon/action/plugin/list.rb +7 -7
  67. data/lib/nucleon/action/plugin/template/nucleon.action.erb +2 -2
  68. data/lib/nucleon/action/plugins.rb +12 -1
  69. data/lib/nucleon/event/puppet.rb +1 -1
  70. data/lib/nucleon/extension/corl_config.rb +26 -0
  71. data/lib/nucleon/template/environment.rb +1 -1
  72. data/locales/en.yml +483 -90
  73. data/rdoc/site/0.5.1/CORL/Build.html +781 -0
  74. data/rdoc/site/0.5.1/CORL/Builder/Identity.html +596 -0
  75. data/rdoc/site/0.5.1/CORL/Builder/Package.html +600 -0
  76. data/rdoc/site/0.5.1/CORL/Builder.html +384 -0
  77. data/rdoc/site/0.5.1/CORL/Configuration/File.html +1186 -0
  78. data/rdoc/site/0.5.1/CORL/Configuration.html +383 -0
  79. data/rdoc/site/0.5.1/CORL/Errors.html +383 -0
  80. data/rdoc/site/0.5.1/CORL/Facade.html +927 -0
  81. data/rdoc/site/0.5.1/CORL/Machine/AWS.html +777 -0
  82. data/rdoc/site/0.5.1/CORL/Machine/Fog.html +1313 -0
  83. data/rdoc/site/0.5.1/CORL/Machine/Physical.html +1083 -0
  84. data/rdoc/site/0.5.1/CORL/Machine/Rackspace.html +558 -0
  85. data/rdoc/site/0.5.1/CORL/Machine/Vagrant.html +1344 -0
  86. data/rdoc/site/0.5.1/CORL/Machine.html +387 -0
  87. data/rdoc/site/0.5.1/CORL/Mixin/Action/Keypair.html +616 -0
  88. data/rdoc/site/0.5.1/CORL/Mixin/Action/Registration.html +469 -0
  89. data/rdoc/site/0.5.1/CORL/Mixin/Action.html +384 -0
  90. data/rdoc/site/0.5.1/CORL/Mixin/Builder/Global.html +628 -0
  91. data/rdoc/site/0.5.1/CORL/Mixin/Builder/Instance.html +720 -0
  92. data/rdoc/site/0.5.1/CORL/Mixin/Builder.html +383 -0
  93. data/rdoc/site/0.5.1/CORL/Mixin/Lookup.html +1315 -0
  94. data/rdoc/site/0.5.1/CORL/Mixin/Machine/SSH.html +699 -0
  95. data/rdoc/site/0.5.1/CORL/Mixin/Machine.html +383 -0
  96. data/rdoc/site/0.5.1/CORL/Mixin/Macro/NetworkSettings.html +508 -0
  97. data/rdoc/site/0.5.1/CORL/Mixin/Macro.html +383 -0
  98. data/rdoc/site/0.5.1/CORL/Mixin.html +388 -0
  99. data/rdoc/site/0.5.1/CORL/Network/CORL.html +435 -0
  100. data/rdoc/site/0.5.1/CORL/Network.html +383 -0
  101. data/rdoc/site/0.5.1/CORL/Node/AWS.html +760 -0
  102. data/rdoc/site/0.5.1/CORL/Node/Fog.html +1268 -0
  103. data/rdoc/site/0.5.1/CORL/Node/Local.html +468 -0
  104. data/rdoc/site/0.5.1/CORL/Node/Rackspace.html +753 -0
  105. data/rdoc/site/0.5.1/CORL/Node/Vagrant.html +1497 -0
  106. data/rdoc/site/0.5.1/CORL/Node.html +387 -0
  107. data/rdoc/site/0.5.1/CORL/Plugin/Builder.html +524 -0
  108. data/rdoc/site/0.5.1/CORL/Plugin/Configuration.html +1294 -0
  109. data/rdoc/site/0.5.1/CORL/Plugin/Machine.html +1323 -0
  110. data/rdoc/site/0.5.1/CORL/Plugin/Network.html +1766 -0
  111. data/rdoc/site/0.5.1/CORL/Plugin/Node.html +4263 -0
  112. data/rdoc/site/0.5.1/CORL/Plugin/Provisioner.html +1139 -0
  113. data/rdoc/site/0.5.1/CORL/Plugin.html +673 -0
  114. data/rdoc/site/0.5.1/CORL/Provisioner/Puppetnode.html +1201 -0
  115. data/rdoc/site/0.5.1/CORL/Provisioner.html +383 -0
  116. data/rdoc/site/0.5.1/CORL/Util/Puppet/Resource.html +1082 -0
  117. data/rdoc/site/0.5.1/CORL/Util/Puppet/ResourceGroup.html +964 -0
  118. data/rdoc/site/0.5.1/CORL/Util/Puppet.html +1131 -0
  119. data/rdoc/site/0.5.1/CORL/Util.html +385 -0
  120. data/rdoc/site/0.5.1/CORL/Vagrant/Config.html +967 -0
  121. data/rdoc/site/0.5.1/CORL/Vagrant.html +462 -0
  122. data/rdoc/site/0.5.1/CORL.html +496 -0
  123. data/rdoc/site/0.5.1/Fog/Compute/AWS/Server.html +467 -0
  124. data/rdoc/site/0.5.1/Fog/Compute/AWS.html +389 -0
  125. data/rdoc/site/0.5.1/Fog/Compute/RackspaceV2/Server.html +452 -0
  126. data/rdoc/site/0.5.1/Fog/Compute/RackspaceV2.html +389 -0
  127. data/rdoc/site/0.5.1/Fog/Compute.html +384 -0
  128. data/rdoc/site/0.5.1/Fog.html +384 -0
  129. data/rdoc/site/0.5.1/Hiera/Backend.html +466 -0
  130. data/rdoc/site/0.5.1/Hiera/Corl_logger.html +493 -0
  131. data/rdoc/site/0.5.1/Hiera.html +390 -0
  132. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Config.html +978 -0
  133. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Create.html +562 -0
  134. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Images.html +596 -0
  135. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Inspect.html +567 -0
  136. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Machines.html +591 -0
  137. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Regions.html +591 -0
  138. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Settings.html +878 -0
  139. data/rdoc/site/0.5.1/Nucleon/Action/Cloud/Vagrantfile.html +539 -0
  140. data/rdoc/site/0.5.1/Nucleon/Action/Cloud.html +390 -0
  141. data/rdoc/site/0.5.1/Nucleon/Action/Node/Authorize.html +567 -0
  142. data/rdoc/site/0.5.1/Nucleon/Action/Node/Bootstrap.html +628 -0
  143. data/rdoc/site/0.5.1/Nucleon/Action/Node/Build.html +550 -0
  144. data/rdoc/site/0.5.1/Nucleon/Action/Node/Cache.html +773 -0
  145. data/rdoc/site/0.5.1/Nucleon/Action/Node/Destroy.html +597 -0
  146. data/rdoc/site/0.5.1/Nucleon/Action/Node/Exec.html +554 -0
  147. data/rdoc/site/0.5.1/Nucleon/Action/Node/Fact.html +733 -0
  148. data/rdoc/site/0.5.1/Nucleon/Action/Node/Facts.html +505 -0
  149. data/rdoc/site/0.5.1/Nucleon/Action/Node/Group.html +729 -0
  150. data/rdoc/site/0.5.1/Nucleon/Action/Node/Groups.html +505 -0
  151. data/rdoc/site/0.5.1/Nucleon/Action/Node/IP.html +477 -0
  152. data/rdoc/site/0.5.1/Nucleon/Action/Node/Identity.html +614 -0
  153. data/rdoc/site/0.5.1/Nucleon/Action/Node/Image.html +597 -0
  154. data/rdoc/site/0.5.1/Nucleon/Action/Node/Keypair.html +596 -0
  155. data/rdoc/site/0.5.1/Nucleon/Action/Node/Lookup.html +579 -0
  156. data/rdoc/site/0.5.1/Nucleon/Action/Node/Provision.html +577 -0
  157. data/rdoc/site/0.5.1/Nucleon/Action/Node/Reboot.html +597 -0
  158. data/rdoc/site/0.5.1/Nucleon/Action/Node/Revoke.html +565 -0
  159. data/rdoc/site/0.5.1/Nucleon/Action/Node/SSH.html +607 -0
  160. data/rdoc/site/0.5.1/Nucleon/Action/Node/Seed.html +626 -0
  161. data/rdoc/site/0.5.1/Nucleon/Action/Node/Spawn.html +699 -0
  162. data/rdoc/site/0.5.1/Nucleon/Action/Node/Start.html +597 -0
  163. data/rdoc/site/0.5.1/Nucleon/Action/Node/Status.html +615 -0
  164. data/rdoc/site/0.5.1/Nucleon/Action/Node/Stop.html +597 -0
  165. data/rdoc/site/0.5.1/Nucleon/Action/Node.html +406 -0
  166. data/rdoc/site/0.5.1/Nucleon/Action/Plugin/Create.html +736 -0
  167. data/rdoc/site/0.5.1/Nucleon/Action/Plugin/List.html +570 -0
  168. data/rdoc/site/0.5.1/Nucleon/Action/Plugin.html +384 -0
  169. data/rdoc/site/0.5.1/Nucleon/Action/Plugins.html +435 -0
  170. data/rdoc/site/0.5.1/Nucleon/Action.html +417 -0
  171. data/rdoc/site/0.5.1/Nucleon/Config.html +401 -0
  172. data/rdoc/site/0.5.1/Nucleon/Event/Puppet.html +717 -0
  173. data/rdoc/site/0.5.1/Nucleon/Event.html +383 -0
  174. data/rdoc/site/0.5.1/Nucleon/Plugin/Base.html +389 -0
  175. data/rdoc/site/0.5.1/Nucleon/Plugin/CloudAction.html +894 -0
  176. data/rdoc/site/0.5.1/Nucleon/Plugin.html +384 -0
  177. data/rdoc/site/0.5.1/Nucleon/Template/Environment.html +572 -0
  178. data/rdoc/site/0.5.1/Nucleon/Template.html +383 -0
  179. data/rdoc/site/0.5.1/Nucleon.html +421 -0
  180. data/rdoc/site/0.5.1/Object.html +402 -0
  181. data/rdoc/site/0.5.1/Puppet/DataBinding/Corl.html +389 -0
  182. data/rdoc/site/0.5.1/Puppet/DataBinding.html +382 -0
  183. data/rdoc/site/0.5.1/Puppet/Indirector/Corl.html +501 -0
  184. data/rdoc/site/0.5.1/Puppet/Indirector.html +382 -0
  185. data/rdoc/site/0.5.1/Puppet/Parser/Functions.html +524 -0
  186. data/rdoc/site/0.5.1/Puppet/Parser.html +382 -0
  187. data/rdoc/site/0.5.1/Puppet.html +382 -0
  188. data/rdoc/site/0.5.1/README_rdoc.html +384 -0
  189. data/rdoc/site/0.5.1/Vagrant/Config/Loader.html +443 -0
  190. data/rdoc/site/0.5.1/Vagrant/Config.html +383 -0
  191. data/rdoc/site/0.5.1/Vagrant/Vagrantfile.html +436 -0
  192. data/rdoc/site/0.5.1/Vagrant.html +390 -0
  193. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Action/DeleteCache.html +446 -0
  194. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Action/InitKeys.html +452 -0
  195. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Action/LinkNetwork.html +450 -0
  196. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Action.html +385 -0
  197. data/rdoc/site/0.5.1/VagrantPlugins/CORL/BaseAction.html +535 -0
  198. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Command/Launcher.html +577 -0
  199. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Command.html +383 -0
  200. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Config/CORL.html +776 -0
  201. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Config.html +383 -0
  202. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Plugin.html +389 -0
  203. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Provisioner/CORL.html +580 -0
  204. data/rdoc/site/0.5.1/VagrantPlugins/CORL/Provisioner.html +383 -0
  205. data/rdoc/site/0.5.1/VagrantPlugins/CORL.html +390 -0
  206. data/rdoc/site/0.5.1/VagrantPlugins.html +390 -0
  207. data/rdoc/site/0.5.1/created.rid +114 -0
  208. data/rdoc/site/0.5.1/images/add.png +0 -0
  209. data/rdoc/site/0.5.1/images/brick.png +0 -0
  210. data/rdoc/site/0.5.1/images/brick_link.png +0 -0
  211. data/rdoc/site/0.5.1/images/bug.png +0 -0
  212. data/rdoc/site/0.5.1/images/bullet_black.png +0 -0
  213. data/rdoc/site/0.5.1/images/bullet_toggle_minus.png +0 -0
  214. data/rdoc/site/0.5.1/images/bullet_toggle_plus.png +0 -0
  215. data/rdoc/site/0.5.1/images/date.png +0 -0
  216. data/rdoc/site/0.5.1/images/delete.png +0 -0
  217. data/rdoc/site/0.5.1/images/find.png +0 -0
  218. data/rdoc/site/0.5.1/images/loadingAnimation.gif +0 -0
  219. data/rdoc/site/0.5.1/images/macFFBgHack.png +0 -0
  220. data/rdoc/site/0.5.1/images/package.png +0 -0
  221. data/rdoc/site/0.5.1/images/page_green.png +0 -0
  222. data/rdoc/site/0.5.1/images/page_white_text.png +0 -0
  223. data/rdoc/site/0.5.1/images/page_white_width.png +0 -0
  224. data/rdoc/site/0.5.1/images/plugin.png +0 -0
  225. data/rdoc/site/0.5.1/images/ruby.png +0 -0
  226. data/rdoc/site/0.5.1/images/tag_blue.png +0 -0
  227. data/rdoc/site/0.5.1/images/tag_green.png +0 -0
  228. data/rdoc/site/0.5.1/images/transparent.png +0 -0
  229. data/rdoc/site/0.5.1/images/wrench.png +0 -0
  230. data/rdoc/site/0.5.1/images/wrench_orange.png +0 -0
  231. data/rdoc/site/0.5.1/images/zoom.png +0 -0
  232. data/rdoc/site/0.5.1/index.html +383 -0
  233. data/rdoc/site/0.5.1/js/darkfish.js +155 -0
  234. data/rdoc/site/0.5.1/js/jquery.js +18 -0
  235. data/rdoc/site/0.5.1/js/navigation.js +142 -0
  236. data/rdoc/site/0.5.1/js/search.js +94 -0
  237. data/rdoc/site/0.5.1/js/search_index.js +1 -0
  238. data/rdoc/site/0.5.1/js/searcher.js +228 -0
  239. data/rdoc/site/0.5.1/rdoc.css +543 -0
  240. data/rdoc/site/0.5.1/table_of_contents.html +2005 -0
  241. metadata +174 -4
data/locales/en.yml CHANGED
@@ -58,41 +58,495 @@ en:
58
58
  This CORL action has no description available
59
59
  help: |-
60
60
  There is no extended help information available for this CORL action.
61
+ plugin:
62
+ list:
63
+ description: |-
64
+ List all of the currently loaded plugins and providers
65
+ help: |-
66
+ List all of the currently loaded plugins and providers.
67
+
68
+ Nucleon plugin providers are defined via a path search from specified base directories of the format below:
69
+
70
+ >> {base_dir}/lib/{namespace}/{plugin_type}/{provider}.rb
71
+
72
+ By default, base paths are searched from:
73
+
74
+ * Ruby Gems on the system
75
+ * Managed projects (including networks and packages)
76
+ * Component projects (such as Puppet modules)
77
+ * Current directory and parents
78
+
79
+ More base paths from across the system can be added by implementing the "register_plugins" hook within an
80
+ extension plugin provider in your project.
81
+ info:
82
+ namespace: |-
83
+ Namespace: %{namespace}
84
+ plugin_type: |-
85
+ Plugin type: %{type}
86
+ providers: |-
87
+ Providers:
88
+ create:
89
+ description: |-
90
+ Create a new plugin within the current project
91
+ help: |-
92
+ Create a new plugin provider of a specified type.
93
+
94
+ So far the only type with an implemented template is the Action plugin type.
95
+ More coming soon.
96
+
97
+ If you want to save an interpolated template to a project provider, use the --save option.
98
+ options:
99
+ type: |-
100
+ Type of plugin to create
101
+ name: |-
102
+ Name of the plugin provider to create
103
+ save: |-
104
+ Save the interpolated and rendered plugin provider to the current project (default %{default_value})
105
+ interpolate: |-
106
+ Interpolate all properties from given arguments before rendering (default %{default_value})
107
+ template_path: |-
108
+ Path on the system to search for plugin provider templates of the format {namespace}.{plugin_type}.erb (default %{default_value})
109
+ error:
110
+ parse_failed: |-
111
+ Template file %{file} for %{plugin_namespace}.%{plugin_type} could not be parsed
112
+ no_template: |-
113
+ No template file exists for %{file}
114
+ provider_exists: |-
115
+ Plugin already exists at %{file}
116
+ save_failed: |-
117
+ Plugin can not be saved to %{file}
118
+ info:
119
+ plugin_file: |-
120
+ Plugin: %{file}
121
+ success:
122
+ saved: |-
123
+ Plugin successfully saved to %{file}
61
124
  cloud:
62
125
  create:
63
126
  description: |-
64
127
  Create a new network project
128
+ help: |-
129
+ Create a new network project with an optional existing project reference.
130
+
131
+ Network projects are started from template projects that contain default nodes, configurations, etc...
132
+
133
+ Project references take the form:
134
+
135
+ {project provider}:::{provider id}[{project revision}]
136
+
137
+ github:::coralnexus/network-template[master] (the default network template)
138
+
139
+ If the --path option is not specified the create action attempts to create the project in the current
140
+ directory. If files or directories exist, the project creation will fail.
141
+ info:
142
+ start: |-
143
+ Creating network from %{project_reference} at %{path}
144
+ remote:
145
+ description: |-
146
+ Update the network project remote
147
+ help: |-
148
+ Update network project remotes to reference an external project.
149
+
150
+ If trying to specify a private project, be sure you can reach the project provider from your
151
+ computer first. You might need to include your regular private key or create a deploy key
152
+ for project access.
153
+ info:
154
+ start: |-
155
+ Updating network project remote to %{project_reference}
65
156
  inspect:
66
157
  description: |-
67
158
  Inspect the network configuration
68
- machines:
159
+ help: |-
160
+ Inspect any defined network configuration. It is not intended to access or
161
+ set the node configurations defined in the config directory, which you can use the `node lookup` and
162
+ `cloud config` actions.
163
+
164
+ Nested configurations can be accessed by specifying the nested keys in sequence in the arguments.
165
+
166
+ corl inspect # Returns all loaded configurations for network
167
+ corl inspect nodes # Returns all node definitions
168
+ corl inspect nodes rackspace # Returns all Rackspace node definitions
169
+ corl inspect settings web_server facts # Returns all facts defined for settings group `web_server`
170
+ corl inspect provisioners # Returns all provisioner settings defined for network
171
+
172
+ The configurations include:
173
+
174
+ * General network settings
175
+ * Node definitions
176
+ * Provisioner settings
177
+ * Configurations of the above types loaded from included packages
178
+
179
+ The results can be viewed in multiple formats dependending on the Nucleon translator plugins currently
180
+ loaded into the project. To see which ones are loaded, run: `corl plugins`
181
+ options:
182
+ format: |-
183
+ Translator provider to use to render configuration output (default %{default_value})
184
+ settings:
69
185
  description: |-
70
- Return a list of machine types supported by a provider
186
+ Display and manage network settings
187
+ help: |-
188
+ Display and manage network settings and save to the network.
189
+
190
+ Settings groups control what configurations and facts are used for which nodes. Nodes in the network are assigned
191
+ to groups, through the `corl node group` action, which contain custom facts and other specialized settings that
192
+ help control the build, management, and provisioning of the nodes.
193
+
194
+ This action makes it easier to automate management of the CORL network settings structure without having
195
+ to worry about editing configuration files in different places.
196
+
197
+ Currently supported operations:
198
+
199
+ * If called with the --groups option, it will return all of the currently defined settings groups in the network
200
+ * If called with no arguments, it will return settings for all groups
201
+ * If a settings group is given but no name, it returns all settings for group
202
+ * If group and name are given but no value, it returns group settings for property name
203
+ * If group, name, and --delete option are given, the group setting is deleted
204
+ * If group, name, and value are given, the group setting with the name is set to the given value
205
+
206
+ Nested settings (hashes) can be accessed with typical hash syntax. Currently internal array access is not
207
+ supported, but you can append to existing scalar values and arrays with the --apend option.
208
+
209
+ Name example:
210
+
211
+ corl cloud settings vagrant facts[corl_identity] adrian_test
212
+
213
+ The results can be viewed in multiple formats dependending on the Nucleon translator plugins currently
214
+ loaded into the project. To see which ones are loaded, run: `corl plugins`
215
+ options:
216
+ array: |-
217
+ Force setting of configuration to array, event if single argument given (default %{default_value})
218
+ delete: |-
219
+ Delete the group setting from the network (default %{default_value})
220
+ append: |-
221
+ Append the value to existing group setting scalar value or array (default %{default_value})
222
+ groups: |-
223
+ Return just the settings group names instead of the values (default %{default_value})
224
+ input_format: |-
225
+ Translator provider to parse value with before save (default %{default_value})
226
+ format: |-
227
+ Translator provider to use to render settings output (default %{default_value})
228
+ info:
229
+ groups: |-
230
+ Currently defined groups:
231
+ error:
232
+ update: |-
233
+ Group %{group} setting `%{name}` update could not be saved
234
+ delete: |-
235
+ Group %{group} setting `%{name}` deletion could not be saved
236
+ success:
237
+ update: |-
238
+ Group %{group} setting `%{name}` updated (%{remote_text})
239
+ delete: |-
240
+ Group %{group} setting `%{name}` deleted (%{remote_text})
241
+ config:
242
+ description: |-
243
+ Display and manage node configurations
244
+ help: |-
245
+ Display and manage node configurations and save to the network.
246
+
247
+ This system currently uses Hiera as the configuration search implementation so all
248
+ node configurations are stored in JSON or YAML in directories under the network
249
+ `config` directory. The system searches through these directories based on Hiera
250
+ search rules.
251
+
252
+ Example configuration search path under config directory:
253
+
254
+ identities/%{::corl_identity}/nodes/%{::corl_provider}/%{::fqdn}
255
+ identities/%{::corl_identity}/stages/%{::corl_stage}
256
+ identities/%{::corl_identity}/environments/%{::corl_environment}
257
+ identities/%{::corl_identity}/types/%{::corl_type}
258
+ identities/%{::corl_identity}/identity
259
+ nodes/%{::corl_provider}/%{::fqdn}/%{::corl_stage}
260
+ nodes/%{::corl_provider}/%{::fqdn}
261
+ environments/%{::corl_environment}/%{::corl_stage}
262
+ environments/%{::corl_environment}
263
+ stages/%{::corl_stage}
264
+ types/%{::corl_type}
265
+
266
+ This search path can be changed to whatever you would like. Simply add or alter an
267
+ existing `hiera_config` extension provider hook in your network project and set the
268
+ config[:hierarchy] property to an array containing an ordered search path like the above.
269
+ As you can see above, node facts can be interpolated into the paths to allow for dynamic
270
+ configuration searches. You can check the current Hiera configurations at any time by
271
+ running; `corl node lookup` (without arguments).
272
+
273
+ This action makes it easy for humans and machines to automate configurations to this system
274
+ It is capable of creating directories and files to house the configurations and takes care
275
+ of version control like other cloud actions, such as `corl cloud settings`.
276
+
277
+ Configurations are referenced with a specific format:
278
+
279
+ {directory}/{subdirectory}/{file base(no ext)}@{property}[{hash key}]
280
+
281
+ Examples:
282
+
283
+ common@php::apache::memory_limit
284
+ identity/test@users::user[admin][shell]
285
+ servers/development/dev.loc@facts[corl_environment]
286
+
287
+ Currently supported operations:
288
+
289
+ * If name is given as file without property, it will return all configurations in the file
290
+ * If name contains file and property with --delete option, configuration is deleted from network
291
+ * If name contains file and property but no values given, it will return the current configuration
292
+ * If name contains file and property and values given, configuration name is set to values collected
293
+
294
+ Currently internal array access is not supported but you can append to a scalar value or array with
295
+ the --append option.
296
+
297
+ The given values can be parsed and the results can be viewed in multiple formats dependending on the
298
+ Nucleon translator plugins currently loaded into the project. To see which ones are loaded,
299
+ run: `corl plugins`
300
+ options:
301
+ array: |-
302
+ Force setting of configuration to array, event if single argument given (default %{default_value})
303
+ delete: |-
304
+ Delete the configuration from the network (default %{default_value})
305
+ append: |-
306
+ Append the value to existing configuration scalar value or array (default %{default_value})
307
+ input_format: |-
308
+ Translator provider to parse value with before save (default %{default_value})
309
+ save_format: |-
310
+ Translator provider to render configurations to file (default %{default_value})
311
+ format: |-
312
+ Translator provider to use to render configuration output (default %{default_value})
313
+ info:
314
+ subconfigurations: |-
315
+ Sub configurations available:
316
+ no_config_file: |-
317
+ Configuration file `%{config_file} does not exist
318
+ error:
319
+ update: |-
320
+ Node configuration `%{name}` update could not be saved
321
+ delete: |-
322
+ Node configuration `%{name}` deletion could not be saved
323
+ file_read: |-
324
+ Failed to read configuration file: %{config_file}
325
+ file_save: |-
326
+ Configuration file `%{config_file}` could not be saved
327
+ file_remove: |-
328
+ Configuration file `%{config_file}` could not be removed
329
+ translator_load: |-
330
+ Translator provider for %{translator} could not be loaded
331
+ success:
332
+ update: |-
333
+ Node configuration `%{name}` updated (%{remote_text})
334
+ delete: |-
335
+ Node configuration `%{name}` deleted (%{remote_text})
336
+ vagrantfile:
337
+ description: |-
338
+ Generate a scaffolding Vagrantfile
339
+ help: |-
340
+ Generate a Vagrantfile capable of providing CORLized virtual machines and either render to console or
341
+ save to new Vagrantfile in network.
342
+
343
+ CORL integrates with Vagrant to provide easy access to local virtual machines or even remote development
344
+ machines with the right Vagrant plugins. Since Vagrant searches for it's settings by default in Ruby
345
+ based Vagrantfiles we provide an integration layer that configures Vagrant when it is loaded.
346
+
347
+ This way we can have our machine translated configurations with the power of Vagrant development in a
348
+ system that can easily integrate with our staging, qa, and production environments.
349
+ options:
350
+ save: |-
351
+ Save the rendered Vagrantfile to the network (default %{default_value})
352
+ error:
353
+ update: |-
354
+ %{file} update could not be saved to network
355
+ file_save: |-
356
+ File %{file} could not be saved to disk
357
+ success:
358
+ update: |-
359
+ %{file} update saved to network (%{remote_text})
71
360
  regions:
72
361
  description: |-
73
362
  Retrieve known regions for a specified provider
363
+ help: |-
364
+ List supported regions for a specific node provider, e.g., aws, rackspace, etc...
365
+
366
+ The region IDs returned from this action should be used whenever a region option or argument is presented.
367
+
368
+ In the future this will have more information associated with each region ID.
369
+ machines:
370
+ description: |-
371
+ Return a list of machine types supported by a provider
372
+ help: |-
373
+ List available machine types from a specific node provider, e.g, aws, rackspace, etc...
374
+
375
+ In the future we intend to find a way to reliably display the pricing of each machine to make it easy to
376
+ compare across providers when planning a cloud architecture.
377
+
378
+ To see all currently loaded node providers, run: `corl plugins`
379
+ success:
380
+ results: |-
381
+ Total of %{machines} machine types found
74
382
  images:
75
383
  description: |-
76
384
  Search the available images at a specified provider
77
- vagrantfile:
78
- description: |-
79
- Generate a scaffolding Vagrantfile
385
+ help: |-
386
+ List or search through available images from a specific node provider, e.g, aws, rackspace, etc...
387
+
388
+ Images are usually isolated to a particular region of the cloud provider so you will want to know which
389
+ region you are targeting. Run `corl cloud regions {provider}` to find the available regions for your
390
+ provider. Loaded node providers can be found by running `corl plugins`.
391
+
392
+ You may specify search terms to query the images (useful for services such as AWS) to reduce the options.
393
+ This makes it fairly easy to find the images you are looking for right from the command line. The search
394
+ can be tightened with two options; --match_case, or --require_all.
395
+ options:
396
+ region: |-
397
+ Node provider region id to search for machine images (default %{default_value})
398
+ match_case: |-
399
+ Match case on any search terms given when searching for images (default %{default_value})
400
+ require_all: |-
401
+ Require all search terms to be present in image descriptions to be included (default %{default_value})
402
+ success:
403
+ results: |-
404
+ Total of %{images} images found
80
405
  node:
81
406
  spawn:
82
407
  description: |-
83
408
  Spawn new nodes in the network
409
+ help: |-
410
+ Create new network nodes from a given provider based on a specified provider image and machine type.
411
+ Nodes are created in node provider (aws, rackspace, etc...) regions.
412
+
413
+ In the case that you are creating a Vagrant node hostnames should be specified with the hostname[ipaddress] syntax
414
+ to map the Vagrant machine to a localized IP of your choice. It is also possible to use a single range to specify
415
+ a pattern for multiple nodes to create, such as test[1-10].example.com. Only one range is currently supported.
416
+
417
+ * To check which providers are implemented, run `corl plugins` and reference the CORL node plugin type providers
418
+ * To check the regions available for a specific provider, run `corl cloud regions {provider}`
419
+ * To check what machine types are available for a provider, run `corl cloud machines {provider}`
420
+ * To search images available in a provider region, run `corl cloud images {provider} --region={region} [ {search terms}... ]`
421
+
422
+ To provision node directly after creation specify the --provision flag.
423
+
424
+ The most common options you will use include: (see options section for more info on each)
425
+ --region
426
+ --machine_type
427
+ --groups
428
+ --user
429
+
430
+ The spawn process consists of:
431
+
432
+ > Run locally:
433
+ * Configurations are added to network for new node
434
+ * Node machine is created on provider
435
+ * CORL is bootstrapped onto the new node and basic connectivity is established
436
+ > Run remotely:
437
+ * Network project is seeded onto the bootstrapped node
438
+ > Optional with --provision flag:
439
+ * Packages and components are built on the node according to settings groups and defined node profiles
440
+ * Node is provisioned with node configurations according to settings groups and defined node profiles
441
+ options:
442
+ parallel: |-
443
+ Enable or disable parallelism of node creation (default %{default_value})
444
+ bootstrap: |-
445
+ Run the bootstrap process after creating the node (default %{default_value})
446
+ provision: |-
447
+ Provision the node after the bootstrap process completes (default %{default_value})
448
+ region: |-
449
+ Machine provider region in which to create the machines (defaults to first defined in provider)
450
+ machine_type: |-
451
+ Provider ID of machine type to create (defaults to first defined in provider - usually smallest)
452
+ provider: |-
453
+ Create machines with this node provider
454
+ image: |-
455
+ Provider ID of operating system image on which to initialize the new machines
456
+ hostnames: |-
457
+ Hostnames of machines to create on provider infrastructure
458
+ groups: |-
459
+ Initial settings groups this node belongs to (default %{default_value})
460
+ user: |-
461
+ Initial machine user for node used for communication (default %{default_value})
462
+ info:
463
+ start: |-
464
+ Spawning new machines on %{node_provider}
84
465
  bootstrap:
85
466
  description: |-
86
467
  Bootstrap existing nodes
468
+ help: |-
469
+ Boostrap the CORL system onto existing network nodes. This is useful for CORL related development,
470
+ as we can easily install updates from the source branch.
471
+
472
+ It is possible to specify your own bootstrap scripts with the --bootstrap_path, --bootstrap_init and
473
+ --bootstrap_glob options. It is also possible to specify authentication files that authorize the node
474
+ for network services. By default .fog and .netrc files are transmitted to nodes to allow the node
475
+ to initialize security for the system and connect to the necessary cloud services to run CORL actions.
476
+ options:
477
+ bootstrap_path: |-
478
+ Bootstrap script top level local directory (default %{default_value})
479
+ bootstrap_init: |-
480
+ Gateway bootstrap script within the bootstrap project directory (default %{default_value})
481
+ bootstrap_glob: |-
482
+ Path glob to use in searching bootstrap scripts for remote execution (default %{default_value})
483
+ auth_files: |-
484
+ Any additional authorization or state files to pass to the node during bootstrap (relative to local home)
485
+ home_env_var: |-
486
+ Home directory environment variable on remote server (default %{default_value})
487
+ home: |-
488
+ Specified home directory on remote server (default %{default_value})
489
+ bootstrap_nodes: |-
490
+ Node references to bootstrap
491
+ warn:
492
+ bootstrap_nodes_empty: |-
493
+ Nodes must be specified in order to run the bootstrap action
494
+ bootstrap_nodes: |-
495
+ Provider %{node_provider} node %{name} is not a valid node to bootstrap (%{value} given)
496
+ error:
497
+ failure: |-
498
+ Machine %{hostname} (%{id}) bootstrap failed with status %{status}
499
+ info:
500
+ start: |-
501
+ Starting bootstrap of machine %{hostname} (%{id})
502
+ success:
503
+ complete: |-
504
+ Machine %{hostname} (%{id}) successfully bootstrapped
87
505
  seed:
88
506
  description: |-
89
507
  Seed nodes with a specified network project
508
+ help: |-
509
+ Seed nodes with a specified network project.
510
+
511
+ Projects are specified as project references of the form {provider}:::{reference/url}.
512
+ options:
513
+ project_branch: |-
514
+ Project branch to seed project (default %{default_value})
515
+ project_reference: |-
516
+ Reference to seed project (default %{default_value})
517
+ info:
518
+ start: |-
519
+ Now seeding CORL node
520
+ deploy_keys: |-
521
+ Generating network SSH deploy keys
522
+ backup: |-
523
+ Backing up current network configuration
524
+ seeding: |-
525
+ Seeding network configuration from %{project_reference}
526
+ finalizing: |-
527
+ Finalizing network path and removing temporary backup
528
+ reinitializing: |-
529
+ Reinitializing network
530
+ updating: |-
531
+ Updating node network configurations
90
532
  build:
91
533
  description: |-
92
534
  Build packages on nodes
93
535
  provision:
94
536
  description: |-
95
537
  Provision nodes
538
+ status:
539
+ description: |-
540
+ Check and save the current status of nodes in the network
541
+ help: |-
542
+ Check and save the current status of nodes in the network.
543
+
544
+ When given the --basic flag only the connection to the underlying cloud provider is checked for that
545
+ node. This will tell you if the node is still in existence. Without the --basic flag this action
546
+ will also check the SSH connection and report if it was successfull or if it failed.
547
+ options:
548
+ basic: |-
549
+ Check only basic server connection from cloud service provider (default %{default_value})
96
550
  image:
97
551
  description: |-
98
552
  Create images of existing nodes
@@ -111,6 +565,30 @@ en:
111
565
  destroy:
112
566
  description: |-
113
567
  Destroy network nodes
568
+ help: |-
569
+ Destroy network nodes and remove all associated network references.
570
+
571
+ Nodes are referenced either by a settings group name or the given node hostname of a provider. Providers
572
+ may be omitted in the case of groups, attached to the hostname via {provider}:::{hostname}, or the
573
+ --node_provider can be set to find named node.
574
+
575
+ To help reduce addicental destruction of network nodes, users are prompted before completing operation unless
576
+ --force option is given. Be careful when using the --force flag.
577
+
578
+ If you just want to stop this node, consider using the `corl node stop` action instead of destroy. It will
579
+ leave your network settings in place (node definition), save an image of your node (if possible), and then
580
+ shut down the machine. That way the node can easily be restarted with `corl node start` when needed.
581
+ options:
582
+ force: |-
583
+ Force the destruction of the specified nodes without a prompt (default %{default_value})
584
+ ask:
585
+ prompt: |-
586
+ Are you sure you want to destroy the following nodes? This action can not be undone!
587
+ yes_query: |-
588
+ Type %{yes} or press enter to cancel:
589
+ info:
590
+ start: |-
591
+ Destroying %{provider} machine %{name}
114
592
  ip:
115
593
  description: |-
116
594
  Return the public IP address for nodes
@@ -133,46 +611,6 @@ en:
133
611
  description: |-
134
612
  Generate a new SSH keypair
135
613
  actions:
136
- images:
137
- options:
138
- match_case: |-
139
- Match case on any search terms given when searching for images (default %{default_value})
140
- require_all: |-
141
- Require all search terms to be present in image descriptions to be included (default %{default_value})
142
- provider: |-
143
- Node provider to retrieve images for
144
- search: |-
145
- Optional array of search terms to filter image results
146
- start: |-
147
- Retrieving a list of defined images from %{node_provider}
148
- results: |-
149
- Total of %{images} images found
150
- machines:
151
- options:
152
- node_provider: |-
153
- Node provider to retrieve machine types
154
- start: |-
155
- Retrieving a list of available machines from %{node_provider}
156
- results: |-
157
- Total of %{machines} machine types found
158
- spawn:
159
- options:
160
- parallel: |-
161
- Enable or disable parallelism of node creation (default %{default_value})
162
- seed: |-
163
- CORL project reference with cloud project to seed new machines with (default %{default_value})
164
- region: |-
165
- Machine provider region in which to create the machines (defaults to first defined in provider)
166
- machine_type: |-
167
- Provider ID of machine type to create (defaults to first defined in provider - usually smallest)
168
- provider: |-
169
- Create machines with this node provider
170
- image: |-
171
- Provider ID of operating system image on which to initialize the new machines
172
- hostnames: |-
173
- Hostnames of machines to create on provider infrastructure
174
- start: |-
175
- Spawning new machines on %{node_provider}
176
614
  identity:
177
615
  start: |-
178
616
  Setting identity on %{provider} machine %{name}
@@ -189,37 +627,6 @@ en:
189
627
  Machine %{hostname} (%{id}) successfully ended terminal session
190
628
  failure: |-
191
629
  Machine %{hostname} (%{id}) terminal session failed with status %{status}
192
- bootstrap:
193
- options:
194
- bootstrap_path: |-
195
- Bootstrap script top level local directory (default %{default_value})
196
- bootstrap_init: |-
197
- Gateway bootstrap script within the bootstrap project directory (default %{default_value})
198
- bootstrap_glob: |-
199
- Path glob to use in searching bootstrap scripts for remote execution (default %{default_value})
200
- auth_files: |-
201
- Any additional authorization or state files to pass to the node during bootstrap (relative to local home)
202
- home_env_var: |-
203
- Home directory environment variable on remote server (default %{default_value})
204
- home: |-
205
- Specified home directory on remote server (default %{default_value})
206
- bootstrap_nodes: |-
207
- Node references to bootstrap
208
- errors:
209
- bootstrap_path: |-
210
- Bootstrap path must be an existing directory
211
- auth_files: |-
212
- Authorization file %{value} does not exist on the local system
213
- bootstrap_nodes_empty: |-
214
- Nodes must be specified in order to run the bootstrap action
215
- bootstrap_nodes: |-
216
- Provider %{node_provider} node %{name} is not a valid node to bootstrap (%{value} given)
217
- start: |-
218
- Starting bootstrap of machine %{hostname} (%{id})
219
- success: |-
220
- Machine %{hostname} (%{id}) successfully bootstrapped
221
- failure: |-
222
- Machine %{hostname} (%{id}) bootstrap failed with status %{status}
223
630
  exec:
224
631
  options:
225
632
  command: |-
@@ -231,17 +638,6 @@ en:
231
638
  errors:
232
639
  context: |-
233
640
  Lookup evaluation context %{value} is not valid >> Possible contexts: %{choices}
234
- seed:
235
- options:
236
- project_branch: |-
237
- Project branch to seed project (default %{default_value})
238
- project_reference: |-
239
- Reference to seed project (default %{default_value})
240
- errors:
241
- project_reference: |-
242
- Project reference %{value} failed to parse or provider %{provider} isn't loaded >> Possible providers: %{choices}
243
- start: |-
244
- Now seeding CORL node
245
641
  image:
246
642
  start: |-
247
643
  Starting image of %{provider} machine %{name}
@@ -254,9 +650,6 @@ en:
254
650
  reboot:
255
651
  start: |-
256
652
  Rebooting %{provider} machine %{name}
257
- destroy:
258
- start: |-
259
- Destroying %{provider} machine %{name}
260
653
  build:
261
654
  start: |-
262
655
  Building provisioner project