bebox 0.0.1

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 (402) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +78 -0
  3. data/Gemfile +3 -0
  4. data/Gemfile.lock +163 -0
  5. data/LICENSE +21 -0
  6. data/README.md +372 -0
  7. data/Rakefile +8 -0
  8. data/bebox.gemspec +40 -0
  9. data/bin/bebox +5 -0
  10. data/lib/bebox/cli.rb +42 -0
  11. data/lib/bebox/commands/commands_helper.rb +33 -0
  12. data/lib/bebox/commands/environment_commands.rb +46 -0
  13. data/lib/bebox/commands/general_commands.rb +24 -0
  14. data/lib/bebox/commands/node_commands.rb +68 -0
  15. data/lib/bebox/commands/prepare_commands.rb +59 -0
  16. data/lib/bebox/commands/project_commands.rb +44 -0
  17. data/lib/bebox/commands/provision_commands.rb +145 -0
  18. data/lib/bebox/environment.rb +114 -0
  19. data/lib/bebox/logger.rb +51 -0
  20. data/lib/bebox/node.rb +308 -0
  21. data/lib/bebox/profile.rb +102 -0
  22. data/lib/bebox/project.rb +259 -0
  23. data/lib/bebox/provision.rb +257 -0
  24. data/lib/bebox/role.rb +103 -0
  25. data/lib/bebox/version.rb +3 -0
  26. data/lib/bebox/wizards/environment_wizard.rb +45 -0
  27. data/lib/bebox/wizards/node_wizard.rb +163 -0
  28. data/lib/bebox/wizards/profile_wizard.rb +91 -0
  29. data/lib/bebox/wizards/project_wizard.rb +175 -0
  30. data/lib/bebox/wizards/provision_wizard.rb +80 -0
  31. data/lib/bebox/wizards/role_wizard.rb +97 -0
  32. data/lib/bebox.rb +2 -0
  33. data/lib/deb/puppet_3.6.0/augeas-lenses_0.10.0-0ubuntu4_all.deb +0 -0
  34. data/lib/deb/puppet_3.6.0/debconf-utils_1.5.42ubuntu1_all.deb +0 -0
  35. data/lib/deb/puppet_3.6.0/facter_2.0.1-1puppetlabs1_amd64.deb +0 -0
  36. data/lib/deb/puppet_3.6.0/hiera_1.3.2-1puppetlabs1_all.deb +0 -0
  37. data/lib/deb/puppet_3.6.0/libaugeas-ruby1.8_0.3.0-1.1ubuntu4_amd64.deb +0 -0
  38. data/lib/deb/puppet_3.6.0/libaugeas-ruby_0.3.0-1.1ubuntu4_all.deb +0 -0
  39. data/lib/deb/puppet_3.6.0/libaugeas0_0.10.0-0ubuntu4_amd64.deb +0 -0
  40. data/lib/deb/puppet_3.6.0/libjson-ruby_1.6.3-1_all.deb +0 -0
  41. data/lib/deb/puppet_3.6.0/libruby1.8_1.8.7.352-2ubuntu1.4_amd64.deb +0 -0
  42. data/lib/deb/puppet_3.6.0/libruby_4.8_all.deb +0 -0
  43. data/lib/deb/puppet_3.6.0/libshadow-ruby1.8_1.4.1-8build1_amd64.deb +0 -0
  44. data/lib/deb/puppet_3.6.0/puppet-common_3.6.0-1puppetlabs1_all.deb +0 -0
  45. data/lib/deb/puppet_3.6.0/puppet_3.6.0-1puppetlabs1_all.deb +0 -0
  46. data/lib/deb/puppet_3.6.0/ruby-json_1.6.3-1_amd64.deb +0 -0
  47. data/lib/deb/puppet_3.6.0/ruby-rgen_0.6.5-1puppetlabs1_all.deb +0 -0
  48. data/lib/deb/puppet_3.6.0/ruby1.8_1.8.7.352-2ubuntu1.4_amd64.deb +0 -0
  49. data/lib/deb/puppet_3.6.0/ruby_4.8_all.deb +0 -0
  50. data/lib/deb/puppet_3.6.0/virt-what_1.11-1_amd64.deb +0 -0
  51. data/lib/templates/node/Vagrantfile.erb +18 -0
  52. data/lib/templates/node/deploy_vagrant_node.erb +3 -0
  53. data/lib/templates/node/node.yml.erb +3 -0
  54. data/lib/templates/node/prepared_node.yml.erb +4 -0
  55. data/lib/templates/node/provisioned_node.yml.erb +4 -0
  56. data/lib/templates/project/Capfile.erb +2 -0
  57. data/lib/templates/project/Gemfile.erb +5 -0
  58. data/lib/templates/project/config/deploy/environment.erb +40 -0
  59. data/lib/templates/project/config/deploy/vagrant.erb +42 -0
  60. data/lib/templates/project/config/deploy.erb +120 -0
  61. data/lib/templates/project/dot_bebox.erb +4 -0
  62. data/lib/templates/project/gitignore.erb +7 -0
  63. data/lib/templates/project/ubuntu_dependencies +10 -0
  64. data/lib/templates/puppet/default_profiles/base/fundamental/ruby/Puppetfile +0 -0
  65. data/lib/templates/puppet/default_profiles/base/fundamental/ruby/manifests/init.pp +24 -0
  66. data/lib/templates/puppet/default_profiles/base/fundamental/sudo/Puppetfile +0 -0
  67. data/lib/templates/puppet/default_profiles/base/fundamental/sudo/manifests/init.pp +22 -0
  68. data/lib/templates/puppet/default_profiles/base/fundamental/users/Puppetfile +0 -0
  69. data/lib/templates/puppet/default_profiles/base/fundamental/users/manifests/init.pp +18 -0
  70. data/lib/templates/puppet/default_profiles/base/security/fail2ban/Puppetfile +2 -0
  71. data/lib/templates/puppet/default_profiles/base/security/fail2ban/manifests/init.pp +28 -0
  72. data/lib/templates/puppet/default_profiles/base/security/iptables/Puppetfile +2 -0
  73. data/lib/templates/puppet/default_profiles/base/security/iptables/manifests/init.pp +27 -0
  74. data/lib/templates/puppet/default_profiles/base/security/ssh/Puppetfile +2 -0
  75. data/lib/templates/puppet/default_profiles/base/security/ssh/manifests/init.pp +30 -0
  76. data/lib/templates/puppet/default_profiles/base/security/sysctl/Puppetfile +2 -0
  77. data/lib/templates/puppet/default_profiles/base/security/sysctl/manifests/init.pp +20 -0
  78. data/lib/templates/puppet/default_profiles/base/users/ssh/Puppetfile +2 -0
  79. data/lib/templates/puppet/default_profiles/base/users/ssh/manifests/init.pp +47 -0
  80. data/lib/templates/puppet/default_profiles/base/users/users/Puppetfile +0 -0
  81. data/lib/templates/puppet/default_profiles/base/users/users/manifests/init.pp +18 -0
  82. data/lib/templates/puppet/default_roles/fundamental/manifests/init.pp +16 -0
  83. data/lib/templates/puppet/default_roles/security/manifests/init.pp +17 -0
  84. data/lib/templates/puppet/default_roles/users/manifests/init.pp +15 -0
  85. data/lib/templates/puppet/profiles/Puppetfile.erb +24 -0
  86. data/lib/templates/puppet/profiles/manifests/init.pp.erb +17 -0
  87. data/lib/templates/puppet/roles/manifests/init.pp.erb +14 -0
  88. data/lib/templates/puppet/step-0/Puppetfile.erb +5 -0
  89. data/lib/templates/puppet/step-0/hiera/data/common.yaml.erb +26 -0
  90. data/lib/templates/puppet/step-0/hiera/data/environment.yaml.erb +26 -0
  91. data/lib/templates/puppet/step-0/hiera/data/node.yaml.erb +26 -0
  92. data/lib/templates/puppet/step-0/hiera/hiera.yaml.erb +11 -0
  93. data/lib/templates/puppet/step-0/manifests/node.erb +5 -0
  94. data/lib/templates/puppet/step-0/manifests/site.pp.erb +15 -0
  95. data/lib/templates/puppet/step-0/modules/rbenv/AUTHORS +11 -0
  96. data/lib/templates/puppet/step-0/modules/rbenv/CHANGELOG.md +70 -0
  97. data/lib/templates/puppet/step-0/modules/rbenv/Gemfile +8 -0
  98. data/lib/templates/puppet/step-0/modules/rbenv/Gemfile.lock +28 -0
  99. data/lib/templates/puppet/step-0/modules/rbenv/Modulefile +7 -0
  100. data/lib/templates/puppet/step-0/modules/rbenv/README.md +173 -0
  101. data/lib/templates/puppet/step-0/modules/rbenv/Rakefile +22 -0
  102. data/lib/templates/puppet/step-0/modules/rbenv/TODO +10 -0
  103. data/lib/templates/puppet/step-0/modules/rbenv/bin/autospec +16 -0
  104. data/lib/templates/puppet/step-0/modules/rbenv/bin/facter +16 -0
  105. data/lib/templates/puppet/step-0/modules/rbenv/bin/filebucket +16 -0
  106. data/lib/templates/puppet/step-0/modules/rbenv/bin/hiera +16 -0
  107. data/lib/templates/puppet/step-0/modules/rbenv/bin/htmldiff +16 -0
  108. data/lib/templates/puppet/step-0/modules/rbenv/bin/ldiff +16 -0
  109. data/lib/templates/puppet/step-0/modules/rbenv/bin/pi +16 -0
  110. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet +16 -0
  111. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet-lint +16 -0
  112. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppet-module +16 -0
  113. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetca +16 -0
  114. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetd +16 -0
  115. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetdoc +16 -0
  116. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetmasterd +16 -0
  117. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetqd +16 -0
  118. data/lib/templates/puppet/step-0/modules/rbenv/bin/puppetrun +16 -0
  119. data/lib/templates/puppet/step-0/modules/rbenv/bin/rake +16 -0
  120. data/lib/templates/puppet/step-0/modules/rbenv/bin/ralsh +16 -0
  121. data/lib/templates/puppet/step-0/modules/rbenv/bin/rspec +16 -0
  122. data/lib/templates/puppet/step-0/modules/rbenv/bin/rspec-puppet-init +16 -0
  123. data/lib/templates/puppet/step-0/modules/rbenv/lib/puppet/provider/rbenvgem/default.rb +50 -0
  124. data/lib/templates/puppet/step-0/modules/rbenv/lib/puppet/type/rbenvgem.rb +62 -0
  125. data/lib/templates/puppet/step-0/modules/rbenv/manifests/bundle.pp +36 -0
  126. data/lib/templates/puppet/step-0/modules/rbenv/manifests/client.pp +48 -0
  127. data/lib/templates/puppet/step-0/modules/rbenv/manifests/compile.pp +102 -0
  128. data/lib/templates/puppet/step-0/modules/rbenv/manifests/definition.pp +31 -0
  129. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/centos.pp +25 -0
  130. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/suse.pp +28 -0
  131. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies/ubuntu.pp +17 -0
  132. data/lib/templates/puppet/step-0/modules/rbenv/manifests/dependencies.pp +8 -0
  133. data/lib/templates/puppet/step-0/modules/rbenv/manifests/gem.pp +29 -0
  134. data/lib/templates/puppet/step-0/modules/rbenv/manifests/install.pp +55 -0
  135. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin/rbenvvars.pp +16 -0
  136. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin/rubybuild.pp +16 -0
  137. data/lib/templates/puppet/step-0/modules/rbenv/manifests/plugin.pp +40 -0
  138. data/lib/templates/puppet/step-0/modules/rbenv/metadata.json +109 -0
  139. data/lib/templates/puppet/step-0/modules/rbenv/templates/Gemfile.erb +5 -0
  140. data/lib/templates/puppet/step-0/modules/rbenv/templates/dot.rbenvrc.erb +8 -0
  141. data/lib/templates/puppet/step-0/modules/stdlib/CHANGELOG.md +418 -0
  142. data/lib/templates/puppet/step-0/modules/stdlib/CONTRIBUTING.md +65 -0
  143. data/lib/templates/puppet/step-0/modules/stdlib/Gemfile +33 -0
  144. data/lib/templates/puppet/step-0/modules/stdlib/Gemfile.lock +166 -0
  145. data/lib/templates/puppet/step-0/modules/stdlib/LICENSE +19 -0
  146. data/lib/templates/puppet/step-0/modules/stdlib/Modulefile +11 -0
  147. data/lib/templates/puppet/step-0/modules/stdlib/README.markdown +1304 -0
  148. data/lib/templates/puppet/step-0/modules/stdlib/README_DEVELOPER.markdown +35 -0
  149. data/lib/templates/puppet/step-0/modules/stdlib/README_SPECS.markdown +7 -0
  150. data/lib/templates/puppet/step-0/modules/stdlib/RELEASE_PROCESS.markdown +24 -0
  151. data/lib/templates/puppet/step-0/modules/stdlib/Rakefile +18 -0
  152. data/lib/templates/puppet/step-0/modules/stdlib/checksums.json +349 -0
  153. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/facter_dot_d.rb +202 -0
  154. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/pe_version.rb +53 -0
  155. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/puppet_vardir.rb +26 -0
  156. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/root_home.rb +32 -0
  157. data/lib/templates/puppet/step-0/modules/stdlib/lib/facter/util/puppet_settings.rb +21 -0
  158. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/abs.rb +36 -0
  159. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/any2array.rb +33 -0
  160. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/base64.rb +37 -0
  161. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/bool2num.rb +49 -0
  162. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/capitalize.rb +34 -0
  163. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/chomp.rb +35 -0
  164. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/chop.rb +37 -0
  165. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/concat.rb +41 -0
  166. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/count.rb +22 -0
  167. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/deep_merge.rb +44 -0
  168. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/defined_with_params.rb +35 -0
  169. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete.rb +46 -0
  170. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_at.rb +49 -0
  171. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_undef_values.rb +34 -0
  172. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/delete_values.rb +26 -0
  173. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/difference.rb +36 -0
  174. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/dirname.rb +15 -0
  175. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/downcase.rb +33 -0
  176. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/empty.rb +28 -0
  177. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/ensure_packages.rb +35 -0
  178. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/ensure_resource.rb +45 -0
  179. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/flatten.rb +33 -0
  180. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/floor.rb +25 -0
  181. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/fqdn_rotate.rb +46 -0
  182. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/get_module_path.rb +17 -0
  183. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/getparam.rb +35 -0
  184. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/getvar.rb +26 -0
  185. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/grep.rb +33 -0
  186. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_interface_with.rb +52 -0
  187. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_ip_address.rb +25 -0
  188. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_ip_network.rb +25 -0
  189. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/has_key.rb +28 -0
  190. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/hash.rb +41 -0
  191. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/intersection.rb +34 -0
  192. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_array.rb +22 -0
  193. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_bool.rb +22 -0
  194. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_domain_name.rb +50 -0
  195. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_float.rb +30 -0
  196. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_function_available.rb +26 -0
  197. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_hash.rb +22 -0
  198. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_integer.rb +45 -0
  199. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_ip_address.rb +32 -0
  200. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_mac_address.rb +27 -0
  201. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_numeric.rb +75 -0
  202. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/is_string.rb +26 -0
  203. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/join.rb +41 -0
  204. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/join_keys_to_values.rb +47 -0
  205. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/keys.rb +26 -0
  206. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/loadyaml.rb +20 -0
  207. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/lstrip.rb +33 -0
  208. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/max.rb +21 -0
  209. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/member.rb +44 -0
  210. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/merge.rb +34 -0
  211. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/min.rb +21 -0
  212. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/num2bool.rb +43 -0
  213. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/parsejson.rb +24 -0
  214. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/parseyaml.rb +24 -0
  215. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/pick.rb +29 -0
  216. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/pick_default.rb +35 -0
  217. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/prefix.rb +45 -0
  218. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/range.rb +88 -0
  219. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/reject.rb +31 -0
  220. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/reverse.rb +28 -0
  221. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/rstrip.rb +32 -0
  222. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/shuffle.rb +46 -0
  223. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/size.rb +48 -0
  224. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/sort.rb +27 -0
  225. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/squeeze.rb +36 -0
  226. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/str2bool.rb +46 -0
  227. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/str2saltedsha512.rb +32 -0
  228. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/strftime.rb +107 -0
  229. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/strip.rb +39 -0
  230. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/suffix.rb +45 -0
  231. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/swapcase.rb +39 -0
  232. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/time.rb +49 -0
  233. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/to_bytes.rb +28 -0
  234. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/type.rb +50 -0
  235. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/union.rb +34 -0
  236. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/unique.rb +51 -0
  237. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/upcase.rb +41 -0
  238. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/uriescape.rb +35 -0
  239. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_absolute_path.rb +56 -0
  240. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_array.rb +33 -0
  241. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_augeas.rb +81 -0
  242. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_bool.rb +34 -0
  243. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_cmd.rb +48 -0
  244. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_hash.rb +33 -0
  245. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_ipv4_address.rb +48 -0
  246. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_ipv6_address.rb +49 -0
  247. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_re.rb +40 -0
  248. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_slength.rb +71 -0
  249. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/validate_string.rb +33 -0
  250. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/values.rb +39 -0
  251. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/values_at.rb +98 -0
  252. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/parser/functions/zip.rb +65 -0
  253. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/provider/file_line/ruby.rb +83 -0
  254. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/type/anchor.rb +46 -0
  255. data/lib/templates/puppet/step-0/modules/stdlib/lib/puppet/type/file_line.rb +79 -0
  256. data/lib/templates/puppet/step-0/modules/stdlib/manifests/init.pp +20 -0
  257. data/lib/templates/puppet/step-0/modules/stdlib/manifests/stages.pp +43 -0
  258. data/lib/templates/puppet/step-0/modules/stdlib/metadata.json +111 -0
  259. data/lib/templates/puppet/step-0/modules/sudo/.fixtures.yml +5 -0
  260. data/lib/templates/puppet/step-0/modules/sudo/.gemfile +14 -0
  261. data/lib/templates/puppet/step-0/modules/sudo/.gemfile.lock +43 -0
  262. data/lib/templates/puppet/step-0/modules/sudo/.travis.yml +34 -0
  263. data/lib/templates/puppet/step-0/modules/sudo/LICENSE +13 -0
  264. data/lib/templates/puppet/step-0/modules/sudo/Modulefile +9 -0
  265. data/lib/templates/puppet/step-0/modules/sudo/README.md +171 -0
  266. data/lib/templates/puppet/step-0/modules/sudo/Rakefile +1 -0
  267. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.aix +90 -0
  268. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.archlinux +90 -0
  269. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.deb +90 -0
  270. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.freebsd +98 -0
  271. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.omnios +90 -0
  272. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.rhel5 +97 -0
  273. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.rhel6 +115 -0
  274. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.solaris +90 -0
  275. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.suse +81 -0
  276. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.ubuntu +30 -0
  277. data/lib/templates/puppet/step-0/modules/sudo/files/sudoers.wheezy +17 -0
  278. data/lib/templates/puppet/step-0/modules/sudo/lib/augeas/lenses/fixedsudoers.aug +520 -0
  279. data/lib/templates/puppet/step-0/modules/sudo/manifests/allow.pp +76 -0
  280. data/lib/templates/puppet/step-0/modules/sudo/manifests/conf.pp +105 -0
  281. data/lib/templates/puppet/step-0/modules/sudo/manifests/configs.pp +24 -0
  282. data/lib/templates/puppet/step-0/modules/sudo/manifests/init.pp +151 -0
  283. data/lib/templates/puppet/step-0/modules/sudo/manifests/package/aix.pp +46 -0
  284. data/lib/templates/puppet/step-0/modules/sudo/manifests/package/solaris.pp +60 -0
  285. data/lib/templates/puppet/step-0/modules/sudo/manifests/package.pp +61 -0
  286. data/lib/templates/puppet/step-0/modules/sudo/manifests/params.pp +127 -0
  287. data/lib/templates/puppet/step-0/modules/sudo/metadata.json +59 -0
  288. data/lib/templates/puppet/step-0/modules/sudo/templates/users_groups.erb +9 -0
  289. data/lib/templates/puppet/step-0/modules/users/manifests/init.pp +15 -0
  290. data/lib/templates/puppet/step-0/modules/users/manifests/user.pp +50 -0
  291. data/lib/templates/puppet/step-1/Puppetfile.erb +5 -0
  292. data/lib/templates/puppet/step-1/hiera/data/common.yaml.erb +11 -0
  293. data/lib/templates/puppet/step-1/hiera/data/environment.yaml.erb +11 -0
  294. data/lib/templates/puppet/step-1/hiera/data/node.yaml.erb +11 -0
  295. data/lib/templates/puppet/step-1/hiera/hiera.yaml.erb +11 -0
  296. data/lib/templates/puppet/step-1/manifests/node.erb +5 -0
  297. data/lib/templates/puppet/step-1/manifests/site.pp.erb +15 -0
  298. data/lib/templates/puppet/step-1/modules/users/manifests/init.pp +15 -0
  299. data/lib/templates/puppet/step-1/modules/users/manifests/user.pp +49 -0
  300. data/lib/templates/puppet/step-2/Puppetfile.erb +5 -0
  301. data/lib/templates/puppet/step-2/hiera/data/common.yaml.erb +1 -0
  302. data/lib/templates/puppet/step-2/hiera/data/environment.yaml.erb +1 -0
  303. data/lib/templates/puppet/step-2/hiera/data/node.yaml.erb +1 -0
  304. data/lib/templates/puppet/step-2/hiera/hiera.yaml.erb +11 -0
  305. data/lib/templates/puppet/step-2/manifests/node.erb +3 -0
  306. data/lib/templates/puppet/step-2/manifests/site.pp.erb +10 -0
  307. data/lib/templates/puppet/step-3/Puppetfile.erb +5 -0
  308. data/lib/templates/puppet/step-3/hiera/data/common.yaml.erb +99 -0
  309. data/lib/templates/puppet/step-3/hiera/data/environment.yaml.erb +99 -0
  310. data/lib/templates/puppet/step-3/hiera/data/node.yaml.erb +99 -0
  311. data/lib/templates/puppet/step-3/hiera/hiera.yaml.erb +11 -0
  312. data/lib/templates/puppet/step-3/manifests/node.erb +5 -0
  313. data/lib/templates/puppet/step-3/manifests/site.pp.erb +15 -0
  314. data/spec/environment_spec.rb +82 -0
  315. data/spec/factories/environment.rb +20 -0
  316. data/spec/factories/node.rb +22 -0
  317. data/spec/factories/profile.rb +10 -0
  318. data/spec/factories/project.rb +17 -0
  319. data/spec/factories/provision.rb +13 -0
  320. data/spec/factories/role.rb +9 -0
  321. data/spec/fixtures/Capfile.test +2 -0
  322. data/spec/fixtures/Gemfile.test +5 -0
  323. data/spec/fixtures/config/deploy/environment.test +35 -0
  324. data/spec/fixtures/config/deploy/production.test +35 -0
  325. data/spec/fixtures/config/deploy/staging.test +35 -0
  326. data/spec/fixtures/config/deploy/vagrant.test +37 -0
  327. data/spec/fixtures/config/deploy.test +120 -0
  328. data/spec/fixtures/dot_bebox.test.erb +4 -0
  329. data/spec/fixtures/dot_gitignore.test +8 -0
  330. data/spec/fixtures/node/Vagrantfile.test.erb +18 -0
  331. data/spec/fixtures/node/node_0.test.erb +3 -0
  332. data/spec/fixtures/node/prepared_node_0.test.erb +4 -0
  333. data/spec/fixtures/node/provisioned_node_0.test.erb +4 -0
  334. data/spec/fixtures/node/vagrant_deploy.test +38 -0
  335. data/spec/fixtures/puppet/hiera/data/node0.server1.test.yaml.test +4 -0
  336. data/spec/fixtures/puppet/profiles/test/profile_0/Puppetfile.test +24 -0
  337. data/spec/fixtures/puppet/profiles/test/profile_0/Puppetfile_with_modules.test +20 -0
  338. data/spec/fixtures/puppet/profiles/test/profile_0/manifests/init.pp.test +17 -0
  339. data/spec/fixtures/puppet/profiles/test/profile_0/manifests/init_with_content.pp.test +22 -0
  340. data/spec/fixtures/puppet/roles/manifests/init.pp.test +14 -0
  341. data/spec/fixtures/puppet/steps/step-0/hiera/data/common.yaml.test +26 -0
  342. data/spec/fixtures/puppet/steps/step-0/hiera/data/node0.server1.test.yaml.test +0 -0
  343. data/spec/fixtures/puppet/steps/step-0/hiera/data/pname_env.yaml.test +26 -0
  344. data/spec/fixtures/puppet/steps/step-0/hiera/data/production.yaml.test +0 -0
  345. data/spec/fixtures/puppet/steps/step-0/hiera/data/staging.yaml.test +0 -0
  346. data/spec/fixtures/puppet/steps/step-0/hiera/data/vagrant.yaml.test +0 -0
  347. data/spec/fixtures/puppet/steps/step-0/hiera/hiera.yaml.test +11 -0
  348. data/spec/fixtures/puppet/steps/step-0/manifests/site.pp.test +10 -0
  349. data/spec/fixtures/puppet/steps/step-0/manifests/site_with_node.pp.test +15 -0
  350. data/spec/fixtures/puppet/steps/step-1/hiera/data/common.yaml.test +11 -0
  351. data/spec/fixtures/puppet/steps/step-1/hiera/data/node0.server1.test.yaml.test +0 -0
  352. data/spec/fixtures/puppet/steps/step-1/hiera/data/pname_env.yaml.test +11 -0
  353. data/spec/fixtures/puppet/steps/step-1/hiera/data/production.yaml.test +0 -0
  354. data/spec/fixtures/puppet/steps/step-1/hiera/data/staging.yaml.test +0 -0
  355. data/spec/fixtures/puppet/steps/step-1/hiera/data/vagrant.yaml.test +0 -0
  356. data/spec/fixtures/puppet/steps/step-1/hiera/hiera.yaml.test +11 -0
  357. data/spec/fixtures/puppet/steps/step-1/manifests/site.pp.test +10 -0
  358. data/spec/fixtures/puppet/steps/step-1/manifests/site_with_node.pp.test +15 -0
  359. data/spec/fixtures/puppet/steps/step-2/Puppetfile.test +6 -0
  360. data/spec/fixtures/puppet/steps/step-2/hiera/data/common.yaml.test +1 -0
  361. data/spec/fixtures/puppet/steps/step-2/hiera/data/node0.server1.test.yaml.test +1 -0
  362. data/spec/fixtures/puppet/steps/step-2/hiera/data/pname_env.yaml.test +1 -0
  363. data/spec/fixtures/puppet/steps/step-2/hiera/data/production.yaml.test +1 -0
  364. data/spec/fixtures/puppet/steps/step-2/hiera/data/staging.yaml.test +1 -0
  365. data/spec/fixtures/puppet/steps/step-2/hiera/data/vagrant.yaml.test +1 -0
  366. data/spec/fixtures/puppet/steps/step-2/hiera/hiera.yaml.test +11 -0
  367. data/spec/fixtures/puppet/steps/step-2/manifests/site.pp.test +10 -0
  368. data/spec/fixtures/puppet/steps/step-2/manifests/site_with_node.pp.test +13 -0
  369. data/spec/fixtures/puppet/steps/step-2/manifests/site_with_node_role_association.pp.test +16 -0
  370. data/spec/fixtures/puppet/steps/step-2/modules/profiles/manifests/test/profile_0.pp.test +17 -0
  371. data/spec/fixtures/puppet/steps/step-2/modules/roles/manifests/role_0.pp.test +16 -0
  372. data/spec/fixtures/puppet/steps/step-3/hiera/data/common.yaml.test +99 -0
  373. data/spec/fixtures/puppet/steps/step-3/hiera/data/node0.server1.test.yaml.test +1 -0
  374. data/spec/fixtures/puppet/steps/step-3/hiera/data/pname_env.yaml.test +99 -0
  375. data/spec/fixtures/puppet/steps/step-3/hiera/data/production.yaml.test +1 -0
  376. data/spec/fixtures/puppet/steps/step-3/hiera/data/staging.yaml.test +1 -0
  377. data/spec/fixtures/puppet/steps/step-3/hiera/data/vagrant.yaml.test +1 -0
  378. data/spec/fixtures/puppet/steps/step-3/hiera/hiera.yaml.test +11 -0
  379. data/spec/fixtures/puppet/steps/step-3/manifests/site.pp.test +10 -0
  380. data/spec/fixtures/puppet/steps/step-3/manifests/site_with_node.pp.test +15 -0
  381. data/spec/fixtures/puppet/ubuntu_dependencies.test +10 -0
  382. data/spec/node0.server1.test/prepare_phase_spec.rb +53 -0
  383. data/spec/node0.server1.test/provision_step_0_spec.rb +46 -0
  384. data/spec/node0.server1.test/provision_step_1_spec.rb +41 -0
  385. data/spec/node0.server1.test/provision_step_2_spec.rb +79 -0
  386. data/spec/node0.server1.test/provision_step_3_spec.rb +76 -0
  387. data/spec/node_role_spec.rb +20 -0
  388. data/spec/node_spec.rb +71 -0
  389. data/spec/node_wizard_spec.rb +22 -0
  390. data/spec/ordered_phases_spec.rb +55 -0
  391. data/spec/pre_prepare_spec.rb +78 -0
  392. data/spec/pre_provision_steps_spec.rb +40 -0
  393. data/spec/profile_spec.rb +70 -0
  394. data/spec/project_spec.rb +195 -0
  395. data/spec/project_wizard_spec.rb +51 -0
  396. data/spec/puppet_spec_helper.rb +15 -0
  397. data/spec/role_profiles_spec.rb +40 -0
  398. data/spec/role_spec.rb +56 -0
  399. data/spec/spec_helper.rb +37 -0
  400. data/spec/support/config_specs.yaml.example +2 -0
  401. data/spec/vagrant_spec_helper.rb +15 -0
  402. metadata +625 -0
@@ -0,0 +1,83 @@
1
+ Puppet::Type.type(:file_line).provide(:ruby) do
2
+ def exists?
3
+ lines.find do |line|
4
+ line.chomp == resource[:line].chomp
5
+ end
6
+ end
7
+
8
+ def create
9
+ if resource[:match]
10
+ handle_create_with_match
11
+ elsif resource[:after]
12
+ handle_create_with_after
13
+ else
14
+ append_line
15
+ end
16
+ end
17
+
18
+ def destroy
19
+ local_lines = lines
20
+ File.open(resource[:path],'w') do |fh|
21
+ fh.write(local_lines.reject{|l| l.chomp == resource[:line] }.join(''))
22
+ end
23
+ end
24
+
25
+ private
26
+ def lines
27
+ # If this type is ever used with very large files, we should
28
+ # write this in a different way, using a temp
29
+ # file; for now assuming that this type is only used on
30
+ # small-ish config files that can fit into memory without
31
+ # too much trouble.
32
+ @lines ||= File.readlines(resource[:path])
33
+ end
34
+
35
+ def handle_create_with_match()
36
+ regex = resource[:match] ? Regexp.new(resource[:match]) : nil
37
+ match_count = lines.select { |l| regex.match(l) }.size
38
+ if match_count > 1 && resource[:multiple].to_s != 'true'
39
+ raise Puppet::Error, "More than one line in file '#{resource[:path]}' matches pattern '#{resource[:match]}'"
40
+ end
41
+ File.open(resource[:path], 'w') do |fh|
42
+ lines.each do |l|
43
+ fh.puts(regex.match(l) ? resource[:line] : l)
44
+ end
45
+
46
+ if (match_count == 0)
47
+ fh.puts(resource[:line])
48
+ end
49
+ end
50
+ end
51
+
52
+ def handle_create_with_after
53
+ regex = Regexp.new(resource[:after])
54
+
55
+ count = lines.count {|l| l.match(regex)}
56
+
57
+ case count
58
+ when 1 # find the line to put our line after
59
+ File.open(resource[:path], 'w') do |fh|
60
+ lines.each do |l|
61
+ fh.puts(l)
62
+ if regex.match(l) then
63
+ fh.puts(resource[:line])
64
+ end
65
+ end
66
+ end
67
+ when 0 # append the line to the end of the file
68
+ append_line
69
+ else
70
+ raise Puppet::Error, "#{count} lines match pattern '#{resource[:after]}' in file '#{resource[:path]}'. One or no line must match the pattern."
71
+ end
72
+ end
73
+
74
+ ##
75
+ # append the line to the file.
76
+ #
77
+ # @api private
78
+ def append_line
79
+ File.open(resource[:path], 'a') do |fh|
80
+ fh.puts resource[:line]
81
+ end
82
+ end
83
+ end
@@ -0,0 +1,46 @@
1
+ Puppet::Type.newtype(:anchor) do
2
+ desc <<-'ENDOFDESC'
3
+ A simple resource type intended to be used as an anchor in a composite class.
4
+
5
+ In Puppet 2.6, when a class declares another class, the resources in the
6
+ interior class are not contained by the exterior class. This interacts badly
7
+ with the pattern of composing complex modules from smaller classes, as it
8
+ makes it impossible for end users to specify order relationships between the
9
+ exterior class and other modules.
10
+
11
+ The anchor type lets you work around this. By sandwiching any interior
12
+ classes between two no-op resources that _are_ contained by the exterior
13
+ class, you can ensure that all resources in the module are contained.
14
+
15
+ class ntp {
16
+ # These classes will have the correct order relationship with each
17
+ # other. However, without anchors, they won't have any order
18
+ # relationship to Class['ntp'].
19
+ class { 'ntp::package': }
20
+ -> class { 'ntp::config': }
21
+ -> class { 'ntp::service': }
22
+
23
+ # These two resources "anchor" the composed classes within the ntp
24
+ # class.
25
+ anchor { 'ntp::begin': } -> Class['ntp::package']
26
+ Class['ntp::service'] -> anchor { 'ntp::end': }
27
+ }
28
+
29
+ This allows the end user of the ntp module to establish require and before
30
+ relationships with Class['ntp']:
31
+
32
+ class { 'ntp': } -> class { 'mcollective': }
33
+ class { 'mcollective': } -> class { 'ntp': }
34
+
35
+ ENDOFDESC
36
+
37
+ newparam :name do
38
+ desc "The name of the anchor resource."
39
+ end
40
+
41
+ def refresh
42
+ # We don't do anything with them, but we need this to
43
+ # show that we are "refresh aware" and not break the
44
+ # chain of propagation.
45
+ end
46
+ end
@@ -0,0 +1,79 @@
1
+ Puppet::Type.newtype(:file_line) do
2
+
3
+ desc <<-EOT
4
+ Ensures that a given line is contained within a file. The implementation
5
+ matches the full line, including whitespace at the beginning and end. If
6
+ the line is not contained in the given file, Puppet will add the line to
7
+ ensure the desired state. Multiple resources may be declared to manage
8
+ multiple lines in the same file.
9
+
10
+ Example:
11
+
12
+ file_line { 'sudo_rule':
13
+ path => '/etc/sudoers',
14
+ line => '%sudo ALL=(ALL) ALL',
15
+ }
16
+ file_line { 'sudo_rule_nopw':
17
+ path => '/etc/sudoers',
18
+ line => '%sudonopw ALL=(ALL) NOPASSWD: ALL',
19
+ }
20
+
21
+ In this example, Puppet will ensure both of the specified lines are
22
+ contained in the file /etc/sudoers.
23
+
24
+ EOT
25
+
26
+ ensurable do
27
+ defaultvalues
28
+ defaultto :present
29
+ end
30
+
31
+ newparam(:name, :namevar => true) do
32
+ desc 'An arbitrary name used as the identity of the resource.'
33
+ end
34
+
35
+ newparam(:match) do
36
+ desc 'An optional regular expression to run against existing lines in the file;\n' +
37
+ 'if a match is found, we replace that line rather than adding a new line.'
38
+ end
39
+
40
+ newparam(:multiple) do
41
+ desc 'An optional value to determine if match can change multiple lines.'
42
+ newvalues(true, false)
43
+ end
44
+
45
+ newparam(:after) do
46
+ desc 'An optional value used to specify the line after which we will add any new lines. (Existing lines are added in place)'
47
+ end
48
+
49
+ newparam(:line) do
50
+ desc 'The line to be appended to the file located by the path parameter.'
51
+ end
52
+
53
+ newparam(:path) do
54
+ desc 'The file Puppet will ensure contains the line specified by the line parameter.'
55
+ validate do |value|
56
+ unless (Puppet.features.posix? and value =~ /^\//) or (Puppet.features.microsoft_windows? and (value =~ /^.:\// or value =~ /^\/\/[^\/]+\/[^\/]+/))
57
+ raise(Puppet::Error, "File paths must be fully qualified, not '#{value}'")
58
+ end
59
+ end
60
+ end
61
+
62
+ # Autorequire the file resource if it's being managed
63
+ autorequire(:file) do
64
+ self[:path]
65
+ end
66
+
67
+ validate do
68
+ unless self[:line] and self[:path]
69
+ raise(Puppet::Error, "Both line and path are required attributes")
70
+ end
71
+
72
+ if (self[:match])
73
+ unless Regexp.new(self[:match]).match(self[:line])
74
+ raise(Puppet::Error, "When providing a 'match' parameter, the value must be a regex that matches against the value of your 'line' parameter")
75
+ end
76
+ end
77
+
78
+ end
79
+ end
@@ -0,0 +1,20 @@
1
+ # Class: stdlib
2
+ #
3
+ # This module manages stdlib. Most of stdlib's features are automatically
4
+ # loaded by Puppet, but this class should be declared in order to use the
5
+ # standardized run stages.
6
+ #
7
+ # Parameters: none
8
+ #
9
+ # Actions:
10
+ #
11
+ # Declares all other classes in the stdlib module. Currently, this consists
12
+ # of stdlib::stages.
13
+ #
14
+ # Requires: nothing
15
+ #
16
+ class stdlib {
17
+
18
+ class { 'stdlib::stages': }
19
+
20
+ }
@@ -0,0 +1,43 @@
1
+ # Class: stdlib::stages
2
+ #
3
+ # This class manages a standard set of run stages for Puppet. It is managed by
4
+ # the stdlib class, and should not be declared independently.
5
+ #
6
+ # The high level stages are (in order):
7
+ #
8
+ # * setup
9
+ # * main
10
+ # * runtime
11
+ # * setup_infra
12
+ # * deploy_infra
13
+ # * setup_app
14
+ # * deploy_app
15
+ # * deploy
16
+ #
17
+ # Parameters: none
18
+ #
19
+ # Actions:
20
+ #
21
+ # Declares various run-stages for deploying infrastructure,
22
+ # language runtimes, and application layers.
23
+ #
24
+ # Requires: nothing
25
+ #
26
+ # Sample Usage:
27
+ #
28
+ # node default {
29
+ # include stdlib
30
+ # class { java: stage => 'runtime' }
31
+ # }
32
+ #
33
+ class stdlib::stages {
34
+
35
+ stage { 'setup': before => Stage['main'] }
36
+ stage { 'runtime': require => Stage['main'] }
37
+ -> stage { 'setup_infra': }
38
+ -> stage { 'deploy_infra': }
39
+ -> stage { 'setup_app': }
40
+ -> stage { 'deploy_app': }
41
+ -> stage { 'deploy': }
42
+
43
+ }
@@ -0,0 +1,111 @@
1
+ {
2
+ "name": "puppetlabs-stdlib",
3
+ "version": "4.2.2",
4
+ "author": "puppetlabs",
5
+ "summary": "Puppet Module Standard Library",
6
+ "license": "Apache 2.0",
7
+ "source": "git://github.com/puppetlabs/puppetlabs-stdlib.git",
8
+ "project_page": "https://github.com/puppetlabs/puppetlabs-stdlib",
9
+ "issues_url": "https://github.com/puppetlabs/puppetlabs-stdlib/issues",
10
+ "operatingsystem_support": [
11
+ {
12
+ "operatingsystem": "RedHat",
13
+ "operatingsystemrelease": [
14
+ "4",
15
+ "5",
16
+ "6",
17
+ "7"
18
+ ]
19
+ },
20
+ {
21
+ "operatingsystem": "CentOS",
22
+ "operatingsystemrelease": [
23
+ "4",
24
+ "5",
25
+ "6",
26
+ "7"
27
+ ]
28
+ },
29
+ {
30
+ "operatingsystem": "OracleLinux",
31
+ "operatingsystemrelease": [
32
+ "4",
33
+ "5",
34
+ "6",
35
+ "7"
36
+ ]
37
+ },
38
+ {
39
+ "operatingsystem": "Scientific",
40
+ "operatingsystemrelease": [
41
+ "4",
42
+ "5",
43
+ "6",
44
+ "7"
45
+ ]
46
+ },
47
+ {
48
+ "operatingsystem": "SLES",
49
+ "operatingsystemrelease": [
50
+ "11 SP1"
51
+ ]
52
+ },
53
+ {
54
+ "operatingsystem": "Debian",
55
+ "operatingsystemrelease": [
56
+ "6",
57
+ "7"
58
+ ]
59
+ },
60
+ {
61
+ "operatingsystem": "Ubuntu",
62
+ "operatingsystemrelease": [
63
+ "10.04",
64
+ "12.04",
65
+ "14.04"
66
+ ]
67
+ },
68
+ {
69
+ "operatingsystem": "Solaris",
70
+ "operatingsystemrelease": [
71
+ "10",
72
+ "11"
73
+ ]
74
+ },
75
+ {
76
+ "operatingsystem": "Windows",
77
+ "operatingsystemrelease": [
78
+ "Server 2003",
79
+ "Server 2003 R2",
80
+ "Server 2008",
81
+ "Server 2008 R2",
82
+ "Server 2012",
83
+ "Server 2012 R2",
84
+ "7",
85
+ "8"
86
+ ]
87
+ },
88
+ {
89
+ "operatingsystem": "AIX",
90
+ "operatingsystemrelease": [
91
+ "5.3",
92
+ "6.1",
93
+ "7.1"
94
+ ]
95
+ }
96
+ ],
97
+ "requirements": [
98
+ {
99
+ "name": "pe",
100
+ "version_requirement": ">= 3.2.0 < 3.4.0"
101
+ },
102
+ {
103
+ "name": "puppet",
104
+ "version_requirement": ">=2.7.20 <4.0.0"
105
+ }
106
+ ],
107
+ "description": "Standard Library for Puppet Modules",
108
+ "dependencies": [
109
+
110
+ ]
111
+ }
@@ -0,0 +1,5 @@
1
+ fixtures:
2
+ symlinks:
3
+ "sudo": "#{source_dir}"
4
+ repositories:
5
+ stdlib: "http://github.com/puppetlabs/puppetlabs-stdlib.git"
@@ -0,0 +1,14 @@
1
+ source 'https://rubygems.org'
2
+
3
+ group :development, :test do
4
+ gem 'rake', :require => false
5
+ gem 'puppet-lint', :require => false
6
+ gem 'rspec-puppet', :require => false
7
+ gem 'puppetlabs_spec_helper', :require => false
8
+ end
9
+
10
+ if puppetversion = ENV['PUPPET_GEM_VERSION']
11
+ gem 'puppet', puppetversion, :require => false
12
+ else
13
+ gem 'puppet', :require => false
14
+ end
@@ -0,0 +1,43 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ diff-lcs (1.2.5)
5
+ facter (1.7.5)
6
+ hiera (1.3.2)
7
+ json_pure
8
+ json_pure (1.8.1)
9
+ metaclass (0.0.4)
10
+ mocha (1.0.0)
11
+ metaclass (~> 0.0.1)
12
+ puppet (3.2.4)
13
+ facter (~> 1.6)
14
+ hiera (~> 1.0)
15
+ rgen (~> 0.6.5)
16
+ puppet-lint (0.3.2)
17
+ puppetlabs_spec_helper (0.4.1)
18
+ mocha (>= 0.10.5)
19
+ rake
20
+ rspec (>= 2.9.0)
21
+ rspec-puppet (>= 0.1.1)
22
+ rake (10.3.1)
23
+ rgen (0.6.6)
24
+ rspec (2.14.1)
25
+ rspec-core (~> 2.14.0)
26
+ rspec-expectations (~> 2.14.0)
27
+ rspec-mocks (~> 2.14.0)
28
+ rspec-core (2.14.8)
29
+ rspec-expectations (2.14.5)
30
+ diff-lcs (>= 1.1.3, < 2.0)
31
+ rspec-mocks (2.14.6)
32
+ rspec-puppet (1.0.1)
33
+ rspec
34
+
35
+ PLATFORMS
36
+ ruby
37
+
38
+ DEPENDENCIES
39
+ puppet (~> 3.2.0)
40
+ puppet-lint
41
+ puppetlabs_spec_helper
42
+ rake
43
+ rspec-puppet
@@ -0,0 +1,34 @@
1
+ ---
2
+ branches:
3
+ only:
4
+ - master
5
+ language: ruby
6
+ bundler_args: --without development
7
+ script: bundle exec rake spec SPEC_OPTS='--format documentation'
8
+ after_success:
9
+ - git clone -q git://github.com/puppetlabs/ghpublisher.git .forge-releng
10
+ - .forge-releng/publish
11
+ rvm:
12
+ - 1.8.7
13
+ - 1.9.3
14
+ env:
15
+ matrix:
16
+ - PUPPET_GEM_VERSION="~> 2.7.0"
17
+ - PUPPET_GEM_VERSION="~> 3.1.0"
18
+ - PUPPET_GEM_VERSION="~> 3.2.0"
19
+ - PUPPET_GEM_VERSION="~> 3.3.0"
20
+ global:
21
+ - PUBLISHER_LOGIN=saz
22
+ - secure: |-
23
+ Uo1E9umjUYnHYnI9rEanW1/HwQlMmAWiFQ22Dq4BpkMFZ8Fw/Qr3bB9QLGAFpWS0jNXOeMbU
24
+ dCdMDyzum547q8+ouAoOfm6cbJWU1UpnM/Z9ARFvPMreLhT4lhzYFv4lh3r3MiaeT0WF0Cc3
25
+ 7eo8FsveTDufilOUZM2SQmnXi7w=
26
+ matrix:
27
+ include:
28
+ - rvm: 2.0.0
29
+ env: PUPPET_GEM_VERSION="~> 3.2.0"
30
+ - rvm: 2.0.0
31
+ env: PUPPET_GEM_VERSION="~> 3.3.0"
32
+ notifications:
33
+ email: false
34
+ gemfile: .gemfile
@@ -0,0 +1,13 @@
1
+ Copyright 2012 Steffen Zieger
2
+
3
+ Licensed under the Apache License, Version 2.0 (the "License");
4
+ you may not use this file except in compliance with the License.
5
+ You may obtain a copy of the License at
6
+
7
+ http://www.apache.org/licenses/LICENSE-2.0
8
+
9
+ Unless required by applicable law or agreed to in writing, software
10
+ distributed under the License is distributed on an "AS IS" BASIS,
11
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ See the License for the specific language governing permissions and
13
+ limitations under the License.
@@ -0,0 +1,9 @@
1
+ name 'saz-sudo'
2
+ version '3.0.6'
3
+ source 'UNKNOWN'
4
+ author 'saz'
5
+ license 'Apache License, Version 2.0'
6
+ summary 'UNKNOWN'
7
+ description 'Manage sudo configuration via Puppet'
8
+ dependency 'puppetlabs/stdlib', '>= 2.3.0'
9
+ project_page 'https://github.com/saz/puppet-sudo'
@@ -0,0 +1,171 @@
1
+ # puppet-sudo [![Build Status](https://secure.travis-ci.org/saz/puppet-sudo.png)](http://travis-ci.org/saz/puppet-sudo)
2
+
3
+ Manage sudo configuration via Puppet
4
+
5
+ ### Gittip
6
+ [![Support via Gittip](https://rawgithub.com/twolfson/gittip-badge/0.2.0/dist/gittip.png)](https://www.gittip.com/saz/)
7
+
8
+ ## Usage
9
+
10
+ ### WARNING
11
+ **This module will purge your current sudo config**
12
+
13
+ If this is not what you're expecting, set `purge` and/or `config_file_replace` to **false**
14
+
15
+ ### Install sudo with default sudoers
16
+
17
+ #### Purge current sudo config
18
+ ```puppet
19
+ class { 'sudo': }
20
+ ```
21
+
22
+ #### Purge sudoers.d directory, but leave sudoers file as it is
23
+ ```puppet
24
+ class { 'sudo':
25
+ config_file_replace => true,
26
+ }
27
+ ```
28
+
29
+ #### Leave current sudo config as it is
30
+ ```puppet
31
+ class { 'sudo':
32
+ purge => false,
33
+ config_file_replace => false,
34
+ }
35
+ ```
36
+
37
+ ### Adding sudoers configuration
38
+
39
+ #### Using Code
40
+
41
+ ```puppet
42
+ class { 'sudo': }
43
+ sudo::conf { 'web':
44
+ source => 'puppet:///files/etc/sudoers.d/web',
45
+ }
46
+ sudo::conf { 'admins':
47
+ priority => 10,
48
+ content => "%admins ALL=(ALL) NOPASSWD: ALL",
49
+ }
50
+ sudo::conf { 'joe':
51
+ priority => 60,
52
+ source => 'puppet:///files/etc/sudoers.d/users/joe',
53
+ }
54
+ ```
55
+
56
+ #### Using Hiera
57
+
58
+ A hiera hash may be used to assemble the sudoers configuration.
59
+ Hash merging is also enabled, which supports layering the configuration settings.
60
+
61
+ Examples using:
62
+ - YAML backend
63
+ - an environment called __production__
64
+ - a __/etc/puppet/hiera.yaml__ hierarchy configuration:
65
+
66
+ ```yaml
67
+ :hierarchy:
68
+ - "%{environment}"
69
+ - "defaults"
70
+ ```
71
+
72
+ ##### Load module
73
+
74
+ ###### Using Puppet version 3+
75
+
76
+ Load the module via Puppet Code or your ENC.
77
+
78
+ ```puppet
79
+ include sudo
80
+ ```
81
+
82
+ ###### Using Puppet version 2.7+
83
+
84
+ After [Installing Hiera](http://docs.puppetlabs.com/hiera/1/installing.html):
85
+
86
+ - Load the `sudo` and `sudo::configs` modules via Puppet Code or your ENC.
87
+
88
+ ```puppet
89
+ include sudo
90
+ include sudo::configs
91
+ ```
92
+
93
+ ##### Configure Hiera YAML __(defaults.yaml)__
94
+
95
+ These defaults will apply to all systems.
96
+
97
+ ```yaml
98
+ sudo::configs:
99
+ 'web':
100
+ 'source' : 'puppet:///files/etc/sudoers.d/web'
101
+ 'admins':
102
+ 'content' : "%admins ALL=(ALL) NOPASSWD: ALL"
103
+ 'priority' : 10
104
+ 'joe':
105
+ 'priority' : 60
106
+ 'source' : 'puppet:///files/etc/sudoers.d/users/joe'
107
+ ```
108
+
109
+ ##### Configure Hiera YAML __(production.yaml)__
110
+
111
+ This will only apply to the production environment.
112
+ In this example we are:
113
+ - inheriting/preserving the __web__ configuration
114
+ - overriding the __admins__ configuration
115
+ - removing the __joe__ configuration
116
+
117
+ ```yaml
118
+ sudo::configs:
119
+ 'admins':
120
+ 'content' : "%prodadmins ALL=(ALL) NOPASSWD: ALL"
121
+ 'priority' : 10
122
+ 'joe':
123
+ 'ensure' : 'absent'
124
+ 'source' : 'puppet:///files/etc/sudoers.d/users/joe'
125
+ ```
126
+
127
+ If you have Hiera version >= 1.2.0 and enable [Hiera Deeper Merging](http://docs.puppetlabs.com/hiera/1/lookup_types.html#deep-merging-in-hiera--120) you may conditionally override any setting.
128
+
129
+ In this example we are:
130
+ - inheriting/preserving the __web__ configuration
131
+ - overriding the __admins:content__ setting
132
+ - inheriting/preserving the __admins:priority__ setting
133
+ - inheriting/preserving the __joe:source__ and __joe:priority__ settings
134
+ - removing the __joe__ configuration
135
+
136
+ ```yaml
137
+ sudo::configs:
138
+ 'admins':
139
+ 'content' : "%prodadmins ALL=(ALL) NOPASSWD: ALL"
140
+ 'joe':
141
+ 'ensure' : 'absent'
142
+ ```
143
+
144
+ ### sudo::conf / sudo::configs notes
145
+ * You can pass template() through content parameter.
146
+ * One of content or source must be set.
147
+
148
+ ## sudo class parameters
149
+
150
+ | Parameter | Type | Default | Description |
151
+ | :-------------- | :------ |:----------- | :---------- |
152
+ | enable | boolean | true | Set this to remove or purge all sudoers configs |
153
+ | package | string | OS specific | Set package name _(for unsupported platforms)_ |
154
+ | package_ensure | string | present | latest, absent, or a specific package version |
155
+ | package_source | string | OS specific | Set package source _(for unsupported platforms)_ |
156
+ | purge | boolean | true | Purge unmanaged files from config_dir |
157
+ | config_file | string | OS specific | Set config_file _(for unsupported platforms)_ |
158
+ | config_file_replace | boolean | true | Replace config file with module config file |
159
+ | config_dir | string | OS specific | Set config_dir _(for unsupported platforms)_ |
160
+ | source | string | OS specific | Set source _(for unsupported platforms)_ |
161
+
162
+ ## sudo::conf class / sudo::configs hash parameters
163
+
164
+ | Parameter | Type | Default | Description |
165
+ | :-------------- | :----- |:----------- | :---------- |
166
+ | ensure | string | present | present or absent |
167
+ | priority | number | 10 | file name prefix |
168
+ | content | string | undef | content of configuration snippet |
169
+ | source | string | undef | source of configuration snippet |
170
+ | sudo_config_dir | string | OS Specific | configuration snippet directory _(for unsupported platforms)_ |
171
+
@@ -0,0 +1 @@
1
+ require 'puppetlabs_spec_helper/rake_tasks'