corl 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
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