-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathubuntu.json
209 lines (200 loc) · 6.79 KB
/
ubuntu.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
{
"_comment": "Build with `PACKER_LOG=1 UBUNTU_MAJOR_VERSION=16.04 UBUNTU_MINOR_VERSION=.1 UBUNTU_TYPE=server ARCH=amd64 HEADLESS=true packer build ubuntu.json`",
"variables": {
"name": "ubuntu-{{ env `UBUNTU_MAJOR_VERSION` }}{{ env `UBUNTU_MINOR_VERSION` }}-{{ env `UBUNTU_TYPE` }}-{{ env `ARCH` }}",
"iso_name": "ubuntu-{{ env `UBUNTU_MAJOR_VERSION` }}{{ env `UBUNTU_MINOR_VERSION` }}-{{ env `UBUNTU_TYPE` }}-{{ env `ARCH` }}",
"ubuntu_type": "{{ env `UBUNTU_TYPE` }}",
"ubuntu_version": "{{ env `UBUNTU_MAJOR_VERSION` }}",
"ubuntu_mirror": "http://releases.ubuntu.com/",
"ssh_username": "vagrant",
"ssh_password": "vagrant",
"ssh_wait_timeout": "30m",
"preseed_file_name": "ubuntu-{{ env `UBUNTU_MAJOR_VERSION` }}/preseed.cfg",
"accelerator": "kvm",
"cpus": "1",
"memory": "1024",
"disk_size": "10240",
"headless": "{{ env `HEADLESS` }}",
"boot_wait": "10s",
"install_vagrant_key": "true",
"update": "true"
},
"builders":
[
{
"type": "qemu",
"vm_name": "{{ user `name` }}",
"iso_checksum_type": "sha256",
"iso_checksum_url": "{{ user `ubuntu_mirror` }}{{ user `ubuntu_version` }}/SHA256SUMS",
"iso_url": "{{ user `ubuntu_mirror` }}{{ user `ubuntu_version` }}/{{ user `iso_name` }}.iso",
"shutdown_command": "echo '{{ user `ssh_password` }}' | sudo -S shutdown -P now",
"disk_size": "{{ user `disk_size` }}",
"headless": "{{ user `headless` }}",
"http_directory": "http",
"ssh_username": "{{ user `ssh_username` }}",
"ssh_password": "{{ user `ssh_password` }}",
"ssh_wait_timeout": "{{ user `ssh_wait_timeout` }}",
"accelerator": "{{ user `accelerator` }}",
"qemuargs": [
[ "-smp", "{{ user `cpus` }}" ],
[ "-m", "{{ user `memory` }}M" ]
],
"boot_wait": "{{ user `boot_wait` }}",
"boot_command":
[
"<enter><wait>",
"<f6><esc>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs>",
"/install/vmlinuz ",
"initrd=/install/initrd.gz ",
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{ user `preseed_file_name` }} ",
"auto=true ",
"net.ifnames=0 ",
"hostname=localhost ",
"<enter>"
]
},
{
"type": "virtualbox-iso",
"vm_name": "virtualbox-{{ user `name` }}",
"iso_checksum_type": "sha256",
"iso_checksum_url": "{{ user `ubuntu_mirror` }}{{ user `ubuntu_version` }}/SHA256SUMS",
"iso_url": "{{ user `ubuntu_mirror` }}{{ user `ubuntu_version` }}/{{ user `iso_name` }}.iso",
"shutdown_command": "echo '{{ user `ssh_password` }}' | sudo -S shutdown -P now",
"disk_size": "{{ user `disk_size` }}",
"headless": "{{ user `headless` }}",
"http_directory": "http",
"ssh_username": "{{ user `ssh_username` }}",
"ssh_password": "{{ user `ssh_password` }}",
"ssh_wait_timeout": "{{ user `ssh_wait_timeout` }}",
"guest_os_type": "Ubuntu_64",
"guest_additions_path": "VBoxGuestAdditions_{{.Version}}.iso",
"virtualbox_version_file": ".vbox_version",
"vboxmanage": [
[ "modifyvm", "{{.Name}}", "--cpus", "{{ user `cpus` }}" ],
[ "modifyvm", "{{.Name}}", "--memory", "{{ user `memory` }}" ]
],
"boot_wait": "{{ user `boot_wait` }}",
"boot_command":
[
"<enter><wait>",
"<f6><esc>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs><bs><bs><bs><bs><bs><bs><bs>",
"<bs><bs><bs>",
"/install/vmlinuz ",
"initrd=/install/initrd.gz ",
"preseed/url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/{{ user `preseed_file_name` }} ",
"auto=true ",
"net.ifnames=0 ",
"hostname=localhost ",
"<enter>"
]
}
],
"provisioners": [
{
"type": "shell",
"environment_vars": [
"INSTALL_VAGRANT_KEY={{ user `install_vagrant_key` }}",
"UPDATE={{ user `update` }}",
"DEBIAN_FRONTEND=noninteractive"
],
"execute_command": "echo '{{ user `ssh_password` }}' | {{.Vars}} sudo -S -E bash -x '{{.Path}}'",
"scripts": [
"scripts/debian/update.sh",
"scripts/debian/packages.sh",
"scripts/debian/setup.sh",
"scripts/vagrant.sh",
"scripts/sshd.sh",
"scripts/vmtool.sh"
]
},
{
"type": "shell",
"execute_command": "echo '{{ user `ssh_password` }}' | {{.Vars}} sudo -S -E bash -x '{{.Path}}'",
"scripts": [
"scripts/debian/cleanup.sh",
"scripts/minimize.sh"
]
}
],
"post-processors": [
{
"type": "vagrant",
"only": [ "qemu" ],
"compression_level": 9,
"vagrantfile_template": "Vagrantfile-qemu.template",
"output": "{{ user `name` }}-{{.Provider}}.box"
},
{
"type": "atlas",
"only": [ "qemu" ],
"artifact": "holser/{{user `name` }}",
"artifact_type": "vagrant.box",
"metadata": {
"provider": "libvirt",
"created_at": "{{timestamp}}"
}
},
{
"type": "atlas",
"only": [ "qemu" ],
"artifact": "holser/{{user `name` }}",
"artifact_type": "qemu.image",
"metadata": {
"created_at": "{{timestamp}}"
}
},
{
"type": "shell-local",
"only": [ "qemu" ],
"inline": [
"qemu-img convert -c -f qcow2 -O qcow2 -o cluster_size=2M ./output-qemu/{{user `name`}} {{user `name`}}.qcow2"
]
},
{
"type": "vagrant",
"only": [ "virtualbox-iso" ],
"compression_level": 9,
"output": "{{ user `name` }}-{{.Provider}}.box"
},
{
"type": "atlas",
"only": [ "virtualbox-iso" ],
"artifact": "holser/{{user `name` }}",
"artifact_type": "vagrant.box",
"metadata": {
"provider": "virtualbox",
"created_at": "{{timestamp}}"
}
},
{
"type": "atlas",
"only": [ "virtualbox-iso" ],
"artifact": "holser/{{user `name` }}",
"artifact_type": "virtualbox.image",
"metadata": {
"version": "{{ user `version` }}",
"created_at": "{{timestamp}}"
}
}
],
"push": {
"name": "holser/{{user `name` }}"
}
}