wombat-cli 0.6.1 → 0.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +23 -23
  3. data/.travis.yml +22 -27
  4. data/CHANGELOG.md +438 -423
  5. data/DESIGN.md +49 -49
  6. data/Gemfile +5 -5
  7. data/README.md +146 -146
  8. data/Rakefile +26 -26
  9. data/bin/wombat +24 -24
  10. data/generator_files/Vagrantfile +120 -120
  11. data/generator_files/cookbooks/automate/.gitignore +16 -16
  12. data/generator_files/cookbooks/automate/.kitchen.ec2.yml +34 -34
  13. data/generator_files/cookbooks/automate/.kitchen.yml +24 -24
  14. data/generator_files/cookbooks/automate/Berksfile +6 -6
  15. data/generator_files/cookbooks/automate/README.md +4 -4
  16. data/generator_files/cookbooks/automate/chefignore +102 -102
  17. data/generator_files/cookbooks/automate/libraries/_helper.rb +52 -52
  18. data/generator_files/cookbooks/automate/libraries/delivery_api.rb +204 -204
  19. data/generator_files/cookbooks/automate/libraries/delivery_project.rb +31 -31
  20. data/generator_files/cookbooks/automate/libraries/dsl.rb +4 -4
  21. data/generator_files/cookbooks/automate/metadata.rb +11 -11
  22. data/generator_files/cookbooks/automate/recipes/default.rb +118 -124
  23. data/generator_files/cookbooks/automate/recipes/update-users.rb +48 -48
  24. data/generator_files/cookbooks/automate/templates/delivery.erb +6 -6
  25. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  26. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  27. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -25
  28. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  29. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  30. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  31. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  32. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  33. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/metadata.rb +3 -3
  34. data/generator_files/cookbooks/automate/test/fixtures/cookbooks/mock_data/recipes/default.rb +27 -27
  35. data/generator_files/cookbooks/automate/test/integration/default/automate_spec.rb +56 -56
  36. data/generator_files/cookbooks/build_node/.gitignore +16 -16
  37. data/generator_files/cookbooks/build_node/.kitchen.ec2.yml +37 -37
  38. data/generator_files/cookbooks/build_node/.kitchen.yml +23 -23
  39. data/generator_files/cookbooks/build_node/Berksfile +8 -8
  40. data/generator_files/cookbooks/build_node/README.md +4 -4
  41. data/generator_files/cookbooks/build_node/chefignore +102 -102
  42. data/generator_files/cookbooks/build_node/metadata.rb +12 -12
  43. data/generator_files/cookbooks/build_node/recipes/default.rb +38 -38
  44. data/generator_files/cookbooks/build_node/templates/client.erb +2 -2
  45. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  46. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  47. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -25
  48. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  49. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  50. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  51. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  52. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  53. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/metadata.rb +2 -2
  54. data/generator_files/cookbooks/build_node/test/fixtures/cookbooks/mock_data/recipes/default.rb +18 -18
  55. data/generator_files/cookbooks/build_node/test/integration/default/build-node_spec.rb +40 -40
  56. data/generator_files/cookbooks/chef_server/.gitignore +16 -16
  57. data/generator_files/cookbooks/chef_server/.kitchen.ec2.yml +34 -34
  58. data/generator_files/cookbooks/chef_server/.kitchen.yml +24 -24
  59. data/generator_files/cookbooks/chef_server/Berksfile +6 -6
  60. data/generator_files/cookbooks/chef_server/README.md +4 -4
  61. data/generator_files/cookbooks/chef_server/chefignore +102 -102
  62. data/generator_files/cookbooks/chef_server/metadata.rb +11 -11
  63. data/generator_files/cookbooks/chef_server/recipes/bootstrap_users.rb +91 -91
  64. data/generator_files/cookbooks/chef_server/recipes/default.rb +113 -113
  65. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  66. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  67. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -25
  68. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  69. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  70. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  71. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  72. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  73. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/metadata.rb +2 -2
  74. data/generator_files/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/recipes/default.rb +23 -23
  75. data/generator_files/cookbooks/chef_server/test/integration/default/chef_server_spec.rb +50 -50
  76. data/generator_files/cookbooks/compliance/.gitignore +16 -16
  77. data/generator_files/cookbooks/compliance/.kitchen.ec2.yml +34 -34
  78. data/generator_files/cookbooks/compliance/.kitchen.yml +24 -24
  79. data/generator_files/cookbooks/compliance/Berksfile +7 -7
  80. data/generator_files/cookbooks/compliance/README.md +4 -4
  81. data/generator_files/cookbooks/compliance/chefignore +102 -102
  82. data/generator_files/cookbooks/compliance/metadata.rb +11 -11
  83. data/generator_files/cookbooks/compliance/recipes/default.rb +57 -57
  84. data/generator_files/cookbooks/compliance/spec/spec_helper.rb +2 -2
  85. data/generator_files/cookbooks/compliance/spec/unit/recipes/default_spec.rb +20 -20
  86. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  87. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  88. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -25
  89. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  90. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  91. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  92. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  93. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  94. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/metadata.rb +4 -4
  95. data/generator_files/cookbooks/compliance/test/fixtures/cookbooks/mock_data/recipes/default.rb +21 -21
  96. data/generator_files/cookbooks/compliance/test/integration/default/compliance.rb +28 -28
  97. data/generator_files/cookbooks/infranodes/.gitignore +16 -16
  98. data/generator_files/cookbooks/infranodes/.kitchen.ec2.yml +48 -48
  99. data/generator_files/cookbooks/infranodes/.kitchen.yml +21 -21
  100. data/generator_files/cookbooks/infranodes/Berksfile +6 -6
  101. data/generator_files/cookbooks/infranodes/README.md +4 -4
  102. data/generator_files/cookbooks/infranodes/attributes/default.rb +2 -2
  103. data/generator_files/cookbooks/infranodes/chefignore +102 -102
  104. data/generator_files/cookbooks/infranodes/metadata.rb +13 -13
  105. data/generator_files/cookbooks/infranodes/recipes/default.rb +57 -57
  106. data/generator_files/cookbooks/infranodes/spec/spec_helper.rb +2 -2
  107. data/generator_files/cookbooks/infranodes/spec/unit/recipes/default_spec.rb +20 -20
  108. data/generator_files/cookbooks/infranodes/templates/default/client.rb.erb +5 -5
  109. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  110. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  111. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -25
  112. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  113. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  114. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  115. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  116. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  117. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/metadata.rb +3 -3
  118. data/generator_files/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/recipes/default.rb +27 -27
  119. data/generator_files/cookbooks/infranodes/test/integration/default/infranodes_spec.rb +22 -22
  120. data/generator_files/cookbooks/infranodes/test/integration/helpers/serverspec/spec_helper.rb +8 -8
  121. data/generator_files/cookbooks/wombat/.gitignore +16 -16
  122. data/generator_files/cookbooks/wombat/.kitchen.yml +43 -43
  123. data/generator_files/cookbooks/wombat/Berksfile +5 -5
  124. data/generator_files/cookbooks/wombat/README.md +4 -4
  125. data/generator_files/cookbooks/wombat/attributes/default.rb +79 -80
  126. data/generator_files/cookbooks/wombat/attributes/packer.rb +18 -18
  127. data/generator_files/cookbooks/wombat/chefignore +102 -102
  128. data/generator_files/cookbooks/wombat/metadata.rb +13 -13
  129. data/generator_files/cookbooks/wombat/recipes/authorized-keys.rb +20 -20
  130. data/generator_files/cookbooks/wombat/recipes/default.rb +111 -111
  131. data/generator_files/cookbooks/wombat/recipes/etc-hosts.rb +51 -51
  132. data/generator_files/cookbooks/workstation/.gitignore +16 -16
  133. data/generator_files/cookbooks/workstation/.kitchen.azure.yml +45 -0
  134. data/generator_files/cookbooks/workstation/.kitchen.ec2.yml +46 -30
  135. data/generator_files/cookbooks/workstation/.kitchen.yml +42 -22
  136. data/generator_files/cookbooks/workstation/Berksfile +7 -7
  137. data/generator_files/cookbooks/workstation/README.md +3 -3
  138. data/generator_files/cookbooks/workstation/chefignore +106 -102
  139. data/generator_files/cookbooks/workstation/files/atom.apm.list +10 -7
  140. data/generator_files/cookbooks/workstation/files/atom.config.cson +6 -3
  141. data/generator_files/cookbooks/workstation/{templates/default/ise_profile.ps1.erb → files/ise_profile.ps1} +11 -11
  142. data/generator_files/cookbooks/workstation/libraries/home.rb +4 -4
  143. data/generator_files/cookbooks/workstation/metadata.rb +14 -14
  144. data/generator_files/cookbooks/workstation/recipes/browser.rb +53 -58
  145. data/generator_files/cookbooks/workstation/recipes/certs-keys.rb +41 -45
  146. data/generator_files/cookbooks/workstation/recipes/chef.rb +29 -28
  147. data/generator_files/cookbooks/workstation/recipes/default.rb +24 -21
  148. data/generator_files/cookbooks/workstation/recipes/dotnet.rb +19 -17
  149. data/generator_files/cookbooks/workstation/recipes/editor.rb +46 -18
  150. data/generator_files/cookbooks/workstation/recipes/profile.rb +14 -41
  151. data/generator_files/cookbooks/workstation/recipes/terminal.rb +11 -11
  152. data/generator_files/cookbooks/workstation/templates/default/bookmarks.html.erb +23 -23
  153. data/generator_files/cookbooks/workstation/templates/default/data_collector.rb.erb +2 -2
  154. data/generator_files/cookbooks/workstation/templates/default/knife.rb.erb +10 -10
  155. data/generator_files/cookbooks/workstation/templates/default/master_preferences.json.erb +28 -28
  156. data/generator_files/cookbooks/workstation/templates/default/ssh_config.erb +16 -16
  157. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -26
  158. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/automate.key +27 -27
  159. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/chef.crt +26 -26
  160. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/chef.key +27 -27
  161. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -26
  162. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -27
  163. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/private.pem +27 -27
  164. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/public.pub +1 -1
  165. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/metadata.rb +2 -2
  166. data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/recipes/default.rb +21 -21
  167. data/generator_files/cookbooks/workstation/test/integration/default/workstation_spec.rb +77 -37
  168. data/generator_files/packer/automate.json +136 -136
  169. data/generator_files/packer/build-node.json +142 -142
  170. data/generator_files/packer/chef-server.json +137 -137
  171. data/generator_files/packer/compliance.json +133 -133
  172. data/generator_files/packer/infranodes-windows.json +143 -143
  173. data/generator_files/packer/infranodes.json +134 -134
  174. data/generator_files/packer/scripts/PreSysprep.ps1 +9 -0
  175. data/generator_files/packer/workstation.json +160 -142
  176. data/generator_files/templates/arm.md.json.erb +754 -754
  177. data/generator_files/templates/arm.vhd.json.erb +630 -630
  178. data/generator_files/templates/bootstrap-aws.erb +39 -39
  179. data/generator_files/templates/cfn.json.erb +675 -674
  180. data/generator_files/wombat.yml +75 -74
  181. data/lib/wombat/aws.rb +67 -67
  182. data/lib/wombat/build.rb +392 -392
  183. data/lib/wombat/cli.rb +254 -254
  184. data/lib/wombat/common.rb +420 -420
  185. data/lib/wombat/crypto.rb +65 -65
  186. data/lib/wombat/delete.rb +67 -67
  187. data/lib/wombat/deploy.rb +128 -128
  188. data/lib/wombat/init.rb +32 -32
  189. data/lib/wombat/latest.rb +27 -27
  190. data/lib/wombat/output.rb +101 -101
  191. data/lib/wombat/update.rb +20 -20
  192. data/lib/wombat/version.rb +3 -3
  193. data/lib/wombat.rb +8 -8
  194. data/spec/functional/common_spec.rb +26 -26
  195. data/spec/spec_helper.rb +103 -103
  196. data/spec/unit/common_spec.rb +116 -116
  197. data/terraform/README.md +13 -13
  198. data/terraform/templates/terraform.tfvars.erb +12 -12
  199. data/terraform/wombat.tf +328 -328
  200. data/wombat-cli.gemspec +36 -36
  201. metadata +6 -4
@@ -1,102 +1,102 @@
1
- # Put files/directories that should be ignored in this file when uploading
2
- # to a chef-server or supermarket.
3
- # Lines that start with '# ' are comments.
4
-
5
- # OS generated files #
6
- ######################
7
- .DS_Store
8
- Icon?
9
- nohup.out
10
- ehthumbs.db
11
- Thumbs.db
12
-
13
- # SASS #
14
- ########
15
- .sass-cache
16
-
17
- # EDITORS #
18
- ###########
19
- \#*
20
- .#*
21
- *~
22
- *.sw[a-z]
23
- *.bak
24
- REVISION
25
- TAGS*
26
- tmtags
27
- *_flymake.*
28
- *_flymake
29
- *.tmproj
30
- .project
31
- .settings
32
- mkmf.log
33
-
34
- ## COMPILED ##
35
- ##############
36
- a.out
37
- *.o
38
- *.pyc
39
- *.so
40
- *.com
41
- *.class
42
- *.dll
43
- *.exe
44
- */rdoc/
45
-
46
- # Testing #
47
- ###########
48
- .watchr
49
- .rspec
50
- spec/*
51
- spec/fixtures/*
52
- test/*
53
- features/*
54
- examples/*
55
- Guardfile
56
- Procfile
57
- .kitchen*
58
- .rubocop.yml
59
- spec/*
60
- Rakefile
61
- .travis.yml
62
- .foodcritic
63
- .codeclimate.yml
64
-
65
- # SCM #
66
- #######
67
- .git
68
- */.git
69
- .gitignore
70
- .gitmodules
71
- .gitconfig
72
- .gitattributes
73
- .svn
74
- */.bzr/*
75
- */.hg/*
76
- */.svn/*
77
-
78
- # Berkshelf #
79
- #############
80
- Berksfile
81
- Berksfile.lock
82
- cookbooks/*
83
- tmp
84
-
85
- # Cookbooks #
86
- #############
87
- CONTRIBUTING*
88
- CHANGELOG*
89
- TESTING*
90
- MAINTAINERS.toml
91
-
92
- # Strainer #
93
- ############
94
- Colanderfile
95
- Strainerfile
96
- .colander
97
- .strainer
98
-
99
- # Vagrant #
100
- ###########
101
- .vagrant
102
- Vagrantfile
1
+ # Put files/directories that should be ignored in this file when uploading
2
+ # to a chef-server or supermarket.
3
+ # Lines that start with '# ' are comments.
4
+
5
+ # OS generated files #
6
+ ######################
7
+ .DS_Store
8
+ Icon?
9
+ nohup.out
10
+ ehthumbs.db
11
+ Thumbs.db
12
+
13
+ # SASS #
14
+ ########
15
+ .sass-cache
16
+
17
+ # EDITORS #
18
+ ###########
19
+ \#*
20
+ .#*
21
+ *~
22
+ *.sw[a-z]
23
+ *.bak
24
+ REVISION
25
+ TAGS*
26
+ tmtags
27
+ *_flymake.*
28
+ *_flymake
29
+ *.tmproj
30
+ .project
31
+ .settings
32
+ mkmf.log
33
+
34
+ ## COMPILED ##
35
+ ##############
36
+ a.out
37
+ *.o
38
+ *.pyc
39
+ *.so
40
+ *.com
41
+ *.class
42
+ *.dll
43
+ *.exe
44
+ */rdoc/
45
+
46
+ # Testing #
47
+ ###########
48
+ .watchr
49
+ .rspec
50
+ spec/*
51
+ spec/fixtures/*
52
+ test/*
53
+ features/*
54
+ examples/*
55
+ Guardfile
56
+ Procfile
57
+ .kitchen*
58
+ .rubocop.yml
59
+ spec/*
60
+ Rakefile
61
+ .travis.yml
62
+ .foodcritic
63
+ .codeclimate.yml
64
+
65
+ # SCM #
66
+ #######
67
+ .git
68
+ */.git
69
+ .gitignore
70
+ .gitmodules
71
+ .gitconfig
72
+ .gitattributes
73
+ .svn
74
+ */.bzr/*
75
+ */.hg/*
76
+ */.svn/*
77
+
78
+ # Berkshelf #
79
+ #############
80
+ Berksfile
81
+ Berksfile.lock
82
+ cookbooks/*
83
+ tmp
84
+
85
+ # Cookbooks #
86
+ #############
87
+ CONTRIBUTING*
88
+ CHANGELOG*
89
+ TESTING*
90
+ MAINTAINERS.toml
91
+
92
+ # Strainer #
93
+ ############
94
+ Colanderfile
95
+ Strainerfile
96
+ .colander
97
+ .strainer
98
+
99
+ # Vagrant #
100
+ ###########
101
+ .vagrant
102
+ Vagrantfile
@@ -1,13 +1,13 @@
1
- name 'wombat'
2
- maintainer 'The Authors'
3
- maintainer_email 'you@example.com'
4
- license 'all_rights'
5
- description 'Installs/Configures wombat'
6
- long_description 'Installs/Configures wombat'
7
- version '0.2.3'
8
-
9
- depends 'hostsfile'
10
- depends 'apt'
11
- depends 'chef-ingredient'
12
- depends 'sudo'
13
- depends 'line'
1
+ name 'wombat'
2
+ maintainer 'The Authors'
3
+ maintainer_email 'you@example.com'
4
+ license 'all_rights'
5
+ description 'Installs/Configures wombat'
6
+ long_description 'Installs/Configures wombat'
7
+ version '0.2.4'
8
+
9
+ depends 'hostsfile'
10
+ depends 'apt'
11
+ depends 'chef-ingredient'
12
+ depends 'sudo'
13
+ depends 'line'
@@ -1,20 +1,20 @@
1
- #
2
- # Cookbook Name:: wombat
3
- # Recipe:: authorized-keys
4
- #
5
- # Copyright (c) 2016 The Authors, All Rights Reserved.
6
-
7
- append_if_no_line "Add certificate to authorized_keys" do
8
- path "/home/#{node['demo']['admin-user']}/.ssh/authorized_keys"
9
- line lazy { IO.read('/tmp/public.pub') }
10
- not_if { node['platform'] == 'windows' }
11
- end
12
-
13
- node.default['authorization']['sudo']['include_sudoers_d'] = true
14
-
15
- sudo 'centos' do
16
- user 'centos'
17
- nopasswd true
18
- defaults ['!requiretty']
19
- only_if { node['platform'] == 'centos' }
20
- end
1
+ #
2
+ # Cookbook Name:: wombat
3
+ # Recipe:: authorized-keys
4
+ #
5
+ # Copyright (c) 2016 The Authors, All Rights Reserved.
6
+
7
+ append_if_no_line "Add certificate to authorized_keys" do
8
+ path "/home/#{node['demo']['admin-user']}/.ssh/authorized_keys"
9
+ line lazy { IO.read('/tmp/public.pub') }
10
+ not_if { node['platform'] == 'windows' }
11
+ end
12
+
13
+ node.default['authorization']['sudo']['include_sudoers_d'] = true
14
+
15
+ sudo 'centos' do
16
+ user 'centos'
17
+ nopasswd true
18
+ defaults ['!requiretty']
19
+ only_if { node['platform'] == 'centos' }
20
+ end
@@ -1,112 +1,112 @@
1
- # Build all the things in a vagrant box
2
- require 'securerandom'
3
-
4
- include_recipe 'apt'
5
-
6
- chef_ingredient 'chefdk' do
7
- channel node['demo']['versions']['chefdk'].split('-')[0].to_sym
8
- version node['demo']['versions']['chefdk'].split('-')[1]
9
- end
10
-
11
- gem_package 'parallel' do
12
- action :install
13
- end
14
-
15
- workspace_dir = "/tmp/wombat-#{SecureRandom.hex(8)}"
16
- output_dir = "/tmp/wombat/output"
17
- aws_settings = node['wombat']['packer']['aws']
18
- azure_settings = node['wombat']['packer']['azure']
19
-
20
- execute 'create workspace for wombat' do
21
- command "cp -rf /tmp/wombat #{workspace_dir}"
22
- creates workspace_dir
23
- end
24
-
25
- config_hash = {
26
- "name" => "wombat",
27
- "domain" => node['demo']['domain'],
28
- "enterprise" => node['demo']['enterprise'],
29
- "org" => node['demo']['org'],
30
- "build-nodes" => node['demo']['build-nodes'].to_s,
31
- "infranodes" => node['demo']['infranodes'].to_h,
32
- "version" => '0.0.12'.to_f,
33
- "products" => node['demo']['versions'].to_h,
34
- "aws" => {
35
- "region" => aws_settings['region'],
36
- "az" => "#{aws_settings['region']}a",
37
- "keypair" => aws_settings['keypair'],
38
- "source_ami" => aws_settings['source_ami'].to_h
39
- },
40
- }
41
-
42
- file File.join(workspace_dir, 'wombat.yml') do
43
- content config_hash.to_yaml
44
- end
45
-
46
- execute 'clean packer/logs dir' do
47
- command 'rm -rf packer/logs/*'
48
- cwd workspace_dir
49
- live_stream true
50
- not_if do
51
- Dir.glob("#{workspace_dir}/packer/logs/*.log").empty?
52
- end
53
- end
54
-
55
- execute 'clean certs and keys' do
56
- command 'rm -rf packer/keys/*'
57
- cwd workspace_dir
58
- live_stream true
59
- not_if do
60
- Dir.glob("#{workspace_dir}/packer/keys/*").empty?
61
- end
62
- end
63
-
64
- execute 'generate certs and keys' do
65
- command 'rake keys:create'
66
- cwd workspace_dir
67
- live_stream true
68
- end
69
-
70
- execute 'build amis with rake' do
71
- command 'rake packer:build_amis_parallel'
72
- cwd workspace_dir
73
- live_stream true
74
- environment(
75
- 'AWS_REGION' => aws_settings['region'],
76
- 'AWS_SECRET_ACCESS_KEY' => aws_settings['secret_key'],
77
- 'AWS_ACCESS_KEY_ID' => aws_settings['access_key'],
78
- 'AZURE_TENANT_ID' => azure_settings['tenant_id'],
79
- 'AZURE_CLIENT_ID' => azure_settings['client_id'],
80
- 'AZURE_CLIENT_SECRET' => azure_settings['client_secret'],
81
- 'AZURE_SUBSCRIPTION_ID' => azure_settings['subscription_id'],
82
- 'AZURE_RESOURCE_GROUP' => azure_settings['resource_group'],
83
- 'AZURE_STORAGE_ACCOUNT' => azure_settings['storage_account']
84
- )
85
- end
86
-
87
- execute 'update lock file' do
88
- command 'rake update_lock && cat wombat.lock'
89
- cwd workspace_dir
90
- live_stream true
91
- end
92
-
93
- execute 'create cfn template' do
94
- command 'rake cfn:create_template'
95
- cwd workspace_dir
96
- live_stream true
97
- end
98
-
99
- directory output_dir
100
- directory File.join(output_dir, 'keys')
101
-
102
- file File.join(output_dir, 'wombat.lock') do
103
- content lazy { IO.read(File.join(workspace_dir, 'wombat.lock')) }
104
- end
105
-
106
- file File.join(output_dir, 'cfn_template.json') do
107
- content lazy { IO.read(File.join(workspace_dir, 'cloudformation', 'wombat.json')) }
108
- end
109
-
110
- file File.join(output_dir, 'private.pem') do
111
- content lazy { IO.read(File.join(workspace_dir, 'packer', 'keys', 'private.pem'))}
1
+ # Build all the things in a vagrant box
2
+ require 'securerandom'
3
+
4
+ include_recipe 'apt'
5
+
6
+ chef_ingredient 'chefdk' do
7
+ channel node['demo']['versions']['chefdk'].split('-')[0].to_sym
8
+ version node['demo']['versions']['chefdk'].split('-')[1]
9
+ end
10
+
11
+ gem_package 'parallel' do
12
+ action :install
13
+ end
14
+
15
+ workspace_dir = "/tmp/wombat-#{SecureRandom.hex(8)}"
16
+ output_dir = "/tmp/wombat/output"
17
+ aws_settings = node['wombat']['packer']['aws']
18
+ azure_settings = node['wombat']['packer']['azure']
19
+
20
+ execute 'create workspace for wombat' do
21
+ command "cp -rf /tmp/wombat #{workspace_dir}"
22
+ creates workspace_dir
23
+ end
24
+
25
+ config_hash = {
26
+ "name" => "wombat",
27
+ "domain" => node['demo']['domain'],
28
+ "enterprise" => node['demo']['enterprise'],
29
+ "org" => node['demo']['org'],
30
+ "build-nodes" => node['demo']['build-nodes'].to_s,
31
+ "infranodes" => node['demo']['infranodes'].to_h,
32
+ "version" => '0.0.12'.to_f,
33
+ "products" => node['demo']['versions'].to_h,
34
+ "aws" => {
35
+ "region" => aws_settings['region'],
36
+ "az" => "#{aws_settings['region']}a",
37
+ "keypair" => aws_settings['keypair'],
38
+ "source_ami" => aws_settings['source_ami'].to_h
39
+ },
40
+ }
41
+
42
+ file File.join(workspace_dir, 'wombat.yml') do
43
+ content config_hash.to_yaml
44
+ end
45
+
46
+ execute 'clean packer/logs dir' do
47
+ command 'rm -rf packer/logs/*'
48
+ cwd workspace_dir
49
+ live_stream true
50
+ not_if do
51
+ Dir.glob("#{workspace_dir}/packer/logs/*.log").empty?
52
+ end
53
+ end
54
+
55
+ execute 'clean certs and keys' do
56
+ command 'rm -rf packer/keys/*'
57
+ cwd workspace_dir
58
+ live_stream true
59
+ not_if do
60
+ Dir.glob("#{workspace_dir}/packer/keys/*").empty?
61
+ end
62
+ end
63
+
64
+ execute 'generate certs and keys' do
65
+ command 'rake keys:create'
66
+ cwd workspace_dir
67
+ live_stream true
68
+ end
69
+
70
+ execute 'build amis with rake' do
71
+ command 'rake packer:build_amis_parallel'
72
+ cwd workspace_dir
73
+ live_stream true
74
+ environment(
75
+ 'AWS_REGION' => aws_settings['region'],
76
+ 'AWS_SECRET_ACCESS_KEY' => aws_settings['secret_key'],
77
+ 'AWS_ACCESS_KEY_ID' => aws_settings['access_key'],
78
+ 'AZURE_TENANT_ID' => azure_settings['tenant_id'],
79
+ 'AZURE_CLIENT_ID' => azure_settings['client_id'],
80
+ 'AZURE_CLIENT_SECRET' => azure_settings['client_secret'],
81
+ 'AZURE_SUBSCRIPTION_ID' => azure_settings['subscription_id'],
82
+ 'AZURE_RESOURCE_GROUP' => azure_settings['resource_group'],
83
+ 'AZURE_STORAGE_ACCOUNT' => azure_settings['storage_account']
84
+ )
85
+ end
86
+
87
+ execute 'update lock file' do
88
+ command 'rake update_lock && cat wombat.lock'
89
+ cwd workspace_dir
90
+ live_stream true
91
+ end
92
+
93
+ execute 'create cfn template' do
94
+ command 'rake cfn:create_template'
95
+ cwd workspace_dir
96
+ live_stream true
97
+ end
98
+
99
+ directory output_dir
100
+ directory File.join(output_dir, 'keys')
101
+
102
+ file File.join(output_dir, 'wombat.lock') do
103
+ content lazy { IO.read(File.join(workspace_dir, 'wombat.lock')) }
104
+ end
105
+
106
+ file File.join(output_dir, 'cfn_template.json') do
107
+ content lazy { IO.read(File.join(workspace_dir, 'cloudformation', 'wombat.json')) }
108
+ end
109
+
110
+ file File.join(output_dir, 'private.pem') do
111
+ content lazy { IO.read(File.join(workspace_dir, 'packer', 'keys', 'private.pem'))}
112
112
  end
@@ -1,51 +1,51 @@
1
- #
2
- # Cookbook Name:: wombat
3
- # Recipe:: default
4
- #
5
- # Copyright (c) 2016 The Authors, All Rights Reserved.
6
-
7
- all_hosts = node['demo']['hosts'].to_h
8
- build_ip = 50
9
- infra_ip = 100
10
- wkstn_ip = 200
11
- if node['platform'] == 'windows'
12
- tmp_dir = "C:\\Windows\\Temp"
13
- else
14
- tmp_dir = "/tmp/"
15
- end
16
-
17
- infranodes_file = File.join(tmp_dir, "infranodes-info.json")
18
-
19
- if File.exists?(infranodes_file)
20
- infranodes = JSON(File.read(infranodes_file))
21
- else
22
- infranodes = {}
23
- end
24
-
25
- 1.upto(node['demo']['build-nodes'].to_i) do |i|
26
- build_node_name = "build-node-#{i}"
27
- next if all_hosts.key?(build_node_name)
28
- build_ip += 1
29
- all_hosts[build_node_name] = "172.31.54.#{build_ip}"
30
- end
31
-
32
- 1.upto(node['demo']['workstations'].to_i) do |i|
33
- wkstn_name = "workstation-#{i}"
34
- next if all_hosts.key?(wkstn_name)
35
- wkstn_ip += 1
36
- all_hosts[wkstn_name] = "172.31.54.#{wkstn_ip}"
37
- end
38
-
39
- infranodes.sort.each do |name, _info|
40
- next if all_hosts.key?(name)
41
- infra_ip += 1
42
- all_hosts[name] = "172.31.54.#{infra_ip}"
43
- end
44
-
45
- all_hosts.each do |hostname, ipaddress|
46
- hostsfile_entry ipaddress do
47
- hostname "#{node['demo']['domain_prefix']}#{hostname}.#{node['demo']['domain']}"
48
- aliases [hostname]
49
- action :create
50
- end
51
- end
1
+ #
2
+ # Cookbook Name:: wombat
3
+ # Recipe:: default
4
+ #
5
+ # Copyright (c) 2016 The Authors, All Rights Reserved.
6
+
7
+ all_hosts = node['demo']['hosts'].to_h
8
+ build_ip = 50
9
+ infra_ip = 100
10
+ wkstn_ip = 200
11
+ if node['platform'] == 'windows'
12
+ tmp_dir = "C:\\Windows\\Temp"
13
+ else
14
+ tmp_dir = "/tmp/"
15
+ end
16
+
17
+ infranodes_file = File.join(tmp_dir, "infranodes-info.json")
18
+
19
+ if File.exists?(infranodes_file)
20
+ infranodes = JSON(File.read(infranodes_file))
21
+ else
22
+ infranodes = {}
23
+ end
24
+
25
+ 1.upto(node['demo']['build-nodes'].to_i) do |i|
26
+ build_node_name = "build-node-#{i}"
27
+ next if all_hosts.key?(build_node_name)
28
+ build_ip += 1
29
+ all_hosts[build_node_name] = "172.31.54.#{build_ip}"
30
+ end
31
+
32
+ 1.upto(node['demo']['workstations'].to_i) do |i|
33
+ wkstn_name = "workstation-#{i}"
34
+ next if all_hosts.key?(wkstn_name)
35
+ wkstn_ip += 1
36
+ all_hosts[wkstn_name] = "172.31.54.#{wkstn_ip}"
37
+ end
38
+
39
+ infranodes.sort.each do |name, _info|
40
+ next if all_hosts.key?(name)
41
+ infra_ip += 1
42
+ all_hosts[name] = "172.31.54.#{infra_ip}"
43
+ end
44
+
45
+ all_hosts.each do |hostname, ipaddress|
46
+ hostsfile_entry ipaddress do
47
+ hostname "#{node['demo']['domain_prefix']}#{hostname}.#{node['demo']['domain']}"
48
+ aliases [hostname]
49
+ action :create
50
+ end
51
+ end
@@ -1,16 +1,16 @@
1
- .vagrant
2
- Berksfile.lock
3
- *~
4
- *#
5
- .#*
6
- \#*#
7
- .*.sw[a-z]
8
- *.un~
9
-
10
- # Bundler
11
- Gemfile.lock
12
- bin/*
13
- .bundle/*
14
-
15
- .kitchen/
16
- .kitchen.local.yml
1
+ .vagrant
2
+ Berksfile.lock
3
+ *~
4
+ *#
5
+ .#*
6
+ \#*#
7
+ .*.sw[a-z]
8
+ *.un~
9
+
10
+ # Bundler
11
+ Gemfile.lock
12
+ bin/*
13
+ .bundle/*
14
+
15
+ .kitchen/
16
+ .kitchen.local.yml
@@ -0,0 +1,45 @@
1
+
2
+ ---
3
+ driver:
4
+ name: azurerm
5
+
6
+ driver_config:
7
+ subscription_id: <%= ENV["AZURE_SUBSCRIPTION_ID"] %>
8
+ location: 'westus2'
9
+ machine_size: 'Standard_DS3_v2'
10
+
11
+ provisioner:
12
+ name: chef_zero
13
+ require_chef_omnibus: latest
14
+
15
+ verifier:
16
+ name: inspec
17
+
18
+ platforms:
19
+ - name: windows-2012r2
20
+ driver_config:
21
+ image_urn: MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest
22
+ os_type: windows
23
+ - name: windows-2016
24
+ driver_config:
25
+ image_urn: MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest
26
+ os_type: windows
27
+
28
+ suites:
29
+ - name: default
30
+ run_list:
31
+ - recipe[mock_data]
32
+ - recipe[workstation]
33
+ attributes:
34
+ chocolatey:
35
+ upgrade: true
36
+ demo:
37
+ domain_prefix: ''
38
+ domain: 'animals.biz'
39
+ enterprise: 'mammals'
40
+ org: 'marsupials'
41
+ hosts:
42
+ workstations: 1
43
+ workstation-number: 1
44
+ versions:
45
+ chefdk: 'stable-latest'