variable "proxmox_apiuser" { type = string default = "packer" } variable "proxmox_apitoken" { type = string default = "changeme" } source "proxmox-iso" "freebsd-15" { template_name = "freebsd-15" template_description = "FreeBSD 15.1, generated on ${timestamp()}" vm_id = "210" boot_wait = "5s" boot_key_interval = "200ms" boot_command = ["", "", # wait for boot to finish "", "", "freebsd", # hostname "", "", "", "", # wait for network to come up "", # wait for disk detection "", "", " ", # select disk "", # confirm disk destroy "", # install base system "packerpacker", # root password "", "95", # timezone selection "", "", "", "", " ", " ", "", "", "xadmin", # break-glass username "Remote admin user", # break-glass name "", "", "wheel", # break-glass group (wheel "", "", "", "", "", "", "", "", "packer", # break-glass password "packer", # break-glass password confirm "", "", "", "", "", # open post-install shell "pkg install -y qemu-guest-agent sudo", # install qemu-guest-agent package for Proxmox "echo 'xadmin ALL=(ALL:ALL) NOPASSWD:ALL' > /usr/local/etc/sudoers.d/xadmin", # allow xadmin to sudo "sysrc qemu_guest_agent_enable=YES", # enable QEMU guest agent "exit", # exit shell "" # reboot ] os = "other" cores = "2" sockets = "1" cpu_type = "host" memory = "2048" scsi_controller = "virtio-scsi-single" disks { disk_size = "30G" storage_pool = "templates" type = "scsi" format = "qcow2" } network_adapters { bridge = "vmbr0" model = "virtio" } proxmox_url = "https://kamino.int.metaunix.net:8006/api2/json/" insecure_skip_tls_verify = true username = "${var.proxmox_apiuser}" password = "${var.proxmox_apitoken}" node = "kamino" pool = "Templates" boot_iso { type = "scsi" iso_url = "https://download.freebsd.org/releases/amd64/amd64/ISO-IMAGES/15.1/FreeBSD-15.1-RELEASE-amd64-bootonly.iso" iso_checksum = "sha256:3e74120a59512cefc35840443bdd05087c8a010a27cf8a6fbb4f7450824f092e" iso_download_pve = true iso_storage_pool = "iso" unmount = true } ssh_username = "xadmin" ssh_password = "packer" ssh_timeout = "20m" } build { sources = ["source.proxmox-iso.freebsd-15"] provisioner "shell" { script = "scripts/freebsd-install.sh" } provisioner "file" { source = "scripts/initial-setup.sh" destination = "/home/xadmin/initial-setup.sh" } }