64 lines
2.6 KiB
JSON
64 lines
2.6 KiB
JSON
![]() |
{
|
||
|
"builders": [
|
||
|
{
|
||
|
"format": "qcow2",
|
||
|
"headless": true,
|
||
|
"output_directory": "{{user `tmp_directory`}}/output",
|
||
|
"shutdown_command": "echo packer | sudo -S shutdown -P now",
|
||
|
"ssh_password": "qemubuild",
|
||
|
"ssh_username": "qemubuild",
|
||
|
"ssh_wait_timeout": "120m",
|
||
|
"type": "qemu",
|
||
|
"disk_interface": "virtio",
|
||
|
"vm_name": "image.img",
|
||
|
"qemuargs": [
|
||
|
["-drive", "file=output/image.img,if=virtio,cache=writeback,discard=ignore,format=qcow2"],
|
||
|
["-drive", "if=pflash,format=raw,readonly=on,file=/usr/share/OVMF/OVMF_CODE.fd"]
|
||
|
],
|
||
|
"memory": "2048",
|
||
|
"vnc_bind_address": "0.0.0.0",
|
||
|
"disk_image": true,
|
||
|
"iso_checksum": "{{user `iso_checksum` }}",
|
||
|
"iso_url": "{{user `iso_url` }}",
|
||
|
"iso_checksum_type": "sha256"
|
||
|
}
|
||
|
],
|
||
|
"provisioners": [
|
||
|
{
|
||
|
"type": "file",
|
||
|
"source": "{{user `tmp_directory`}}/scripts",
|
||
|
"destination": "/tmp/scripts"
|
||
|
},
|
||
|
{
|
||
|
"type": "shell",
|
||
|
"inline": [
|
||
|
"sudo chown root: /tmp/scripts/*",
|
||
|
"sudo chmod +x /tmp/scripts/*",
|
||
|
"sudo risotto-run-parts /tmp/scripts/"
|
||
|
]
|
||
|
}
|
||
|
],
|
||
|
"post-processors": [
|
||
|
{
|
||
|
"type": "shell-local",
|
||
|
"inline": [
|
||
|
"sleep 5",
|
||
|
"mkdir -p {{user `tmp_directory`}}/tmp",
|
||
|
"echo 'Syst Prep'",
|
||
|
"LIBGUESTFS_BACKEND=direct virt-sysprep --delete \"/var/*\" --delete \"/home/*\" -a {{user `tmp_directory`}}/output/image.img",
|
||
|
"echo 'Sparsify before shink'",
|
||
|
"LIBGUESTFS_BACKEND=direct virt-sparsify --check-tmpdir=ignore --tmp {{user `tmp_directory`}}/tmp/ {{user `tmp_directory`}}/output/image.img {{user `tmp_directory`}}/output/sparse.img",
|
||
|
"echo 'Shink'",
|
||
|
"guestfish add {{user `tmp_directory`}}/output/sparse.img : run : resize2fs-M /dev/sda2",
|
||
|
"truncate -s $(virt-df {{user `tmp_directory`}}/output/sparse.img --csv|tail -n +2|awk -F, '{x+=$3}END{print x + 16012}')K {{user `tmp_directory`}}/output/shrink.img",
|
||
|
"virt-resize --shrink /dev/sda2 {{user `tmp_directory`}}/output/sparse.img {{user `tmp_directory`}}/output/shrink.img",
|
||
|
"echo 'Sparsify and convert to qcow2'",
|
||
|
"LIBGUESTFS_BACKEND=direct virt-sparsify --check-tmpdir=ignore --tmp {{user `tmp_directory`}}/tmp/ --compress --convert qcow2 {{user `tmp_directory`}}/output/shrink.img {{user `tmp_directory`}}/image.img",
|
||
|
"echo 'SHASUM'",
|
||
|
"sha256sum {{user `tmp_directory`}}/image.img > {{user `tmp_directory`}}/image.sha256",
|
||
|
"rm -rf {{user `tmp_directory`}}/tmp {{user `tmp_directory`}}/output"
|
||
|
]
|
||
|
}
|
||
|
]
|
||
|
}
|