-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathvm.ubuntu.x86_64.pkr.hcl
73 lines (66 loc) · 2.24 KB
/
vm.ubuntu.x86_64.pkr.hcl
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
# rocky-linux-packer.pkr.hcl
# Required Packer version
packer {
required_version = ">= 1.7.0"
required_plugins {
qemu = {
version = ">= 1.0.0"
source = "github.com/hashicorp/qemu"
}
}
}
variable "display" {
type = string
default = "none"
}
variable "output_directory" {
type = string
default = "./output/image-x86_64"
}
# Define the source image builder - for QEMU
source "qemu" "ubuntu_linux" {
iso_url = "https://old-releases.ubuntu.com/releases/24.04/ubuntu-24.04-live-server-amd64.iso"
iso_checksum = "sha256:8762f7e74e4d64d72fceb5f70682e6b069932deedb4949c6975d0f0fe0a91be3"
qemu_binary = "qemu-system-x86_64"
output_directory = var.output_directory
http_directory = "."
disk_size = "40960"
memory = "2048"
cores = 8
cpu_model = "host" # if no KVM use "Haswell-v1"
ssh_port = 22
boot_wait = "1s"
ssh_password = "root"
ssh_username = "ubuntu"
ssh_timeout = "60m" # without KVM can be 10x slower
headless = false
shutdown_command = "/sbin/halt -h -p"
qemuargs = [
["-display", var.display], # "gtk" or "none"
["-machine", "type=pc,accel=kvm"], # "type=q35" if no KVM
]
boot_command = ["<esc><esc><esc><esc>e<wait><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"<del><del><del><del><del><del><del><del>",
"linux /casper/vmlinuz --- autoinstall net.ifnames=0 ds=\"nocloud-net;seedfrom=http://{{ .HTTPIP }}:{{ .HTTPPort }}/http/\"<enter><wait>", "initrd /casper/initrd<enter><wait>", "boot<enter>", "<enter><f10><wait>"
]
}
# Provision with an external shell script
build {
sources = ["source.qemu.ubuntu_linux"]
provisioner "shell" {
script = "install-ubuntu.sh"
}
}