wombat-cli 0.2.0

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 +7 -0
  2. data/.gitignore +19 -0
  3. data/DESIGN.md +40 -0
  4. data/Gemfile +3 -0
  5. data/README.md +132 -0
  6. data/Rakefile +52 -0
  7. data/Vagrantfile +121 -0
  8. data/bin/wombat +24 -0
  9. data/cookbooks/automate/.gitignore +16 -0
  10. data/cookbooks/automate/.kitchen.ec2.yml +27 -0
  11. data/cookbooks/automate/.kitchen.yml +25 -0
  12. data/cookbooks/automate/Berksfile +6 -0
  13. data/cookbooks/automate/README.md +4 -0
  14. data/cookbooks/automate/chefignore +102 -0
  15. data/cookbooks/automate/libraries/_helper.rb +52 -0
  16. data/cookbooks/automate/libraries/delivery_api.rb +204 -0
  17. data/cookbooks/automate/libraries/delivery_project.rb +31 -0
  18. data/cookbooks/automate/libraries/dsl.rb +5 -0
  19. data/cookbooks/automate/metadata.rb +13 -0
  20. data/cookbooks/automate/recipes/default.rb +111 -0
  21. data/cookbooks/automate/recipes/update-users.rb +48 -0
  22. data/cookbooks/automate/templates/delivery.erb +5 -0
  23. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -0
  24. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/automate.key +27 -0
  25. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -0
  26. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/chef.key +27 -0
  27. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  28. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  29. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  30. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  31. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/metadata.rb +3 -0
  32. data/cookbooks/automate/test/fixtures/cookbooks/mock_data/recipes/default.rb +27 -0
  33. data/cookbooks/automate/test/integration/default/automate_spec.rb +55 -0
  34. data/cookbooks/build_node/.gitignore +16 -0
  35. data/cookbooks/build_node/.kitchen.ec2.yml +30 -0
  36. data/cookbooks/build_node/.kitchen.yml +23 -0
  37. data/cookbooks/build_node/Berksfile +8 -0
  38. data/cookbooks/build_node/README.md +4 -0
  39. data/cookbooks/build_node/chefignore +102 -0
  40. data/cookbooks/build_node/metadata.rb +15 -0
  41. data/cookbooks/build_node/recipes/default.rb +35 -0
  42. data/cookbooks/build_node/templates/client.erb +3 -0
  43. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -0
  44. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/automate.key +27 -0
  45. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -0
  46. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/chef.key +27 -0
  47. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  48. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  49. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  50. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  51. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/metadata.rb +2 -0
  52. data/cookbooks/build_node/test/fixtures/cookbooks/mock_data/recipes/default.rb +18 -0
  53. data/cookbooks/build_node/test/integration/default/build-node_spec.rb +39 -0
  54. data/cookbooks/chef_server/.gitignore +16 -0
  55. data/cookbooks/chef_server/.kitchen.ec2.yml +26 -0
  56. data/cookbooks/chef_server/.kitchen.yml +25 -0
  57. data/cookbooks/chef_server/Berksfile +6 -0
  58. data/cookbooks/chef_server/README.md +4 -0
  59. data/cookbooks/chef_server/chefignore +102 -0
  60. data/cookbooks/chef_server/metadata.rb +13 -0
  61. data/cookbooks/chef_server/recipes/cheffish.rb +91 -0
  62. data/cookbooks/chef_server/recipes/default.rb +79 -0
  63. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -0
  64. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.key +27 -0
  65. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -0
  66. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/chef.key +27 -0
  67. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  68. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  69. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  70. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  71. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/metadata.rb +2 -0
  72. data/cookbooks/chef_server/test/fixtures/cookbooks/mock_data/recipes/default.rb +23 -0
  73. data/cookbooks/chef_server/test/integration/default/chef_server_spec.rb +47 -0
  74. data/cookbooks/compliance/.gitignore +16 -0
  75. data/cookbooks/compliance/.kitchen.ec2.yml +26 -0
  76. data/cookbooks/compliance/.kitchen.yml +24 -0
  77. data/cookbooks/compliance/Berksfile +7 -0
  78. data/cookbooks/compliance/README.md +4 -0
  79. data/cookbooks/compliance/chefignore +102 -0
  80. data/cookbooks/compliance/metadata.rb +12 -0
  81. data/cookbooks/compliance/recipes/default.rb +59 -0
  82. data/cookbooks/compliance/spec/spec_helper.rb +2 -0
  83. data/cookbooks/compliance/spec/unit/recipes/default_spec.rb +20 -0
  84. data/cookbooks/compliance/templates/default/chef-compliance.rb.erb +1 -0
  85. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -0
  86. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/automate.key +27 -0
  87. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -0
  88. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/chef.key +27 -0
  89. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  90. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  91. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  92. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  93. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/metadata.rb +4 -0
  94. data/cookbooks/compliance/test/fixtures/cookbooks/mock_data/recipes/default.rb +21 -0
  95. data/cookbooks/compliance/test/integration/default/compliance.rb +27 -0
  96. data/cookbooks/infranodes/.gitignore +16 -0
  97. data/cookbooks/infranodes/.kitchen.ec2.yml +27 -0
  98. data/cookbooks/infranodes/.kitchen.yml +21 -0
  99. data/cookbooks/infranodes/Berksfile +6 -0
  100. data/cookbooks/infranodes/README.md +4 -0
  101. data/cookbooks/infranodes/attributes/default.rb +3 -0
  102. data/cookbooks/infranodes/chefignore +102 -0
  103. data/cookbooks/infranodes/metadata.rb +13 -0
  104. data/cookbooks/infranodes/recipes/default.rb +41 -0
  105. data/cookbooks/infranodes/spec/spec_helper.rb +2 -0
  106. data/cookbooks/infranodes/spec/unit/recipes/default_spec.rb +20 -0
  107. data/cookbooks/infranodes/templates/default/client.rb.erb +5 -0
  108. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/automate.crt +26 -0
  109. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/automate.key +27 -0
  110. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/chef.crt +25 -0
  111. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/chef.key +27 -0
  112. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  113. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  114. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  115. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  116. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/metadata.rb +3 -0
  117. data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/recipes/default.rb +21 -0
  118. data/cookbooks/infranodes/test/integration/default/infranodes_spec.rb +20 -0
  119. data/cookbooks/infranodes/test/integration/helpers/serverspec/spec_helper.rb +8 -0
  120. data/cookbooks/wombat/.gitignore +16 -0
  121. data/cookbooks/wombat/.kitchen.yml +43 -0
  122. data/cookbooks/wombat/Berksfile +6 -0
  123. data/cookbooks/wombat/README.md +4 -0
  124. data/cookbooks/wombat/attributes/default.rb +71 -0
  125. data/cookbooks/wombat/attributes/packer.rb +18 -0
  126. data/cookbooks/wombat/chefignore +102 -0
  127. data/cookbooks/wombat/metadata.rb +11 -0
  128. data/cookbooks/wombat/recipes/authorized-keys.rb +10 -0
  129. data/cookbooks/wombat/recipes/default.rb +112 -0
  130. data/cookbooks/wombat/recipes/etc-hosts.rb +51 -0
  131. data/cookbooks/workstation/.gitignore +16 -0
  132. data/cookbooks/workstation/.kitchen.ec2.yml +29 -0
  133. data/cookbooks/workstation/.kitchen.yml +22 -0
  134. data/cookbooks/workstation/Berksfile +7 -0
  135. data/cookbooks/workstation/README.md +3 -0
  136. data/cookbooks/workstation/chefignore +102 -0
  137. data/cookbooks/workstation/files/atom.apm.list +7 -0
  138. data/cookbooks/workstation/files/atom.config.cson +3 -0
  139. data/cookbooks/workstation/files/cmder.xml +605 -0
  140. data/cookbooks/workstation/metadata.rb +14 -0
  141. data/cookbooks/workstation/recipes/browser.rb +45 -0
  142. data/cookbooks/workstation/recipes/certs-keys.rb +44 -0
  143. data/cookbooks/workstation/recipes/chef.rb +29 -0
  144. data/cookbooks/workstation/recipes/default.rb +16 -0
  145. data/cookbooks/workstation/recipes/dotnet.rb +17 -0
  146. data/cookbooks/workstation/recipes/editor.rb +19 -0
  147. data/cookbooks/workstation/recipes/profile.rb +42 -0
  148. data/cookbooks/workstation/recipes/terminal.rb +13 -0
  149. data/cookbooks/workstation/templates/default/bookmarks.html.erb +23 -0
  150. data/cookbooks/workstation/templates/default/data_collector.rb.erb +2 -0
  151. data/cookbooks/workstation/templates/default/ise_profile.ps1.erb +11 -0
  152. data/cookbooks/workstation/templates/default/knife.rb.erb +10 -0
  153. data/cookbooks/workstation/templates/default/master_preferences.json.erb +28 -0
  154. data/cookbooks/workstation/templates/default/ssh_config.erb +16 -0
  155. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/chef-server.crt +26 -0
  156. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/chef-server.key +27 -0
  157. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/compliance.crt +26 -0
  158. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/compliance.key +27 -0
  159. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/delivery.crt +26 -0
  160. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/delivery.key +27 -0
  161. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/private.pem +27 -0
  162. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/public.pub +1 -0
  163. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/metadata.rb +2 -0
  164. data/cookbooks/workstation/test/fixtures/cookbooks/mock_data/recipes/default.rb +21 -0
  165. data/cookbooks/workstation/test/integration/default/workstation_spec.rb +37 -0
  166. data/keys/.gitkeep +0 -0
  167. data/lib/wombat/build.rb +195 -0
  168. data/lib/wombat/cli.rb +169 -0
  169. data/lib/wombat/common.rb +163 -0
  170. data/lib/wombat/delete.rb +28 -0
  171. data/lib/wombat/deploy.rb +105 -0
  172. data/lib/wombat/output.rb +45 -0
  173. data/lib/wombat/version.rb +3 -0
  174. data/lib/wombat.rb +8 -0
  175. data/logs/.gitkeep +0 -0
  176. data/packer/automate.json +108 -0
  177. data/packer/build-node.json +114 -0
  178. data/packer/chef-server.json +106 -0
  179. data/packer/compliance.json +106 -0
  180. data/packer/files/.gitkeep +0 -0
  181. data/packer/infranodes.json +108 -0
  182. data/packer/mock-data/.gitignore +16 -0
  183. data/packer/mock-data/.kitchen.yml +21 -0
  184. data/packer/mock-data/Berksfile +3 -0
  185. data/packer/mock-data/README.md +4 -0
  186. data/packer/mock-data/chefignore +102 -0
  187. data/packer/mock-data/metadata.rb +7 -0
  188. data/packer/mock-data/recipes/default.rb +69 -0
  189. data/packer/mock-data/spec/spec_helper.rb +2 -0
  190. data/packer/mock-data/spec/unit/recipes/default_spec.rb +20 -0
  191. data/packer/mock-data/test/integration/default/serverspec/default_spec.rb +9 -0
  192. data/packer/mock-data/test/integration/helpers/serverspec/spec_helper.rb +8 -0
  193. data/packer/workstation.json +97 -0
  194. data/templates/bootstrap-aws.erb +36 -0
  195. data/templates/cfn.json.erb +661 -0
  196. data/terraform/README.md +13 -0
  197. data/terraform/templates/terraform.tfvars.erb +12 -0
  198. data/terraform/wombat.tf +328 -0
  199. data/wombat-cli.gemspec +32 -0
  200. data/wombat.example.yml +52 -0
  201. metadata +331 -0
@@ -0,0 +1,328 @@
1
+ variable "access_key" {}
2
+ variable "secret_key" {}
3
+ variable "region" {
4
+ default = "us-west-2"
5
+ }
6
+ variable "az" {
7
+ default = "us-west-2c"
8
+ }
9
+ variable "customer" {
10
+ default = "venture-industries"
11
+ }
12
+ variable "key_file" {
13
+ default = "../packer/keys/private.pem"
14
+ }
15
+ variable "key_name" {
16
+ default = "USER_REGION"
17
+ }
18
+ variable "ttl" {
19
+ default = 8
20
+ }
21
+ variable "num_builders" {
22
+ default = 0
23
+ }
24
+ variable "ami-chef-server" {
25
+ default = "ami-f3f10893"
26
+ }
27
+ variable "ami-automate" {
28
+ default = "ami-6abf460a"
29
+ }
30
+ variable "ami-build-node" {
31
+ default = "ami-8c4cb0ec"
32
+ }
33
+ variable "ami-workstation" {
34
+ default = "ami-e8f90088"
35
+ }
36
+
37
+ provider "aws" {
38
+ access_key = "${var.access_key}"
39
+ secret_key = "${var.secret_key}"
40
+ region = "${var.region}"
41
+ }
42
+
43
+ resource "aws_vpc" "wombat" {
44
+ cidr_block = "172.31.0.0/16"
45
+ enable_dns_hostnames = true
46
+ enable_dns_support = true
47
+ instance_tenancy = "default"
48
+
49
+ tags {
50
+ "Customer" = "${var.customer}"
51
+ "TTL" = "${var.ttl}"
52
+ "Name" = "wombat VPC"
53
+ }
54
+ }
55
+
56
+ resource "aws_subnet" "automate" {
57
+ vpc_id = "${aws_vpc.wombat.id}"
58
+ cidr_block = "172.31.54.0/24"
59
+ availability_zone = "${var.az}"
60
+ map_public_ip_on_launch = false
61
+
62
+ tags {
63
+ "Customer" = "${var.customer}"
64
+ "TTL" = "${var.ttl}"
65
+ "Name" = "${var.customer} wombat automate Subnet"
66
+ }
67
+ }
68
+
69
+ resource "aws_subnet" "prod" {
70
+ vpc_id = "${aws_vpc.wombat.id}"
71
+ cidr_block = "172.31.62.0/24"
72
+ availability_zone = "${var.az}"
73
+ map_public_ip_on_launch = false
74
+
75
+ tags {
76
+ "Customer" = "${var.customer}"
77
+ "TTL" = "${var.ttl}"
78
+ "Name" = "wombat prod subnet"
79
+ }
80
+ }
81
+
82
+ resource "aws_subnet" "workstations" {
83
+ vpc_id = "${aws_vpc.wombat.id}"
84
+ cidr_block = "172.31.10.0/24"
85
+ availability_zone = "${var.az}"
86
+ map_public_ip_on_launch = false
87
+
88
+ tags {
89
+ "Customer" = "${var.customer}"
90
+ "TTL" = "${var.ttl}"
91
+ "Name" = "wombat workstations subnet"
92
+ }
93
+ }
94
+
95
+ resource "aws_internet_gateway" "inet-gw" {
96
+ vpc_id = "${aws_vpc.wombat.id}"
97
+
98
+ tags {
99
+ "Customer" = "${var.customer}"
100
+ "Name" = "wombat IG"
101
+ "TTL" = "${var.ttl}"
102
+ }
103
+ }
104
+
105
+ resource "aws_route_table" "route-table" {
106
+ vpc_id = "${aws_vpc.wombat.id}"
107
+
108
+ route {
109
+ cidr_block = "0.0.0.0/0"
110
+ gateway_id = "${aws_internet_gateway.inet-gw.id}"
111
+ }
112
+
113
+ tags {
114
+ "Customer" = "${var.customer}"
115
+ "Name" = "wombat RouteTable"
116
+ "TTL" = "${var.ttl}"
117
+ }
118
+ }
119
+
120
+ resource "aws_route_table_association" "automate-rta" {
121
+ route_table_id = "${aws_route_table.route-table.id}"
122
+ subnet_id = "${aws_subnet.automate.id}"
123
+ }
124
+
125
+ resource "aws_route_table_association" "prod-rta" {
126
+ route_table_id = "${aws_route_table.route-table.id}"
127
+ subnet_id = "${aws_subnet.prod.id}"
128
+ }
129
+
130
+ resource "aws_route_table_association" "workstations-rta" {
131
+ route_table_id = "${aws_route_table.route-table.id}"
132
+ subnet_id = "${aws_subnet.workstations.id}"
133
+ }
134
+
135
+ resource "aws_network_acl" "wombat-network-acl" {
136
+ vpc_id = "${aws_vpc.wombat.id}"
137
+ subnet_ids = ["${aws_subnet.automate.id}", "${aws_subnet.prod.id}", "${aws_subnet.workstations.id}"]
138
+
139
+ ingress {
140
+ from_port = 0
141
+ to_port = 0
142
+ rule_no = 100
143
+ action = "allow"
144
+ protocol = "-1"
145
+ cidr_block = "0.0.0.0/0"
146
+ }
147
+
148
+ egress {
149
+ from_port = 0
150
+ to_port = 0
151
+ rule_no = 100
152
+ action = "allow"
153
+ protocol = "-1"
154
+ cidr_block = "0.0.0.0/0"
155
+ }
156
+
157
+ tags {
158
+ "Customer" = "${var.customer}"
159
+ "TTL" = "${var.ttl}"
160
+ "Name" = "wombat NetworkAcl"
161
+ }
162
+ }
163
+
164
+ resource "aws_instance" "chef-server" {
165
+ ami = "${var.ami-chef-server}"
166
+ availability_zone = "${var.az}"
167
+ instance_type = "c3.xlarge"
168
+ key_name = "${var.key_name}"
169
+ subnet_id = "${aws_subnet.automate.id}"
170
+ vpc_security_group_ids = ["${aws_security_group.wombat.id}"]
171
+ associate_public_ip_address = false
172
+ private_ip = "172.31.54.10"
173
+
174
+ tags {
175
+ "Customer" = "${var.customer}"
176
+ "Name" = "wombat chef server"
177
+ "TTL" = "${var.ttl}"
178
+ }
179
+
180
+ provisioner "remote-exec" {
181
+ connection {
182
+ user = "ubuntu"
183
+ host = "${aws_instance.chef-server.public_ip}"
184
+ timeout = "1m"
185
+ key_file = "${var.key_file}"
186
+ }
187
+ inline = [
188
+ "sudo hostnamectl set-hostname chef-server",
189
+ "sudo chef-server-ctl reconfigure",
190
+ "sudo chef-manage-ctl reconfigure",
191
+ "sudo opscode-push-jobs-server-ctl reconfigure"
192
+ ]
193
+ }
194
+ }
195
+
196
+ resource "aws_instance" "automate" {
197
+ ami = "${var.ami-automate}"
198
+ availability_zone = "${var.az}"
199
+ instance_type = "c3.xlarge"
200
+ key_name = "${var.key_name}"
201
+ subnet_id = "${aws_subnet.automate.id}"
202
+ vpc_security_group_ids = ["${aws_security_group.wombat.id}"]
203
+ associate_public_ip_address = false
204
+ private_ip = "172.31.54.11"
205
+
206
+ tags {
207
+ "Customer" = "${var.customer}"
208
+ "Name" = "wombat automate server"
209
+ "TTL" = "${var.ttl}"
210
+ }
211
+
212
+ provisioner "remote-exec" {
213
+ connection {
214
+ user = "ubuntu"
215
+ host = "${aws_instance.automate.public_ip}"
216
+ timeout = "1m"
217
+ key_file = "${var.key_file}"
218
+ }
219
+ inline = [
220
+ "sudo hostnamectl set-hostname automate",
221
+ "sudo automate-ctl reconfigure"
222
+ ]
223
+ }
224
+ }
225
+
226
+ resource "aws_instance" "build-node-1" {
227
+ ami = "${var.ami-build-node}"
228
+ availability_zone = "${var.az}"
229
+ instance_type = "c3.large"
230
+ key_name = "${var.key_name}"
231
+ subnet_id = "${aws_subnet.automate.id}"
232
+ vpc_security_group_ids = ["${aws_security_group.wombat.id}"]
233
+ associate_public_ip_address = false
234
+ private_ip = "172.31.54.12"
235
+
236
+ tags {
237
+ "Customer" = "${var.customer}"
238
+ "Name" = "wombat automate build node 1"
239
+ "TTL" = "${var.ttl}"
240
+ }
241
+
242
+ provisioner "remote-exec" {
243
+ connection {
244
+ user = "ubuntu"
245
+ host = "${aws_instance.automate.public_ip}"
246
+ timeout = "1m"
247
+ key_file = "${var.key_file}"
248
+ }
249
+ inline = [
250
+ "sudo hostnamectl set-hostname build-node-1"
251
+ ]
252
+ }
253
+ }
254
+
255
+ resource "aws_instance" "workstation" {
256
+ ami = "${var.ami-workstation}"
257
+ availability_zone = "${var.az}"
258
+ instance_type = "m3.large"
259
+ key_name = "${var.key_name}"
260
+ subnet_id = "${aws_subnet.automate.id}"
261
+ vpc_security_group_ids = ["${aws_security_group.wombat.id}"]
262
+ associate_public_ip_address = true
263
+ private_ip = "172.31.54.101"
264
+
265
+ tags {
266
+ "Customer" = "${var.customer}"
267
+ "Name" = "wombat windows workstation"
268
+ "TTL" = "${var.ttl}"
269
+ }
270
+ }
271
+
272
+ resource "aws_security_group" "wombat" {
273
+ description = "Enable required ports for Chef Server"
274
+ vpc_id = "${aws_vpc.wombat.id}"
275
+
276
+ ingress {
277
+ from_port = 0
278
+ to_port = 65535
279
+ protocol = "tcp"
280
+ cidr_blocks = ["172.31.0.0/16"]
281
+ }
282
+
283
+ ingress {
284
+ from_port = 22
285
+ to_port = 22
286
+ protocol = "tcp"
287
+ cidr_blocks = ["0.0.0.0/0"]
288
+ }
289
+
290
+ ingress {
291
+ from_port = 3389
292
+ to_port = 3389
293
+ protocol = "udp"
294
+ cidr_blocks = ["0.0.0.0/0"]
295
+ }
296
+
297
+ ingress {
298
+ from_port = 3389
299
+ to_port = 3389
300
+ protocol = "tcp"
301
+ cidr_blocks = ["0.0.0.0/0"]
302
+ }
303
+
304
+ ingress {
305
+ from_port = 8
306
+ to_port = -1
307
+ protocol = "icmp"
308
+ cidr_blocks = ["0.0.0.0/0"]
309
+ }
310
+
311
+
312
+ egress {
313
+ from_port = 0
314
+ to_port = 0
315
+ protocol = "-1"
316
+ cidr_blocks = ["0.0.0.0/0"]
317
+ }
318
+
319
+ tags {
320
+ "Customer" = "${var.customer}"
321
+ "Name" = "wombat security group"
322
+ "TTL" = "${var.ttl}"
323
+ }
324
+ }
325
+
326
+ output "workstation" {
327
+ value = "${aws_instance.workstation.public_ip}"
328
+ }
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.unshift File.expand_path("../lib", __FILE__)
3
+ require "wombat/version"
4
+ require "English"
5
+
6
+ Gem::Specification.new do |gem|
7
+ gem.name = "wombat-cli"
8
+ gem.version = Wombat::VERSION
9
+ gem.license = "Apache-2.0"
10
+ gem.authors = ["Andre Elizondo", "Seth Thomas"]
11
+ gem.email = ["sthomas@chef.io"]
12
+ gem.description = "With a tough barrel-like body, short powerful legs, " \
13
+ "and long flat claws, the wombat walks with a shuffling " \
14
+ "gait but is extremely adept at tunneling"
15
+ gem.summary = "Make Chef demos delightful with Wombat"
16
+ gem.homepage = "http://kitchen.ci"
17
+
18
+ gem.files = `git ls-files`.split($INPUT_RECORD_SEPARATOR)
19
+ gem.bindir = "bin"
20
+ gem.executables = %w[wombat]
21
+ gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
22
+ gem.require_paths = ["lib"]
23
+
24
+ gem.required_ruby_version = ">= 2.3.1"
25
+
26
+ gem.add_dependency 'rake', '~> 11.2'
27
+ gem.add_dependency 'berkshelf', '~> 5.0'
28
+ gem.add_dependency 'net-ssh', '~> 3.2'
29
+ gem.add_dependency 'parallel', '~> 1.9'
30
+ gem.add_dependency 'aws-sdk', '~> 2.5'
31
+ gem.add_dependency 'racker', '~> 0.2'
32
+ end
@@ -0,0 +1,52 @@
1
+ ---
2
+ name: wombat
3
+ # Uncomment domain_prefix if you wish to prepend your generated domain.
4
+ # Ex: The below example would create foo-chef.animals.biz.
5
+ # domain_prefix: foo-
6
+ certs: ['automate', 'chef', 'compliance']
7
+ domain: animals.biz
8
+ enterprise: mammals
9
+ org: marsupials
10
+ build-nodes: '1'
11
+ workstations: '1'
12
+ workstation-passwd: 'RL9@T40BTmXh'
13
+ infranodes:
14
+ # Add a list of infrastructure nodes here with their associated run list to have these nodes precreated on the Chef Server
15
+ # Note: the cookbook content won't be automatically uploaded, only the node object will be created with the run list added,
16
+ # if the content doesn't exist at the first checkin the chef-client run will fail.
17
+ # acceptance:
18
+ # environment: web-acceptance
19
+ # run_list:
20
+ # - recipe[bacon::chewy]
21
+ # delivered:
22
+ # environment: web-delivered
23
+ # run_list:
24
+ # - recipe[bacon::crispy]
25
+ version: 0.1.0
26
+ ttl: 6
27
+ # Uncomment conf and subkeys to override the listed defaults.
28
+ # These paths are relative to the directory of this file.
29
+ # conf:
30
+ # key_dir: 'keys'
31
+ # cookbook_dir: 'cookbooks'
32
+ # packer_dir: 'packer'
33
+ # templates_dir: 'templates'
34
+ # log_dir: 'logs'
35
+ products:
36
+ chef: stable-12.13.37
37
+ chef-server: stable-12.8.0
38
+ chefdk: stable-0.17.17
39
+ compliance: stable-1.3.1
40
+ automate: stable-0.5.125
41
+ aws:
42
+ region: ap-southeast-2
43
+ az: ap-southeast-2c
44
+ keypair: keypair-ap-southeast-2
45
+ source_ami:
46
+ ubuntu: ami-8c4cb0ec
47
+ windows: ami-87c037e7
48
+ gce:
49
+ zone: us-east1-b
50
+ source_image:
51
+ ubuntu: ubuntu-1404-trusty-v20160809a
52
+ windows: windows-server-2012-r2-dc-v20160809