bitswarmbox 1.0.0.pre16
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +70 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/compiler.xml +22 -0
- data/.idea/composerJson.xml +9 -0
- data/.idea/copyright/profiles_settings.xml +3 -0
- data/.idea/misc.xml +23 -0
- data/.idea/modules.xml +8 -0
- data/.ruby-version +1 -0
- data/.travis.yml +3 -0
- data/Gemfile +3 -0
- data/LICENSE +21 -0
- data/README.md +67 -0
- data/Rakefile +34 -0
- data/Vagrantfile +116 -0
- data/bin/bitswarmbox +6 -0
- data/bitswarmbox.gemspec +48 -0
- data/bitswarmbox.iml +51 -0
- data/builders/aws/build-all.sh +17 -0
- data/builders/aws/debian/build-base-jessie64.sh +11 -0
- data/builders/aws/debian/build-base-wheezy64.sh +11 -0
- data/builders/aws/debian/build-puppetmaster-jessie64.sh +11 -0
- data/builders/aws/ubuntu/build-base-precise64.sh +11 -0
- data/builders/aws/ubuntu/build-base-trusty64.sh +11 -0
- data/builders/aws/ubuntu/build-base-wily64.sh +11 -0
- data/builders/aws/ubuntu/build-base-xenial64.sh +11 -0
- data/builders/aws/ubuntu/build-puppetmaster-trusty64.sh +11 -0
- data/builders/aws/ubuntu/build-puppetmaster-xenial64.sh +11 -0
- data/builders/vagrant/build-all.sh +18 -0
- data/builders/vagrant/debian/build-base-jessie64.sh +9 -0
- data/builders/vagrant/debian/build-base-wheezy64.sh +9 -0
- data/builders/vagrant/debian/build-puppetmaster-jessie64.sh +9 -0
- data/builders/vagrant/ubuntu/build-base-precise64.sh +9 -0
- data/builders/vagrant/ubuntu/build-base-trusty64.sh +9 -0
- data/builders/vagrant/ubuntu/build-base-wily64.sh +9 -0
- data/builders/vagrant/ubuntu/build-base-xenial64.sh +9 -0
- data/builders/vagrant/ubuntu/build-puppetmaster-trusty64.sh +17 -0
- data/builders/vagrant/ubuntu/build-puppetmaster-xenial64.sh +17 -0
- data/features/boxes.feature +8 -0
- data/features/build.feature +16 -0
- data/features/env.feature +18 -0
- data/features/support/env.rb +1 -0
- data/lib/bitswarmbox/builder.rb +181 -0
- data/lib/bitswarmbox/command/build/aws.rb +90 -0
- data/lib/bitswarmbox/command/build/vagrant.rb +78 -0
- data/lib/bitswarmbox/command/build.rb +42 -0
- data/lib/bitswarmbox/command/env.rb +50 -0
- data/lib/bitswarmbox/command.rb +15 -0
- data/lib/bitswarmbox/config.rb +87 -0
- data/lib/bitswarmbox/environment.rb +128 -0
- data/lib/bitswarmbox/errors.rb +19 -0
- data/lib/bitswarmbox/subprocess.rb +39 -0
- data/lib/bitswarmbox/template.rb +50 -0
- data/lib/bitswarmbox/version.rb +4 -0
- data/lib/bitswarmbox.rb +29 -0
- data/lib/boxes.rb +29 -0
- data/puppet/Puppetfile +58 -0
- data/puppet/environments/aws/manifests/base.pp +3 -0
- data/puppet/environments/vagrant/environment.conf +1 -0
- data/puppet/environments/vagrant/manifests/base.pp +3 -0
- data/puppet/hiera.yaml +15 -0
- data/puppet/hieradata/aws.yaml +11 -0
- data/puppet/hieradata/common.yaml +9 -0
- data/puppet/hieradata/debian.yaml +6 -0
- data/puppet/hieradata/puppetmaster.yaml +7 -0
- data/puppet/hieradata/ubuntu.yaml +3 -0
- data/puppet/hieradata/vagrant.yaml +3 -0
- data/puppet/hieradata/vsphere.yaml +3 -0
- data/puppet/manifests/r10k_bootstrap.pp +37 -0
- data/puppet/modules/packer/manifests/aws/cloudinit.pp +20 -0
- data/puppet/modules/packer/manifests/aws/networking/params.pp +46 -0
- data/puppet/modules/packer/manifests/aws/networking.pp +23 -0
- data/puppet/modules/packer/manifests/aws/sshd.pp +10 -0
- data/puppet/modules/packer/manifests/aws/users.pp +26 -0
- data/puppet/modules/packer/manifests/aws.pp +7 -0
- data/puppet/modules/packer/manifests/clock.pp +10 -0
- data/puppet/modules/packer/manifests/updates.pp +27 -0
- data/puppet/modules/packer/manifests/vagrant/params.pp +14 -0
- data/puppet/modules/packer/manifests/vagrant.pp +63 -0
- data/puppet/modules/packer/manifests/vmtools/params.pp +35 -0
- data/puppet/modules/packer/manifests/vmtools.pp +52 -0
- data/puppet/modules/packer/manifests/vsphere/fw.pp +9 -0
- data/puppet/modules/packer/manifests/vsphere/networking.pp +29 -0
- data/puppet/modules/packer/manifests/vsphere/params.pp +56 -0
- data/puppet/modules/packer/manifests/vsphere/repos.pp +87 -0
- data/puppet/modules/packer/manifests/vsphere.pp +45 -0
- data/puppet/modules/packer/templates/ec2/ubuntu-cloud-cfg.erb +111 -0
- data/puppet/modules/packer/templates/vsphere/debian.rb.erb +45 -0
- data/puppet/modules/packer/templates/vsphere/rc.local +5 -0
- data/puppet/modules/packer/templates/vsphere/redhat.rb.erb +66 -0
- data/puppet/modules/packer/templates/vsphere/ubuntu.rb.erb +50 -0
- data/scripts/ansible.sh +17 -0
- data/scripts/chef.sh +30 -0
- data/scripts/cleanup-aws.sh +6 -0
- data/scripts/cleanup-vagrant.sh +26 -0
- data/scripts/cleanup.sh +48 -0
- data/scripts/docker.sh +23 -0
- data/scripts/local-ssh-keygen.sh +16 -0
- data/scripts/prepare-done.sh +3 -0
- data/scripts/prepare.sh +32 -0
- data/scripts/puppet.sh +31 -0
- data/scripts/puppetserver-post.sh +8 -0
- data/scripts/puppetserver.sh +44 -0
- data/scripts/ruby.sh +42 -0
- data/scripts/vagrant.sh +42 -0
- data/scripts/vmtools.sh +37 -0
- data/spec/boxes/builder_spec.rb +52 -0
- data/spec/boxes/config_spec.rb +142 -0
- data/spec/boxes/environment_spec.rb +73 -0
- data/spec/boxes/subprocess_spec.rb +35 -0
- data/spec/boxes/template_spec.rb +53 -0
- data/spec/spec_helper.rb +5 -0
- data/spec/support/subprocess_command.rb +7 -0
- data/templates/debian/jessie64.erb +206 -0
- data/templates/debian/preseed.cfg +70 -0
- data/templates/debian/wheezy64.erb +206 -0
- data/templates/ubuntu/precise64.erb +205 -0
- data/templates/ubuntu/preseed.cfg +61 -0
- data/templates/ubuntu/trusty64.erb +205 -0
- data/templates/ubuntu/wily64.erb +209 -0
- data/templates/ubuntu/xenial64.erb +209 -0
- metadata +349 -0
@@ -0,0 +1,209 @@
|
|
1
|
+
{
|
2
|
+
"variables": {
|
3
|
+
"name": "<%= @name || '{{ .Name }}' %>",
|
4
|
+
"created_by": "<%= @app_creator || ENV['USER'] %>",
|
5
|
+
"project": "<%= @app_project %>",
|
6
|
+
"version": "<%= @app_version %>",
|
7
|
+
<%- if @provisioner == "aws" -%>
|
8
|
+
"ami_name": "<%= @name %>-<%= @app_version %>-{{isotime \"200601021504\"}}",
|
9
|
+
"ami_description": "<%= @description %> <%= @app_version %> {{isotime \"2006-01-02@15:04\"}}",
|
10
|
+
"aws_access_key": "<%= @aws_access_key %>",
|
11
|
+
"aws_secret_key": "<%= @aws_secret_key %>",
|
12
|
+
"aws_region": "<%= @aws_region %>",
|
13
|
+
"source_ami": "<%= @aws_source_ami %>",
|
14
|
+
"user_data": "<%= @aws_user_data %>",
|
15
|
+
<%- end -%>
|
16
|
+
"provisioner": "<%= @provisioner %>"
|
17
|
+
},
|
18
|
+
|
19
|
+
"provisioners": [
|
20
|
+
<%- if @puppetserver -%>
|
21
|
+
{
|
22
|
+
"type": "shell-local",
|
23
|
+
"command": "scripts/local-ssh-keygen.sh"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"type": "file",
|
27
|
+
"source": "keys",
|
28
|
+
"destination": "/tmp"
|
29
|
+
},
|
30
|
+
<%- end -%>
|
31
|
+
{
|
32
|
+
"type": "shell",
|
33
|
+
"environment_vars": [
|
34
|
+
"PACKER_PROVISIONER=<%= @provisioner %>"
|
35
|
+
],
|
36
|
+
"scripts": [
|
37
|
+
"scripts/prepare.sh",
|
38
|
+
<%- if @provisioner == "vagrant" -%>
|
39
|
+
"scripts/vagrant.sh",
|
40
|
+
"scripts/vmtools.sh",
|
41
|
+
<%- end -%>
|
42
|
+
<%- if @puppetserver -%>
|
43
|
+
"scripts/puppetserver.sh",
|
44
|
+
<%- elsif @puppet -%>
|
45
|
+
"scripts/puppet.sh",
|
46
|
+
<%- end -%>
|
47
|
+
<%- if @chef -%>
|
48
|
+
"scripts/chef.sh",
|
49
|
+
<%- end -%>
|
50
|
+
<%- if @ansible -%>
|
51
|
+
"scripts/ansible.sh",
|
52
|
+
<%- end -%>
|
53
|
+
<%- if @docker -%>
|
54
|
+
"scripts/docker.sh",
|
55
|
+
<%- end -%>
|
56
|
+
<%- @scripts.each do |script| -%>
|
57
|
+
"scripts/<%= script %>",
|
58
|
+
<%- end -%>
|
59
|
+
"scripts/prepare-done.sh"
|
60
|
+
],
|
61
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
62
|
+
},
|
63
|
+
<%- if @bootstrap -%>
|
64
|
+
{
|
65
|
+
"type": "file",
|
66
|
+
"source": "puppet/hieradata",
|
67
|
+
"destination": "/tmp"
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"type": "file",
|
71
|
+
"source": "puppet/Puppetfile",
|
72
|
+
"destination": "/tmp/Puppetfile"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"type": "puppet-masterless",
|
76
|
+
"facter": {
|
77
|
+
"provisioner": "{{user `provisioner`}}",
|
78
|
+
"app_project": "{{user `project`}}",
|
79
|
+
"app_creator": "{{user `created_by`}}",
|
80
|
+
"app_version": "{{user `version`}}"
|
81
|
+
},
|
82
|
+
"manifest_file": "puppet/manifests/r10k_bootstrap.pp",
|
83
|
+
"extra_arguments": [
|
84
|
+
"--show_diff --verbose"
|
85
|
+
],
|
86
|
+
"hiera_config_path": "puppet/hiera.yaml"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"type": "puppet-masterless",
|
90
|
+
"facter": {
|
91
|
+
"provisioner": "{{user `provisioner`}}",
|
92
|
+
"puppetversion": "4.0",
|
93
|
+
"app_project": "{{user `project`}}",
|
94
|
+
"app_creator": "{{user `created_by`}}",
|
95
|
+
"app_version": "{{user `version`}}"
|
96
|
+
},
|
97
|
+
"manifest_file": "puppet/environments/<%= @provisioner %>/manifests/base.pp",
|
98
|
+
"module_paths": [
|
99
|
+
"puppet/modules"
|
100
|
+
],
|
101
|
+
"extra_arguments": [
|
102
|
+
"--show_diff --verbose"
|
103
|
+
],
|
104
|
+
"hiera_config_path": "puppet/hiera.yaml",
|
105
|
+
"execute_command": "cd {{.WorkingDir}} && {{.FacterVars}}{{if .Sudo}} sudo -E {{end}}puppet apply --verbose --modulepath='{{.ModulePath}}:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules' {{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}} {{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}} --detailed-exitcodes {{.ManifestFile}}"
|
106
|
+
},
|
107
|
+
<%- end -%>
|
108
|
+
<%- if @puppetserver -%>
|
109
|
+
{
|
110
|
+
"type": "shell",
|
111
|
+
"scripts": [
|
112
|
+
"scripts/puppetserver-post.sh"
|
113
|
+
],
|
114
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
115
|
+
},
|
116
|
+
<%- end -%>
|
117
|
+
{
|
118
|
+
"type": "shell",
|
119
|
+
"scripts": [
|
120
|
+
"scripts/cleanup.sh",
|
121
|
+
"scripts/cleanup-<%= @provisioner %>.sh"
|
122
|
+
],
|
123
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
124
|
+
}
|
125
|
+
],
|
126
|
+
|
127
|
+
"builders": [
|
128
|
+
<%- if @provisioner == "aws" -%>
|
129
|
+
{
|
130
|
+
"type": "amazon-ebs",
|
131
|
+
"access_key": "{{user `aws_access_key`}}",
|
132
|
+
"secret_key": "{{user `aws_secret_key`}}",
|
133
|
+
"region": "{{user `aws_region`}}",
|
134
|
+
"source_ami": "{{user `source_ami`}}",
|
135
|
+
"instance_type": "c4.large",
|
136
|
+
"ssh_username": "ubuntu",
|
137
|
+
"ami_description": "{{user `ami_description`}}",
|
138
|
+
"ami_name": "{{user `ami_name`}}",
|
139
|
+
"ssh_timeout": "10000s",
|
140
|
+
"ssh_pty": "true",
|
141
|
+
"user_data": "{{user `user_data`}}",
|
142
|
+
"run_tags": {
|
143
|
+
"created_by": "{{user `created_by`}}",
|
144
|
+
"project": "{{user `project`}}"
|
145
|
+
},
|
146
|
+
"tags": {
|
147
|
+
"created_by": "{{user `created_by`}}",
|
148
|
+
"project": "{{user `project`}}"
|
149
|
+
}
|
150
|
+
}
|
151
|
+
<%- elsif @provisioner == "vagrant" -%>
|
152
|
+
{
|
153
|
+
"name": "<%= @name %>",
|
154
|
+
"type": "<%= @provider %>-iso",
|
155
|
+
<%- if @provider == "vmware" -%>
|
156
|
+
"guest_os_type": "ubuntu-64",
|
157
|
+
"tools_upload_flavor": "linux",
|
158
|
+
<%- else -%>
|
159
|
+
"guest_os_type": "Ubuntu_64",
|
160
|
+
<%- end -%>
|
161
|
+
"headless": true,
|
162
|
+
|
163
|
+
"iso_url": "http://releases.ubuntu.com/wily/ubuntu-15.10-server-amd64.iso",
|
164
|
+
"iso_checksum": "86aa35a986eba6e5ad30e3d486d57efe6803ae7ea4859b0216953e9e62871131",
|
165
|
+
"iso_checksum_type": "sha256",
|
166
|
+
|
167
|
+
"ssh_username": "vagrant",
|
168
|
+
"ssh_password": "vagrant",
|
169
|
+
"ssh_timeout": "15m",
|
170
|
+
|
171
|
+
"http_directory": "templates/ubuntu",
|
172
|
+
|
173
|
+
"boot_command": [
|
174
|
+
"<enter><wait><f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
175
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
176
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
177
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
178
|
+
"/install/vmlinuz noapic ",
|
179
|
+
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
|
180
|
+
"debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
|
181
|
+
"hostname={{ .Name }} ",
|
182
|
+
"fb=false debconf/frontend=noninteractive ",
|
183
|
+
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
|
184
|
+
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
|
185
|
+
"grub-installer/bootdev=/dev/sda ",
|
186
|
+
"initrd=/install/initrd.gz -- <enter>"
|
187
|
+
],
|
188
|
+
|
189
|
+
<%- if @provider == "virtualbox" -%>
|
190
|
+
"vboxmanage": [
|
191
|
+
[ "modifyvm", "{{.Name}}", "--memory", "2048" ],
|
192
|
+
[ "modifyvm", "{{.Name}}", "--cpus", "2" ]
|
193
|
+
],
|
194
|
+
<%- end -%>
|
195
|
+
|
196
|
+
"shutdown_command": "echo 'shutdown -P now' > shutdown.sh; echo 'vagrant'|sudo -S sh 'shutdown.sh'"
|
197
|
+
}
|
198
|
+
<%- end -%>
|
199
|
+
],
|
200
|
+
|
201
|
+
"post-processors": [
|
202
|
+
<%- if @provisioner == "vagrant" -%>
|
203
|
+
{
|
204
|
+
"type": "vagrant",
|
205
|
+
"output": "<%= @name || '{{build_name}}' %>_<%= @app_version %>-{{isotime \"200601021504\"}}.box"
|
206
|
+
}
|
207
|
+
<%- end -%>
|
208
|
+
]
|
209
|
+
}
|
@@ -0,0 +1,209 @@
|
|
1
|
+
{
|
2
|
+
"variables": {
|
3
|
+
"name": "<%= @name || '{{ .Name }}' %>",
|
4
|
+
"created_by": "<%= @app_creator || ENV['USER'] %>",
|
5
|
+
"project": "<%= @app_project %>",
|
6
|
+
"version": "<%= @app_version %>",
|
7
|
+
<%- if @provisioner == "aws" -%>
|
8
|
+
"ami_name": "<%= @name %>-<%= @app_version %>-{{isotime \"200601021504\"}}",
|
9
|
+
"ami_description": "<%= @description %> <%= @app_version %> {{isotime \"2006-01-02@15:04\"}}",
|
10
|
+
"aws_access_key": "<%= @aws_access_key %>",
|
11
|
+
"aws_secret_key": "<%= @aws_secret_key %>",
|
12
|
+
"aws_region": "<%= @aws_region %>",
|
13
|
+
"source_ami": "<%= @aws_source_ami %>",
|
14
|
+
"user_data": "<%= @aws_user_data %>",
|
15
|
+
<%- end -%>
|
16
|
+
"provisioner": "<%= @provisioner %>"
|
17
|
+
},
|
18
|
+
|
19
|
+
"provisioners": [
|
20
|
+
<%- if @puppetserver -%>
|
21
|
+
{
|
22
|
+
"type": "shell-local",
|
23
|
+
"command": "scripts/local-ssh-keygen.sh"
|
24
|
+
},
|
25
|
+
{
|
26
|
+
"type": "file",
|
27
|
+
"source": "keys",
|
28
|
+
"destination": "/tmp"
|
29
|
+
},
|
30
|
+
<%- end -%>
|
31
|
+
{
|
32
|
+
"type": "shell",
|
33
|
+
"environment_vars": [
|
34
|
+
"PACKER_PROVISIONER=<%= @provisioner %>"
|
35
|
+
],
|
36
|
+
"scripts": [
|
37
|
+
"scripts/prepare.sh",
|
38
|
+
<%- if @provisioner == "vagrant" -%>
|
39
|
+
"scripts/vagrant.sh",
|
40
|
+
"scripts/vmtools.sh",
|
41
|
+
<%- end -%>
|
42
|
+
<%- if @puppetserver -%>
|
43
|
+
"scripts/puppetserver.sh",
|
44
|
+
<%- elsif @puppet -%>
|
45
|
+
"scripts/puppet.sh",
|
46
|
+
<%- end -%>
|
47
|
+
<%- if @chef -%>
|
48
|
+
"scripts/chef.sh",
|
49
|
+
<%- end -%>
|
50
|
+
<%- if @ansible -%>
|
51
|
+
"scripts/ansible.sh",
|
52
|
+
<%- end -%>
|
53
|
+
<%- if @docker -%>
|
54
|
+
"scripts/docker.sh",
|
55
|
+
<%- end -%>
|
56
|
+
<%- @scripts.each do |script| -%>
|
57
|
+
"scripts/<%= script %>",
|
58
|
+
<%- end -%>
|
59
|
+
"scripts/prepare-done.sh"
|
60
|
+
],
|
61
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
62
|
+
},
|
63
|
+
<%- if @bootstrap -%>
|
64
|
+
{
|
65
|
+
"type": "file",
|
66
|
+
"source": "puppet/hieradata",
|
67
|
+
"destination": "/tmp"
|
68
|
+
},
|
69
|
+
{
|
70
|
+
"type": "file",
|
71
|
+
"source": "puppet/Puppetfile",
|
72
|
+
"destination": "/tmp/Puppetfile"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"type": "puppet-masterless",
|
76
|
+
"facter": {
|
77
|
+
"provisioner": "{{user `provisioner`}}",
|
78
|
+
"app_project": "{{user `project`}}",
|
79
|
+
"app_creator": "{{user `created_by`}}",
|
80
|
+
"app_version": "{{user `version`}}"
|
81
|
+
},
|
82
|
+
"manifest_file": "puppet/manifests/r10k_bootstrap.pp",
|
83
|
+
"extra_arguments": [
|
84
|
+
"--show_diff --verbose"
|
85
|
+
],
|
86
|
+
"hiera_config_path": "puppet/hiera.yaml"
|
87
|
+
},
|
88
|
+
{
|
89
|
+
"type": "puppet-masterless",
|
90
|
+
"facter": {
|
91
|
+
"provisioner": "{{user `provisioner`}}",
|
92
|
+
"puppetversion": "4.0",
|
93
|
+
"app_project": "{{user `project`}}",
|
94
|
+
"app_creator": "{{user `created_by`}}",
|
95
|
+
"app_version": "{{user `version`}}"
|
96
|
+
},
|
97
|
+
"manifest_file": "puppet/environments/<%= @provisioner %>/manifests/base.pp",
|
98
|
+
"module_paths": [
|
99
|
+
"puppet/modules"
|
100
|
+
],
|
101
|
+
"extra_arguments": [
|
102
|
+
"--show_diff --verbose"
|
103
|
+
],
|
104
|
+
"hiera_config_path": "puppet/hiera.yaml",
|
105
|
+
"execute_command": "cd {{.WorkingDir}} && {{.FacterVars}}{{if .Sudo}} sudo -E {{end}}puppet apply --verbose --modulepath='{{.ModulePath}}:/etc/puppetlabs/code/modules:/opt/puppetlabs/puppet/modules' {{if ne .HieraConfigPath \"\"}}--hiera_config='{{.HieraConfigPath}}' {{end}} {{if ne .ManifestDir \"\"}}--manifestdir='{{.ManifestDir}}' {{end}} --detailed-exitcodes {{.ManifestFile}}"
|
106
|
+
},
|
107
|
+
<%- end -%>
|
108
|
+
<%- if @puppetserver -%>
|
109
|
+
{
|
110
|
+
"type": "shell",
|
111
|
+
"scripts": [
|
112
|
+
"scripts/puppetserver-post.sh"
|
113
|
+
],
|
114
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
115
|
+
},
|
116
|
+
<%- end -%>
|
117
|
+
{
|
118
|
+
"type": "shell",
|
119
|
+
"scripts": [
|
120
|
+
"scripts/cleanup.sh",
|
121
|
+
"scripts/cleanup-<%= @provisioner %>.sh"
|
122
|
+
],
|
123
|
+
"execute_command": "<%= @shell_exec_cmd %>"
|
124
|
+
}
|
125
|
+
],
|
126
|
+
|
127
|
+
"builders": [
|
128
|
+
<%- if @provisioner == "aws" -%>
|
129
|
+
{
|
130
|
+
"type": "amazon-ebs",
|
131
|
+
"access_key": "{{user `aws_access_key`}}",
|
132
|
+
"secret_key": "{{user `aws_secret_key`}}",
|
133
|
+
"region": "{{user `aws_region`}}",
|
134
|
+
"source_ami": "{{user `source_ami`}}",
|
135
|
+
"instance_type": "c4.large",
|
136
|
+
"ssh_username": "ubuntu",
|
137
|
+
"ami_description": "{{user `ami_description`}}",
|
138
|
+
"ami_name": "{{user `ami_name`}}",
|
139
|
+
"ssh_timeout": "10000s",
|
140
|
+
"ssh_pty": "true",
|
141
|
+
"user_data": "{{user `user_data`}}",
|
142
|
+
"run_tags": {
|
143
|
+
"created_by": "{{user `created_by`}}",
|
144
|
+
"project": "{{user `project`}}"
|
145
|
+
},
|
146
|
+
"tags": {
|
147
|
+
"created_by": "{{user `created_by`}}",
|
148
|
+
"project": "{{user `project`}}"
|
149
|
+
}
|
150
|
+
}
|
151
|
+
<%- elsif @provisioner == "vagrant" -%>
|
152
|
+
{
|
153
|
+
"name": "<%= @name %>",
|
154
|
+
"type": "<%= @provider %>-iso",
|
155
|
+
<%- if @provider == "vmware" -%>
|
156
|
+
"guest_os_type": "ubuntu-64",
|
157
|
+
"tools_upload_flavor": "linux",
|
158
|
+
<%- else -%>
|
159
|
+
"guest_os_type": "Ubuntu_64",
|
160
|
+
<%- end -%>
|
161
|
+
"headless": true,
|
162
|
+
|
163
|
+
"iso_url": "http://releases.ubuntu.com/xenial/ubuntu-16.04-server-amd64.iso",
|
164
|
+
"iso_checksum": "b8b172cbdf04f5ff8adc8c2c1b4007ccf66f00fc6a324a6da6eba67de71746f6",
|
165
|
+
"iso_checksum_type": "sha256",
|
166
|
+
|
167
|
+
"ssh_username": "vagrant",
|
168
|
+
"ssh_password": "vagrant",
|
169
|
+
"ssh_timeout": "15m",
|
170
|
+
|
171
|
+
"http_directory": "templates/ubuntu",
|
172
|
+
|
173
|
+
"boot_command": [
|
174
|
+
"<enter><wait><f6><esc><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
175
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
176
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
177
|
+
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
|
178
|
+
"/install/vmlinuz noapic ",
|
179
|
+
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg ",
|
180
|
+
"debian-installer=en_US auto locale=en_US kbd-chooser/method=us ",
|
181
|
+
"hostname={{ .Name }} ",
|
182
|
+
"fb=false debconf/frontend=noninteractive ",
|
183
|
+
"keyboard-configuration/modelcode=SKIP keyboard-configuration/layout=USA ",
|
184
|
+
"keyboard-configuration/variant=USA console-setup/ask_detect=false ",
|
185
|
+
"grub-installer/bootdev=/dev/sda ",
|
186
|
+
"initrd=/install/initrd.gz -- <enter>"
|
187
|
+
],
|
188
|
+
|
189
|
+
<%- if @provider == "virtualbox" -%>
|
190
|
+
"vboxmanage": [
|
191
|
+
[ "modifyvm", "{{.Name}}", "--memory", "2048" ],
|
192
|
+
[ "modifyvm", "{{.Name}}", "--cpus", "2" ]
|
193
|
+
],
|
194
|
+
<%- end -%>
|
195
|
+
|
196
|
+
"shutdown_command": "echo 'shutdown -P now' > shutdown.sh; echo 'vagrant'|sudo -S sh 'shutdown.sh'"
|
197
|
+
}
|
198
|
+
<%- end -%>
|
199
|
+
],
|
200
|
+
|
201
|
+
"post-processors": [
|
202
|
+
<%- if @provisioner == "vagrant" -%>
|
203
|
+
{
|
204
|
+
"type": "vagrant",
|
205
|
+
"output": "<%= @name || '{{build_name}}' %>_<%= @app_version %>-{{isotime \"200601021504\"}}.box"
|
206
|
+
}
|
207
|
+
<%- end -%>
|
208
|
+
]
|
209
|
+
}
|