bebox 0.0.1

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