-
Notifications
You must be signed in to change notification settings - Fork 0
/
qemu_template_efi.json
108 lines (95 loc) · 3.56 KB
/
qemu_template_efi.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
{
"variables": {
"iso_url": "",
"output_path": "output-qemu",
"output_filename": "windows-server-dd.gz",
"vm_name": "packer-qemu",
"cpu_cores": "4",
"threads_per_core": "2",
"cpu_emulator": "Icelake-Client",
"memory": "2048",
"disk_size": "20480",
"winrm_user": "Administrator",
"winrm_password": "packer",
"winrm_timeout": "30m",
"autounattend_packer": "./unattend_resources/autounattend/efi/virtio/Autounattend.xml",
"autounattend_deploy": "./unattend_resources/autounattend/deploy/Deploy.xml",
"virtio_drivers_path": "./unattend_resources/virtio-win.iso",
"curtin_hooks_path": "./unattend_resources/windows-curtin-hooks/curtin",
"efi_firmware_path": "./efi/OVMF-pure-efi.fd"
},
"builders": [
{
"type": "qemu",
"format": "raw",
"machine_type": "q35",
"accelerator": "hvf",
"display": "cocoa",
"net_device": "virtio-net",
"disk_interface": "virtio-scsi",
"disk_discard": "unmap",
"disk_detect_zeroes": "unmap",
"qemuargs": [
["-cpu", "{{ user `cpu_emulator` }}"],
["-smp", "cores={{ user `cpu_cores` }},threads={{ user `threads_per_core` }}"],
["-global", "driver=cfi.pflash01,property=secure,value=on"],
["-drive", "if=pflash,file={{ user `efi_firmware_path` }},format=raw,unit=0,readonly=on" ],
["-device", "virtio-scsi-pci,id=scsi0"],
["-device", "scsi-hd,bus=scsi0.0,drive=drive0"],
["-drive", "if=none,file={{ .OutputDir }}/{{ user `vm_name` }},id=drive0,cache=writeback,discard=unmap,format=raw,detect-zeroes=unmap,index=1"],
["-device", "nec-usb-xhci"],
["-drive", "if=none,file={{ user `iso_url` }},id=usb0,media=cdrom,format=raw,readonly=on,index=0"],
["-drive", "if=none,file={{ user `virtio_drivers_path` }},id=cdrom0,media=cdrom,format=raw,readonly=on,index=2"],
["-device", "usb-storage,drive=cdrom0"],
["-device", "usb-storage,drive=usb0"]
],
"memory": "{{user `memory`}}",
"disk_size": "{{user `disk_size`}}",
"communicator": "winrm",
"winrm_password": "{{user `winrm_password`}}",
"winrm_username": "{{user `winrm_user`}}",
"winrm_timeout": "{{user `winrm_timeout`}}",
"winrm_use_ssl": true,
"winrm_insecure": true,
"winrm_use_ntlm": true,
"boot_wait": "1s",
"boot_command": "<enter>",
"shutdown_command": "echo \"Provisioning complete. Waiting for sysprep to finish.\"",
"shutdown_timeout": "30m",
"iso_checksum": "none",
"iso_url": "{{ user `iso_url` }}",
"output_directory": "{{ user `output_path` }}",
"floppy_files": [
"{{ user `autounattend_packer` }}",
"{{ user `autounattend_deploy` }}",
"./scripts/enable-winrm.ps1"],
"floppy_dirs": [
"{{ user `curtin_hooks_path` }}"
]
}
],
"provisioners": [
{
"type": "ansible",
"playbook_file": "./ansible/build.yml",
"user": "{{user `winrm_user`}}",
"use_proxy": false,
"extra_arguments": [
"-e", "ansible_winrm_server_cert_validation=ignore",
"-e", "winrm_password={{ user `winrm_password` }}",
"-e", "ansible_winrm_transport=ntlm" ]
}
],
"post-processors": [
{
"type": "shell-local",
"script": "scripts/resize-qemu-raw.sh",
"environment_vars": ["QEMU_OUTPUT_PATH={{ user `output_path` }}/{{ user `vm_name` }}"]
},
{
"type": "compress",
"output": "{{ user `output_path` }}/{{ user `output_filename` }}",
"compression_level": 9
}
]
}