wombat-cli 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/DESIGN.md +2 -1
- data/README.md +10 -32
- data/Rakefile +1 -52
- data/cookbooks/automate/.kitchen.ec2.yml +8 -1
- data/cookbooks/automate/.kitchen.yml +0 -1
- data/cookbooks/automate/metadata.rb +0 -2
- data/cookbooks/automate/recipes/default.rb +4 -3
- data/cookbooks/automate/test/integration/default/automate_spec.rb +3 -2
- data/cookbooks/build_node/.kitchen.ec2.yml +8 -1
- data/cookbooks/build_node/metadata.rb +0 -3
- data/cookbooks/build_node/recipes/default.rb +5 -2
- data/cookbooks/build_node/test/integration/default/build-node_spec.rb +3 -2
- data/cookbooks/chef_server/.kitchen.ec2.yml +8 -0
- data/cookbooks/chef_server/.kitchen.yml +0 -1
- data/cookbooks/chef_server/metadata.rb +0 -2
- data/cookbooks/chef_server/recipes/{cheffish.rb → bootstrap_users.rb} +1 -1
- data/cookbooks/chef_server/recipes/default.rb +30 -14
- data/cookbooks/chef_server/test/integration/default/chef_server_spec.rb +7 -4
- data/cookbooks/compliance/.kitchen.ec2.yml +8 -0
- data/cookbooks/compliance/metadata.rb +0 -1
- data/cookbooks/compliance/recipes/default.rb +5 -7
- data/cookbooks/compliance/test/integration/default/compliance.rb +3 -2
- data/cookbooks/infranodes/.kitchen.ec2.yml +23 -2
- data/cookbooks/infranodes/recipes/default.rb +25 -9
- data/cookbooks/infranodes/test/fixtures/cookbooks/mock_data/recipes/default.rb +9 -3
- data/cookbooks/infranodes/test/integration/default/infranodes_spec.rb +11 -9
- data/cookbooks/wombat/attributes/default.rb +2 -0
- data/cookbooks/wombat/metadata.rb +2 -0
- data/cookbooks/wombat/recipes/authorized-keys.rb +10 -0
- data/cookbooks/workstation/recipes/certs-keys.rb +2 -1
- data/cookbooks/workstation/templates/default/ssh_config.erb +2 -2
- data/lib/wombat/build.rb +138 -120
- data/lib/wombat/cli.rb +8 -0
- data/lib/wombat/common.rb +27 -12
- data/lib/wombat/deploy.rb +33 -26
- data/lib/wombat/version.rb +1 -1
- data/packer/automate.json +7 -5
- data/packer/build-node.json +6 -4
- data/packer/chef-server.json +11 -6
- data/packer/compliance.json +6 -5
- data/packer/infranodes-windows.json +100 -0
- data/packer/infranodes.json +6 -5
- data/packer/workstation.json +5 -4
- data/stacks/.gitkeep +0 -0
- data/templates/bootstrap-aws.erb +2 -2
- data/templates/cfn.json.erb +16 -15
- data/wombat.example.yml +45 -35
- metadata +5 -15
- data/packer/mock-data/.gitignore +0 -16
- data/packer/mock-data/.kitchen.yml +0 -21
- data/packer/mock-data/Berksfile +0 -3
- data/packer/mock-data/README.md +0 -4
- data/packer/mock-data/chefignore +0 -102
- data/packer/mock-data/metadata.rb +0 -7
- data/packer/mock-data/recipes/default.rb +0 -69
- data/packer/mock-data/spec/spec_helper.rb +0 -2
- data/packer/mock-data/spec/unit/recipes/default_spec.rb +0 -20
- data/packer/mock-data/test/integration/default/serverspec/default_spec.rb +0 -9
- data/packer/mock-data/test/integration/helpers/serverspec/spec_helper.rb +0 -8
data/packer/build-node.json
CHANGED
@@ -24,6 +24,7 @@
|
|
24
24
|
"enterprise": "mammals",
|
25
25
|
"node-number": "1",
|
26
26
|
"org": "marsupials",
|
27
|
+
"ssh_username": "ubuntu",
|
27
28
|
"workstations": "1"
|
28
29
|
},
|
29
30
|
|
@@ -33,11 +34,11 @@
|
|
33
34
|
"secret_key": "{{user `aws_secret_key`}}",
|
34
35
|
"region": "{{user `aws_region`}}",
|
35
36
|
"source_ami": "{{user `aws_source_ami`}}",
|
36
|
-
"instance_type": "
|
37
|
+
"instance_type": "t2.micro",
|
37
38
|
"communicator": "ssh",
|
38
39
|
"associate_public_ip_address": true,
|
39
40
|
"ssh_private_ip": false,
|
40
|
-
"ssh_username": "
|
41
|
+
"ssh_username": "{{user `ssh_username`}}",
|
41
42
|
"ssh_pty" : true,
|
42
43
|
"ami_name": "build-node-{{user `node-number`}}-{{timestamp}}"
|
43
44
|
},
|
@@ -68,7 +69,7 @@
|
|
68
69
|
"disk_size": "80",
|
69
70
|
"image_name": "build-node-{{user `node-number`}}-{{timestamp}}",
|
70
71
|
"machine_type": "n1-standard-2",
|
71
|
-
"ssh_username": "
|
72
|
+
"ssh_username": "{{user `ssh_username`}}",
|
72
73
|
"ssh_pty" : true
|
73
74
|
}
|
74
75
|
],
|
@@ -88,9 +89,10 @@
|
|
88
89
|
"type": "chef-solo",
|
89
90
|
"install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
|
90
91
|
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/build_node" ],
|
91
|
-
"run_list": [ "
|
92
|
+
"run_list": [ "build_node", "wombat::authorized-keys", "wombat::etc-hosts" ],
|
92
93
|
"json": {
|
93
94
|
"demo": {
|
95
|
+
"admin-user": "{{user `ssh_username`}}",
|
94
96
|
"domain_prefix": "{{user `domain_prefix`}}",
|
95
97
|
"domain": "{{user `domain`}}",
|
96
98
|
"enterprise": "{{user `enterprise`}}",
|
data/packer/chef-server.json
CHANGED
@@ -22,7 +22,10 @@
|
|
22
22
|
"domain": "animals.biz",
|
23
23
|
"domain_prefix": "",
|
24
24
|
"enterprise": "mammals",
|
25
|
+
"manage": "stable-latest",
|
25
26
|
"org": "marsupials",
|
27
|
+
"push-jobs-server": "stable-latest",
|
28
|
+
"ssh_username": "ubuntu",
|
26
29
|
"workstations": "1"
|
27
30
|
},
|
28
31
|
|
@@ -32,11 +35,10 @@
|
|
32
35
|
"secret_key": "{{user `aws_secret_key`}}",
|
33
36
|
"region": "{{user `aws_region`}}",
|
34
37
|
"source_ami": "{{user `aws_source_ami`}}",
|
35
|
-
"instance_type": "
|
38
|
+
"instance_type": "m4.large",
|
36
39
|
"communicator": "ssh",
|
37
40
|
"associate_public_ip_address": true,
|
38
|
-
"
|
39
|
-
"ssh_username": "ubuntu",
|
41
|
+
"ssh_username": "{{user `ssh_username`}}",
|
40
42
|
"ssh_pty" : true,
|
41
43
|
"ami_name": "chef-{{timestamp}}"
|
42
44
|
},
|
@@ -67,7 +69,7 @@
|
|
67
69
|
"disk_size": "80",
|
68
70
|
"image_name": "chef-{{timestamp}}",
|
69
71
|
"machine_type": "n1-standard-2",
|
70
|
-
"ssh_username": "
|
72
|
+
"ssh_username": "{{user `ssh_username`}}",
|
71
73
|
"ssh_pty" : true
|
72
74
|
}
|
73
75
|
],
|
@@ -87,9 +89,10 @@
|
|
87
89
|
"type": "chef-solo",
|
88
90
|
"install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
|
89
91
|
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/chef_server" ],
|
90
|
-
"run_list": [ "
|
92
|
+
"run_list": [ "chef_server", "wombat::authorized-keys", "wombat::etc-hosts" ],
|
91
93
|
"json": {
|
92
94
|
"demo": {
|
95
|
+
"admin-user": "{{user `ssh_username`}}",
|
93
96
|
"domain_prefix": "{{user `domain_prefix`}}",
|
94
97
|
"domain": "{{user `domain`}}",
|
95
98
|
"enterprise": "{{user `enterprise`}}",
|
@@ -97,7 +100,9 @@
|
|
97
100
|
"build-nodes": "{{user `build-nodes`}}",
|
98
101
|
"workstations": "{{user `workstations`}}",
|
99
102
|
"versions": {
|
100
|
-
"chef-server": "{{user `chef-server`}}"
|
103
|
+
"chef-server": "{{user `chef-server`}}",
|
104
|
+
"push-jobs-server": "{{user `push-jobs-server`}}",
|
105
|
+
"manage": "{{user `manage`}}"
|
101
106
|
}
|
102
107
|
}
|
103
108
|
}
|
data/packer/compliance.json
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
"domain_prefix": "",
|
24
24
|
"enterprise": "mammals",
|
25
25
|
"org": "marsupials",
|
26
|
+
"ssh_username": "ubuntu",
|
26
27
|
"workstations": "1"
|
27
28
|
},
|
28
29
|
|
@@ -32,11 +33,10 @@
|
|
32
33
|
"secret_key": "{{user `aws_secret_key`}}",
|
33
34
|
"region": "{{user `aws_region`}}",
|
34
35
|
"source_ami": "{{user `aws_source_ami`}}",
|
35
|
-
"instance_type": "
|
36
|
+
"instance_type": "t2.medium",
|
36
37
|
"communicator": "ssh",
|
37
38
|
"associate_public_ip_address": true,
|
38
|
-
"
|
39
|
-
"ssh_username": "ubuntu",
|
39
|
+
"ssh_username": "{{user `ssh_username`}}",
|
40
40
|
"ssh_pty" : true,
|
41
41
|
"ami_name": "compliance-{{timestamp}}"
|
42
42
|
},
|
@@ -67,7 +67,7 @@
|
|
67
67
|
"disk_size": "80",
|
68
68
|
"image_name": "compliance-{{timestamp}}",
|
69
69
|
"machine_type": "n1-standard-2",
|
70
|
-
"ssh_username": "
|
70
|
+
"ssh_username": "{{user `ssh_username`}}",
|
71
71
|
"ssh_pty" : true
|
72
72
|
}
|
73
73
|
],
|
@@ -87,9 +87,10 @@
|
|
87
87
|
"type": "chef-solo",
|
88
88
|
"install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
|
89
89
|
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/compliance" ],
|
90
|
-
"run_list": [ "
|
90
|
+
"run_list": [ "compliance", "wombat::authorized-keys", "wombat::etc-hosts" ],
|
91
91
|
"json": {
|
92
92
|
"demo": {
|
93
|
+
"admin-user": "{{user `ssh_username`}}",
|
93
94
|
"domain_prefix": "{{user `domain_prefix`}}",
|
94
95
|
"domain": "{{user `domain`}}",
|
95
96
|
"enterprise": "{{user `enterprise`}}",
|
@@ -0,0 +1,100 @@
|
|
1
|
+
{
|
2
|
+
"variables": {
|
3
|
+
"aws_access_key": "{{env `AWS_ACCESS_KEY_ID`}}",
|
4
|
+
"aws_secret_key": "{{env `AWS_SECRET_ACCESS_KEY`}}",
|
5
|
+
"aws_region": "{{env `AWS_REGION`}}",
|
6
|
+
"aws_source_ami": "ami-87c037e7",
|
7
|
+
"azure_client_id": "{{env `AZURE_CLIENT_ID`}}",
|
8
|
+
"azure_tenant_id": "{{env `AZURE_TENANT_ID`}}",
|
9
|
+
"azure_client_secret": "{{env `AZURE_CLIENT_SECRET`}}",
|
10
|
+
"azure_subscription_id": "{{env `AZURE_SUBSCRIPTION_ID`}}",
|
11
|
+
"azure_storage_account": "{{env `AZURE_STORAGE_ACCOUNT`}}",
|
12
|
+
"azure_resource_group": "{{env `AZURE_RESOURCE_GROUP`}}",
|
13
|
+
"gce_account_file": "{{env `GCE_ACCOUNT_FILE`}}",
|
14
|
+
"gce_project_id": "{{env `GCE_PROJECT_ID`}}",
|
15
|
+
"gce_zone": "{{env `GCE_ZONE`}}",
|
16
|
+
"gce_source_image": "windows-server-2012-r2-dc-v20160809",
|
17
|
+
"build-nodes": "1",
|
18
|
+
"chef_channel": "stable",
|
19
|
+
"chef_install_url": "curl -L https://omnitruck.chef.io/install.sh",
|
20
|
+
"chef_ver": "latest",
|
21
|
+
"domain": "animals.biz",
|
22
|
+
"domain_prefix": "",
|
23
|
+
"enterprise": "mammals",
|
24
|
+
"node-name": "acceptance",
|
25
|
+
"org": "marsupials",
|
26
|
+
"ssh_username": "ubuntu",
|
27
|
+
"winrm_password": "RL9@T40BTmXh",
|
28
|
+
"winrm_username": "Administrator",
|
29
|
+
"workstations": "1"
|
30
|
+
},
|
31
|
+
|
32
|
+
"builders": [
|
33
|
+
{ "type": "amazon-ebs",
|
34
|
+
"access_key": "{{user `aws_access_key`}}",
|
35
|
+
"secret_key": "{{user `aws_secret_key`}}",
|
36
|
+
"region": "{{user `aws_region`}}",
|
37
|
+
"source_ami": "{{user `aws_source_ami`}}",
|
38
|
+
"instance_type": "m4.large",
|
39
|
+
"communicator": "winrm",
|
40
|
+
"associate_public_ip_address": true,
|
41
|
+
"winrm_port": 5985,
|
42
|
+
"winrm_username": "{{user `winrm_username`}}",
|
43
|
+
"winrm_password": "{{user `winrm_password`}}",
|
44
|
+
"user_data_file": "{{template_dir}}/scripts/bootstrap-aws.txt",
|
45
|
+
"ami_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}"
|
46
|
+
},
|
47
|
+
{
|
48
|
+
"type": "googlecompute",
|
49
|
+
"account_file": "{{user `gce_account_file`}}",
|
50
|
+
"project_id": "{{user `gce_project_id`}}",
|
51
|
+
"source_image": "{{user `gce_source_image`}}",
|
52
|
+
"zone": "{{user `gce_zone`}}",
|
53
|
+
"disk_type": "pd-ssd",
|
54
|
+
"disk_size": "80",
|
55
|
+
"machine_type": "n1-highcpu-8",
|
56
|
+
"image_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}",
|
57
|
+
"communicator": "winrm",
|
58
|
+
"winrm_port": 5985,
|
59
|
+
"winrm_username": "{{user `winrm_username`}}",
|
60
|
+
"winrm_password": "{{user `winrm_password`}}",
|
61
|
+
"metadata": {
|
62
|
+
"windows-startup-script-url": "gs://wombat-bootstrap/win-bootstrap.ps1"
|
63
|
+
}
|
64
|
+
}
|
65
|
+
],
|
66
|
+
|
67
|
+
"provisioners" : [
|
68
|
+
{
|
69
|
+
"type": "file",
|
70
|
+
"source": "{{pwd}}/keys/",
|
71
|
+
"destination": "C:\\Windows\\Temp"
|
72
|
+
},
|
73
|
+
{
|
74
|
+
"type": "file",
|
75
|
+
"source": "{{template_dir}}/files/",
|
76
|
+
"destination": "C:\\Windows\\Temp"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"type": "chef-solo",
|
80
|
+
"install_command": "powershell.exe -Command \". { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -channel {{user `chef_channel`}} -version {{user `chef_ver`}}\"",
|
81
|
+
"guest_os_type": "windows",
|
82
|
+
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/infranodes" ],
|
83
|
+
"run_list": [ "infranodes", "wombat::etc-hosts" ],
|
84
|
+
"json": {
|
85
|
+
"demo": {
|
86
|
+
"admin-user": "{{user `ssh_username`}}",
|
87
|
+
"build-nodes": "{{user `build-nodes`}}",
|
88
|
+
"domain_prefix": "{{user `domain_prefix`}}",
|
89
|
+
"domain": "{{user `domain`}}",
|
90
|
+
"enterprise": "{{user `enterprise`}}",
|
91
|
+
"node-name": "{{user `node-name`}}",
|
92
|
+
"org": "{{user `org`}}",
|
93
|
+
"versions": {
|
94
|
+
"chef": "{{user `chef_channel`}}-{{user `chef_ver`}}"
|
95
|
+
}
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
]
|
100
|
+
}
|
data/packer/infranodes.json
CHANGED
@@ -23,6 +23,7 @@
|
|
23
23
|
"enterprise": "mammals",
|
24
24
|
"node-name": "acceptance",
|
25
25
|
"org": "marsupials",
|
26
|
+
"ssh_username": "ubuntu",
|
26
27
|
"workstations": "1"
|
27
28
|
},
|
28
29
|
|
@@ -32,11 +33,10 @@
|
|
32
33
|
"secret_key": "{{user `aws_secret_key`}}",
|
33
34
|
"region": "{{user `aws_region`}}",
|
34
35
|
"source_ami": "{{user `aws_source_ami`}}",
|
35
|
-
"instance_type": "
|
36
|
+
"instance_type": "t2.medium",
|
36
37
|
"communicator": "ssh",
|
37
38
|
"associate_public_ip_address": true,
|
38
|
-
"
|
39
|
-
"ssh_username": "ubuntu",
|
39
|
+
"ssh_username": "{{user `ssh_username`}}",
|
40
40
|
"ssh_pty" : true,
|
41
41
|
"ami_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}"
|
42
42
|
},
|
@@ -68,7 +68,7 @@
|
|
68
68
|
"image_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}",
|
69
69
|
"machine_type": "n1-standard-2",
|
70
70
|
"image_name": "chef-{{timestamp}}",
|
71
|
-
"ssh_username": "
|
71
|
+
"ssh_username": "{{user `ssh_username`}}",
|
72
72
|
"ssh_pty" : true
|
73
73
|
}
|
74
74
|
],
|
@@ -88,9 +88,10 @@
|
|
88
88
|
"type": "chef-solo",
|
89
89
|
"install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
|
90
90
|
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/infranodes" ],
|
91
|
-
"run_list": [ "infranodes" ],
|
91
|
+
"run_list": [ "infranodes", "wombat::authorized-keys", "wombat::etc-hosts" ],
|
92
92
|
"json": {
|
93
93
|
"demo": {
|
94
|
+
"admin-user": "{{user `ssh_username`}}",
|
94
95
|
"domain_prefix": "{{user `domain_prefix`}}",
|
95
96
|
"domain": "{{user `domain`}}",
|
96
97
|
"enterprise": "{{user `enterprise`}}",
|
data/packer/workstation.json
CHANGED
@@ -20,6 +20,7 @@
|
|
20
20
|
"domain": "animals.biz",
|
21
21
|
"enterprise": "mammals",
|
22
22
|
"org": "marsupials",
|
23
|
+
"ssh_username": "ubuntu",
|
23
24
|
"winrm_password": "RL9@T40BTmXh",
|
24
25
|
"winrm_username": "Administrator",
|
25
26
|
"workstation-number": "1",
|
@@ -32,10 +33,9 @@
|
|
32
33
|
"secret_key": "{{user `aws_secret_key`}}",
|
33
34
|
"region": "{{user `aws_region`}}",
|
34
35
|
"source_ami": "{{user `aws_source_ami`}}",
|
35
|
-
"instance_type": "
|
36
|
+
"instance_type": "m4.large",
|
36
37
|
"communicator": "winrm",
|
37
38
|
"associate_public_ip_address": true,
|
38
|
-
"ssh_private_ip": false,
|
39
39
|
"winrm_port": 5985,
|
40
40
|
"winrm_username": "{{user `winrm_username`}}",
|
41
41
|
"winrm_password": "{{user `winrm_password`}}",
|
@@ -57,7 +57,7 @@
|
|
57
57
|
"winrm_username": "{{user `winrm_username`}}",
|
58
58
|
"winrm_password": "{{user `winrm_password`}}",
|
59
59
|
"metadata": {
|
60
|
-
"windows-startup-script-
|
60
|
+
"windows-startup-script-url": "gs://wombat-bootstrap/win-bootstrap.ps1"
|
61
61
|
}
|
62
62
|
}
|
63
63
|
],
|
@@ -78,9 +78,10 @@
|
|
78
78
|
"install_command": "powershell.exe -Command \". { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -channel {{user `chef_channel`}} -version {{user `chef_ver`}}\"",
|
79
79
|
"guest_os_type": "windows",
|
80
80
|
"cookbook_paths": [ "{{pwd}}/vendored-cookbooks/workstation" ],
|
81
|
-
"run_list": [ "workstation" ],
|
81
|
+
"run_list": [ "workstation", "wombat::etc-hosts" ],
|
82
82
|
"json": {
|
83
83
|
"demo": {
|
84
|
+
"admin-user": "{{user `ssh_username`}}",
|
84
85
|
"domain_prefix": "{{user `domain_prefix`}}",
|
85
86
|
"domain": "{{user `domain`}}",
|
86
87
|
"enterprise": "{{user `enterprise`}}",
|
data/stacks/.gitkeep
ADDED
File without changes
|
data/templates/bootstrap-aws.erb
CHANGED
@@ -17,7 +17,7 @@ write-host "(host) setting up WinRM"
|
|
17
17
|
cmd.exe /c winrm quickconfig -q
|
18
18
|
cmd.exe /c winrm quickconfig '-transport:http'
|
19
19
|
cmd.exe /c winrm set "winrm/config" '@{MaxTimeoutms="1800000"}'
|
20
|
-
cmd.exe /c winrm set "winrm/config/winrs" '@{MaxMemoryPerShellMB="
|
20
|
+
cmd.exe /c winrm set "winrm/config/winrs" '@{MaxMemoryPerShellMB="3072"}'
|
21
21
|
cmd.exe /c winrm set "winrm/config/service" '@{AllowUnencrypted="true"}'
|
22
22
|
cmd.exe /c winrm set "winrm/config/client" '@{AllowUnencrypted="true"}'
|
23
23
|
cmd.exe /c winrm set "winrm/config/service/auth" '@{Basic="true"}'
|
@@ -31,6 +31,6 @@ cmd.exe /c sc config winrm start= auto
|
|
31
31
|
cmd.exe /c net start winrm
|
32
32
|
cmd.exe /c wmic useraccount where "name='Administrator'" set PasswordExpires=FALSE
|
33
33
|
|
34
|
-
|
34
|
+
set-executionpolicy -executionpolicy bypass -force
|
35
35
|
|
36
36
|
</powershell>
|
data/templates/cfn.json.erb
CHANGED
@@ -44,11 +44,6 @@
|
|
44
44
|
"Default": "<%= @chef_server_ami %>",
|
45
45
|
"Description": "AMI ID for the Chef Server"
|
46
46
|
},
|
47
|
-
"AutomateAMI": {
|
48
|
-
"Type": "String",
|
49
|
-
"Default": "<%= @automate_ami %>",
|
50
|
-
"Description": "AMI ID for the Automate Server"
|
51
|
-
},
|
52
47
|
"ComplianceAMI": {
|
53
48
|
"Type": "String",
|
54
49
|
"Default": "<%= @compliance_ami %>",
|
@@ -73,8 +68,13 @@
|
|
73
68
|
"Type": "String",
|
74
69
|
"Default": "<%= @workstation_ami[i] %>",
|
75
70
|
"Description": "AMI ID for the Windows Workstation"
|
76
|
-
}
|
71
|
+
},
|
77
72
|
<% end -%>
|
73
|
+
"AutomateAMI": {
|
74
|
+
"Type": "String",
|
75
|
+
"Default": "<%= @automate_ami %>",
|
76
|
+
"Description": "AMI ID for the Automate Server"
|
77
|
+
}
|
78
78
|
},
|
79
79
|
"Resources": {
|
80
80
|
"VPC": {
|
@@ -645,17 +645,18 @@
|
|
645
645
|
}
|
646
646
|
}
|
647
647
|
},
|
648
|
-
"Outputs":
|
649
|
-
<%
|
650
|
-
|
651
|
-
|
652
|
-
"
|
653
|
-
|
654
|
-
|
648
|
+
"Outputs":
|
649
|
+
<% workstations_hash = {} -%>
|
650
|
+
<% 1.upto(@workstations) do |i|
|
651
|
+
workstations_hash["WindowsWorkstation#{i.to_s}PubDNS"] = {
|
652
|
+
"Description" => "Public IP address of the Windows Workstation",
|
653
|
+
"Value" => {
|
654
|
+
"Fn::GetAtt" => [
|
655
|
+
"WindowsWorkstation#{i.to_s}",
|
655
656
|
"PublicIp"
|
656
657
|
]
|
657
658
|
}
|
658
659
|
}
|
659
|
-
|
660
|
-
|
660
|
+
end -%>
|
661
|
+
<%= workstations_hash.to_json %>
|
661
662
|
}
|
data/wombat.example.yml
CHANGED
@@ -3,48 +3,58 @@ name: wombat
|
|
3
3
|
# Uncomment domain_prefix if you wish to prepend your generated domain.
|
4
4
|
# Ex: The below example would create foo-chef.animals.biz.
|
5
5
|
# domain_prefix: foo-
|
6
|
-
certs: ['automate', 'chef', 'compliance']
|
7
6
|
domain: animals.biz
|
8
7
|
enterprise: mammals
|
9
8
|
org: marsupials
|
10
|
-
|
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
|
9
|
+
certs: ['automate', 'chef', 'compliance']
|
26
10
|
ttl: 6
|
27
|
-
|
28
|
-
#
|
29
|
-
#
|
30
|
-
|
31
|
-
# cookbook_dir: 'cookbooks'
|
32
|
-
# packer_dir: 'packer'
|
33
|
-
# templates_dir: 'templates'
|
34
|
-
# log_dir: 'logs'
|
11
|
+
linux: ubuntu
|
12
|
+
# Must meet the minimum Microsoft Complexity Requirements
|
13
|
+
# https://technet.microsoft.com/en-us/library/hh994562(v=ws.11).aspx)
|
14
|
+
version: 0.2.1
|
35
15
|
products:
|
36
|
-
chef: stable-
|
37
|
-
chef-server: stable-
|
38
|
-
chefdk: stable-
|
39
|
-
compliance: stable-
|
40
|
-
automate: stable-
|
16
|
+
chef: stable-latest
|
17
|
+
chef-server: stable-latest
|
18
|
+
chefdk: stable-latest
|
19
|
+
compliance: stable-latest
|
20
|
+
automate: stable-latest
|
21
|
+
push-jobs-server: stable-latest
|
22
|
+
manage: stable-latest
|
23
|
+
build-nodes:
|
24
|
+
count: 3
|
25
|
+
workstations:
|
26
|
+
platform: windows
|
27
|
+
password: 'ZL9@T40BTmXhZ'
|
28
|
+
count: 1
|
29
|
+
infranodes:
|
30
|
+
# Add a list of infrastructure nodes here with their associated run list to have these nodes precreated on the Chef Server
|
31
|
+
# Note: the cookbook content won't be automatically uploaded, only the node object will be created with the run list added,
|
32
|
+
# if the content doesn't exist at the first checkin the chef-client run will fail.
|
33
|
+
# acceptance:
|
34
|
+
# platform: windows
|
35
|
+
# environment: web-acceptance
|
36
|
+
# run_list:
|
37
|
+
# - recipe[bacon::chewy]
|
38
|
+
# delivered:
|
39
|
+
# environment: web-delivered
|
40
|
+
# run_list:
|
41
|
+
# - recipe[bacon::crispy]
|
42
|
+
conf:
|
43
|
+
key_dir: 'keys'
|
44
|
+
cookbook_dir: 'cookbooks'
|
45
|
+
packer_dir: 'packer'
|
46
|
+
templates_dir: 'templates'
|
47
|
+
log_dir: 'logs'
|
48
|
+
stack_dir: 'stacks'
|
49
|
+
audio: false
|
41
50
|
aws:
|
42
|
-
|
43
|
-
|
44
|
-
|
51
|
+
az: us-east-1e
|
52
|
+
keypair: keypair-us-east
|
53
|
+
region: us-east-1
|
45
54
|
source_ami:
|
46
|
-
ubuntu: ami-
|
47
|
-
windows: ami-
|
55
|
+
ubuntu: ami-8e0b9499
|
56
|
+
windows: ami-bd3ba0aa
|
57
|
+
centos: ami-6d1c2007
|
48
58
|
gce:
|
49
59
|
zone: us-east1-b
|
50
60
|
source_image:
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wombat-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andre Elizondo
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-
|
12
|
+
date: 2016-10-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -163,7 +163,7 @@ files:
|
|
163
163
|
- cookbooks/chef_server/README.md
|
164
164
|
- cookbooks/chef_server/chefignore
|
165
165
|
- cookbooks/chef_server/metadata.rb
|
166
|
-
- cookbooks/chef_server/recipes/
|
166
|
+
- cookbooks/chef_server/recipes/bootstrap_users.rb
|
167
167
|
- cookbooks/chef_server/recipes/default.rb
|
168
168
|
- cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.crt
|
169
169
|
- cookbooks/chef_server/test/fixtures/cookbooks/mock_data/files/automate.key
|
@@ -283,19 +283,10 @@ files:
|
|
283
283
|
- packer/chef-server.json
|
284
284
|
- packer/compliance.json
|
285
285
|
- packer/files/.gitkeep
|
286
|
+
- packer/infranodes-windows.json
|
286
287
|
- packer/infranodes.json
|
287
|
-
- packer/mock-data/.gitignore
|
288
|
-
- packer/mock-data/.kitchen.yml
|
289
|
-
- packer/mock-data/Berksfile
|
290
|
-
- packer/mock-data/README.md
|
291
|
-
- packer/mock-data/chefignore
|
292
|
-
- packer/mock-data/metadata.rb
|
293
|
-
- packer/mock-data/recipes/default.rb
|
294
|
-
- packer/mock-data/spec/spec_helper.rb
|
295
|
-
- packer/mock-data/spec/unit/recipes/default_spec.rb
|
296
|
-
- packer/mock-data/test/integration/default/serverspec/default_spec.rb
|
297
|
-
- packer/mock-data/test/integration/helpers/serverspec/spec_helper.rb
|
298
288
|
- packer/workstation.json
|
289
|
+
- stacks/.gitkeep
|
299
290
|
- templates/bootstrap-aws.erb
|
300
291
|
- templates/cfn.json.erb
|
301
292
|
- terraform/README.md
|
@@ -328,4 +319,3 @@ signing_key:
|
|
328
319
|
specification_version: 4
|
329
320
|
summary: Make Chef demos delightful with Wombat
|
330
321
|
test_files: []
|
331
|
-
has_rdoc:
|
data/packer/mock-data/.gitignore
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
---
|
2
|
-
driver:
|
3
|
-
name: vagrant
|
4
|
-
|
5
|
-
provisioner:
|
6
|
-
name: chef_zero
|
7
|
-
|
8
|
-
# Uncomment the following verifier to leverage Inspec instead of Busser (the
|
9
|
-
# default verifier)
|
10
|
-
# verifier:
|
11
|
-
# name: inspec
|
12
|
-
|
13
|
-
platforms:
|
14
|
-
- name: ubuntu-14.04
|
15
|
-
- name: centos-7.1
|
16
|
-
|
17
|
-
suites:
|
18
|
-
- name: default
|
19
|
-
run_list:
|
20
|
-
- recipe[mock-data::default]
|
21
|
-
attributes:
|
data/packer/mock-data/Berksfile
DELETED
data/packer/mock-data/README.md
DELETED