wombat-cli 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +4 -0
  3. data/.travis.yml +27 -0
  4. data/CHANGELOG.md +15 -1
  5. data/Gemfile +3 -0
  6. data/README.md +2 -2
  7. data/Rakefile +25 -0
  8. data/bin/wombat +1 -1
  9. data/generator_files/cookbooks/automate/metadata.rb +1 -1
  10. data/generator_files/cookbooks/automate/recipes/update-users.rb +1 -1
  11. data/generator_files/cookbooks/chef_server/recipes/default.rb +24 -11
  12. data/generator_files/cookbooks/workstation/.kitchen.ec2.yml +2 -1
  13. data/generator_files/cookbooks/workstation/metadata.rb +1 -1
  14. data/generator_files/cookbooks/workstation/recipes/default.rb +1 -2
  15. data/generator_files/cookbooks/workstation/templates/default/ise_profile.ps1.erb +2 -2
  16. data/generator_files/cookbooks/workstation/test/integration/default/workstation_spec.rb +4 -4
  17. data/generator_files/packer/automate.json +129 -107
  18. data/generator_files/packer/build-node.json +134 -112
  19. data/generator_files/packer/chef-server.json +130 -108
  20. data/generator_files/packer/compliance.json +126 -104
  21. data/generator_files/packer/infranodes-windows.json +136 -97
  22. data/generator_files/packer/infranodes.json +127 -106
  23. data/generator_files/packer/workstation.json +134 -95
  24. data/generator_files/templates/arm.json.erb +576 -0
  25. data/generator_files/wombat.yml +6 -2
  26. data/lib/wombat/aws.rb +67 -0
  27. data/lib/wombat/build.rb +273 -184
  28. data/lib/wombat/cli.rb +182 -147
  29. data/lib/wombat/common.rb +228 -220
  30. data/lib/wombat/crypto.rb +65 -0
  31. data/lib/wombat/delete.rb +48 -18
  32. data/lib/wombat/deploy.rb +147 -34
  33. data/lib/wombat/init.rb +21 -19
  34. data/lib/wombat/latest.rb +27 -0
  35. data/lib/wombat/output.rb +31 -30
  36. data/lib/wombat/update.rb +13 -10
  37. data/lib/wombat/version.rb +1 -1
  38. data/spec/functional/common_spec.rb +26 -0
  39. data/spec/spec_helper.rb +103 -0
  40. data/spec/unit/common_spec.rb +116 -0
  41. data/wombat-cli.gemspec +2 -1
  42. metadata +36 -11
  43. /data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/{delivery.crt → automate.crt} +0 -0
  44. /data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/{delivery.key → automate.key} +0 -0
  45. /data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/{chef-server.crt → chef.crt} +0 -0
  46. /data/generator_files/cookbooks/workstation/test/fixtures/cookbooks/mock_data/files/{chef-server.key → chef.key} +0 -0
@@ -1,107 +1,129 @@
1
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-8e0b9499",
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": "ubuntu-1404-trusty-v20160809a",
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
- "compliance": "stable-latest",
22
- "domain": "animals.biz",
23
- "domain_prefix": "",
24
- "enterprise": "mammals",
25
- "org": "marsupials",
26
- "ssh_username": "ubuntu",
27
- "workstations": "1"
28
- },
29
-
30
- "builders": [
31
- { "type": "amazon-ebs",
32
- "access_key": "{{user `aws_access_key`}}",
33
- "secret_key": "{{user `aws_secret_key`}}",
34
- "region": "{{user `aws_region`}}",
35
- "source_ami": "{{user `aws_source_ami`}}",
36
- "instance_type": "t2.medium",
37
- "communicator": "ssh",
38
- "associate_public_ip_address": true,
39
- "ssh_username": "{{user `ssh_username`}}",
40
- "ssh_pty" : true,
41
- "ami_name": "compliance-{{timestamp}}"
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-8e0b9499",
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
+ "azure_object_id": "{{env `AZURE_OBJECT_ID`}}",
14
+ "azure_location": "",
15
+ "gce_account_file": "{{env `GCE_ACCOUNT_FILE`}}",
16
+ "gce_project_id": "{{env `GCE_PROJECT_ID`}}",
17
+ "gce_zone": "{{env `GCE_ZONE`}}",
18
+ "gce_source_image": "ubuntu-1404-trusty-v20160809a",
19
+ "build-nodes": "1",
20
+ "chef_channel": "stable",
21
+ "chef_install_url": "curl -L https://omnitruck.chef.io/install.sh",
22
+ "chef_ver": "latest",
23
+ "compliance": "stable-latest",
24
+ "domain": "animals.biz",
25
+ "domain_prefix": "",
26
+ "enterprise": "mammals",
27
+ "org": "marsupials",
28
+ "ssh_username": "ubuntu",
29
+ "workstations": "1"
42
30
  },
43
- {
44
- "type": "azure-arm",
45
- "client_id": "{{user `azure_client_id`}}",
46
- "client_secret": "{{user `azure_client_secret`}}",
47
- "resource_group_name": "{{user `azure_resource_group`}}",
48
- "storage_account": "{{user `azure_storage_account`}}",
49
- "subscription_id": "{{user `azure_subscription_id`}}",
50
- "tenant_id": "{{user `azure_tenant_id`}}",
51
- "capture_container_name": "images",
52
- "capture_name_prefix": "compliance",
53
- "image_publisher": "Canonical",
54
- "image_offer": "UbuntuServer",
55
- "image_sku": "14.04.3-LTS",
56
- "location": "West US",
57
- "vm_size": "Standard_D3_V2",
58
- "os_type": "Linux"
59
- },
60
- {
61
- "type": "googlecompute",
62
- "account_file": "{{user `gce_account_file`}}",
63
- "project_id": "{{user `gce_project_id`}}",
64
- "source_image": "{{user `gce_source_image`}}",
65
- "zone": "{{user `gce_zone`}}",
66
- "disk_type": "pd-ssd",
67
- "disk_size": "80",
68
- "image_name": "compliance-{{timestamp}}",
69
- "machine_type": "n1-standard-2",
70
- "ssh_username": "{{user `ssh_username`}}",
71
- "ssh_pty" : true
72
- }
73
- ],
74
-
75
- "provisioners" : [
76
- {
77
- "type": "file",
78
- "source": "{{template_dir}}/files/",
79
- "destination": "/tmp"
80
- },
81
- {
82
- "type": "file",
83
- "source": "{{pwd}}/keys/",
84
- "destination": "/tmp"
85
- },
86
- {
87
- "type": "chef-solo",
88
- "install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
89
- "cookbook_paths": [ "{{pwd}}/vendored-cookbooks/compliance" ],
90
- "run_list": [ "compliance", "wombat::authorized-keys", "wombat::etc-hosts" ],
91
- "json": {
92
- "demo": {
93
- "admin-user": "{{user `ssh_username`}}",
94
- "domain_prefix": "{{user `domain_prefix`}}",
95
- "domain": "{{user `domain`}}",
96
- "enterprise": "{{user `enterprise`}}",
97
- "org": "{{user `org`}}",
98
- "build-nodes": "{{user `build-nodes`}}",
99
- "workstations": "{{user `workstations`}}",
100
- "versions": {
101
- "compliance": "{{user `compliance`}}"
102
- }
31
+ "builders": [
32
+ {
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": "t2.medium",
39
+ "communicator": "ssh",
40
+ "associate_public_ip_address": true,
41
+ "ssh_username": "{{user `ssh_username`}}",
42
+ "ssh_pty": true,
43
+ "ami_name": "compliance-{{timestamp}}"
44
+ },
45
+ {
46
+ "type": "azure-arm",
47
+ "subscription_id": "{{user `azure_subscription_id`}}",
48
+ "client_id": "{{user `azure_client_id`}}",
49
+ "client_secret": "{{user `azure_client_secret`}}",
50
+ "tenant_id": "{{user `azure_tenant_id`}}",
51
+ "resource_group_name": "{{user `azure_resource_group`}}",
52
+ "storage_account": "{{user `azure_storage_account`}}",
53
+ "object_id": "{{user `azure_object_id`}}",
54
+ "capture_container_name": "images",
55
+ "capture_name_prefix": "compliance",
56
+ "os_type": "Linux",
57
+ "image_publisher": "Canonical",
58
+ "image_offer": "UbuntuServer",
59
+ "image_sku": "14.04.5-LTS",
60
+ "location": "{{user `azure_location`}}",
61
+ "vm_size": "Standard_DS3_v2",
62
+ "ssh_username": "{{user `ssh_username`}}",
63
+ "ssh_pty": true
64
+ },
65
+ {
66
+ "type": "googlecompute",
67
+ "account_file": "{{user `gce_account_file`}}",
68
+ "project_id": "{{user `gce_project_id`}}",
69
+ "source_image": "{{user `gce_source_image`}}",
70
+ "zone": "{{user `gce_zone`}}",
71
+ "disk_type": "pd-ssd",
72
+ "disk_size": "80",
73
+ "image_name": "compliance-{{timestamp}}",
74
+ "machine_type": "n1-standard-2",
75
+ "ssh_username": "{{user `ssh_username`}}",
76
+ "ssh_pty": true
77
+ }
78
+ ],
79
+ "provisioners": [
80
+ {
81
+ "type": "file",
82
+ "source": "{{pwd}}/files/",
83
+ "destination": "/tmp"
84
+ },
85
+ {
86
+ "type": "file",
87
+ "source": "{{pwd}}/keys/",
88
+ "destination": "/tmp"
89
+ },
90
+ {
91
+ "type": "chef-solo",
92
+ "install_command": "{{user `chef_install_url`}} | sudo bash -s -- -c {{user `chef_channel`}} -v {{user `chef_ver`}}",
93
+ "cookbook_paths": [
94
+ "{{pwd}}/vendored-cookbooks/compliance"
95
+ ],
96
+ "run_list": [
97
+ "compliance",
98
+ "wombat::authorized-keys",
99
+ "wombat::etc-hosts"
100
+ ],
101
+ "json": {
102
+ "demo": {
103
+ "admin-user": "{{user `ssh_username`}}",
104
+ "domain_prefix": "{{user `domain_prefix`}}",
105
+ "domain": "{{user `domain`}}",
106
+ "enterprise": "{{user `enterprise`}}",
107
+ "org": "{{user `org`}}",
108
+ "build-nodes": "{{user `build-nodes`}}",
109
+ "workstations": "{{user `workstations`}}",
110
+ "versions": {
111
+ "compliance": "{{user `compliance`}}"
112
+ }
113
+ }
114
+ }
115
+ },
116
+ {
117
+ "only": [
118
+ "azure-arm"
119
+ ],
120
+ "execute_command": "chmod +x {{ .Path }}; {{ .Vars }} sudo -E sh '{{ .Path }}'",
121
+ "inline": [
122
+ "/usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"
123
+ ],
124
+ "inline_shebang": "/bin/sh -x",
125
+ "type": "shell",
126
+ "skip_clean": true
103
127
  }
104
- }
105
- }
106
- ]
107
- }
128
+ ]
129
+ }
@@ -1,100 +1,139 @@
1
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}}"
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
+ "azure_object_id": "{{env `AZURE_OBJECT_ID`}}",
14
+ "azure_location": "",
15
+ "gce_account_file": "{{env `GCE_ACCOUNT_FILE`}}",
16
+ "gce_project_id": "{{env `GCE_PROJECT_ID`}}",
17
+ "gce_zone": "{{env `GCE_ZONE`}}",
18
+ "gce_source_image": "windows-server-2012-r2-dc-v20160809",
19
+ "build-nodes": "1",
20
+ "chef_channel": "stable",
21
+ "chef_install_url": "curl -L https://omnitruck.chef.io/install.sh",
22
+ "chef_ver": "latest",
23
+ "domain": "animals.biz",
24
+ "domain_prefix": "",
25
+ "enterprise": "mammals",
26
+ "node-name": "acceptance",
27
+ "org": "marsupials",
28
+ "ssh_username": "ubuntu",
29
+ "winrm_password": "RL9@T40BTmXh",
30
+ "winrm_username": "Administrator",
31
+ "workstations": "1"
46
32
  },
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
- }
33
+ "builders": [
34
+ {
35
+ "type": "amazon-ebs",
36
+ "access_key": "{{user `aws_access_key`}}",
37
+ "secret_key": "{{user `aws_secret_key`}}",
38
+ "region": "{{user `aws_region`}}",
39
+ "source_ami": "{{user `aws_source_ami`}}",
40
+ "instance_type": "m4.large",
41
+ "communicator": "winrm",
42
+ "associate_public_ip_address": true,
43
+ "winrm_port": 5985,
44
+ "winrm_username": "{{user `winrm_username`}}",
45
+ "winrm_password": "{{user `winrm_password`}}",
46
+ "user_data_file": "{{template_dir}}/scripts/bootstrap-aws.txt",
47
+ "ami_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}"
48
+ },
49
+ {
50
+ "type": "azure-arm",
51
+ "subscription_id": "{{user `azure_subscription_id`}}",
52
+ "client_id": "{{user `azure_client_id`}}",
53
+ "client_secret": "{{user `azure_client_secret`}}",
54
+ "tenant_id": "{{user `azure_tenant_id`}}",
55
+ "resource_group_name": "{{user `azure_resource_group`}}",
56
+ "storage_account": "{{user `azure_storage_account`}}",
57
+ "object_id": "{{user `azure_object_id`}}",
58
+ "capture_container_name": "images",
59
+ "capture_name_prefix": "automate-infranode-{{user `node-name`}}-{{timestamp}}",
60
+ "os_type": "Windows",
61
+ "image_publisher": "MicrosoftWindowsServer",
62
+ "image_offer": "WindowsServer",
63
+ "image_sku": "2012-R2-Datacenter",
64
+ "location": "{{user `azure_location`}}",
65
+ "vm_size": "Standard_DS3_v2",
66
+ "communicator": "winrm",
67
+ "winrm_use_ssl": "true",
68
+ "winrm_insecure": "true",
69
+ "winrm_port": 5986,
70
+ "winrm_timeout": "5m"
71
+ },
72
+ {
73
+ "type": "googlecompute",
74
+ "account_file": "{{user `gce_account_file`}}",
75
+ "project_id": "{{user `gce_project_id`}}",
76
+ "source_image": "{{user `gce_source_image`}}",
77
+ "zone": "{{user `gce_zone`}}",
78
+ "disk_type": "pd-ssd",
79
+ "disk_size": "80",
80
+ "machine_type": "n1-highcpu-8",
81
+ "image_name": "automate-infranode-{{user `node-name`}}-{{timestamp}}",
82
+ "communicator": "winrm",
83
+ "winrm_port": 5985,
84
+ "winrm_username": "{{user `winrm_username`}}",
85
+ "winrm_password": "{{user `winrm_password`}}",
86
+ "metadata": {
87
+ "windows-startup-script-url": "gs://wombat-bootstrap/win-bootstrap.ps1"
88
+ }
89
+ }
90
+ ],
91
+ "provisioners": [
92
+ {
93
+ "type": "file",
94
+ "source": "{{pwd}}/keys/",
95
+ "destination": "C:\\Windows\\Temp"
96
+ },
97
+ {
98
+ "type": "file",
99
+ "source": "{{pwd}}/files/",
100
+ "destination": "C:\\Windows\\Temp"
101
+ },
102
+ {
103
+ "type": "chef-solo",
104
+ "install_command": "powershell.exe -Command \". { iwr -useb https://omnitruck.chef.io/install.ps1 } | iex; install -channel {{user `chef_channel`}} -version {{user `chef_ver`}}\"",
105
+ "guest_os_type": "windows",
106
+ "cookbook_paths": [
107
+ "{{pwd}}/vendored-cookbooks/infranodes"
108
+ ],
109
+ "run_list": [
110
+ "infranodes",
111
+ "wombat::etc-hosts"
112
+ ],
113
+ "json": {
114
+ "demo": {
115
+ "admin-user": "{{user `ssh_username`}}",
116
+ "build-nodes": "{{user `build-nodes`}}",
117
+ "domain_prefix": "{{user `domain_prefix`}}",
118
+ "domain": "{{user `domain`}}",
119
+ "enterprise": "{{user `enterprise`}}",
120
+ "node-name": "{{user `node-name`}}",
121
+ "org": "{{user `org`}}",
122
+ "versions": {
123
+ "chef": "{{user `chef_channel`}}-{{user `chef_ver`}}"
124
+ }
125
+ }
126
+ }
127
+ },
128
+ {
129
+ "only": [
130
+ "azure-arm"
131
+ ],
132
+ "type": "windows-shell",
133
+ "inline": [
134
+ "cd C:\\Windows\\System32\\sysprep",
135
+ "sysprep.exe /quiet /generalize /oobe /shutdown"
136
+ ]
96
137
  }
97
- }
98
- }
99
- ]
100
- }
138
+ ]
139
+ }