packer/ubuntu24/packer.pkr.hcl

138 lines
2.8 KiB
HCL
Raw Permalink Normal View History

# packer
2024-07-15 14:58:32 +02:00
packer {
required_plugins {
proxmox = {
version = ">=1.1.8"
2024-07-15 14:58:32 +02:00
source = "github.com/hashicorp/proxmox"
}
}
}
# variables
2024-07-15 14:58:32 +02:00
variable "proxmox_iso_pool" {
type = string
default = ""
2024-07-15 14:58:32 +02:00
}
variable "proxmox_node" {
type = string
default = ""
}
variable "proxmox_password" {
type = string
default = ""
}
variable "proxmox_storage_format" {
type = string
default = "raw"
}
variable "proxmox_storage_pool" {
type = string
default = ""
2024-07-15 14:58:32 +02:00
}
variable "proxmox_storage_pool_type" {
type = string
default = "rbd"
}
variable "proxmox_url" {
type = string
default = ""
}
variable "proxmox_username" {
type = string
default = ""
}
variable "template_description" {
type = string
default = "Ubuntu 24.04 Template"
}
variable "template_name" {
type = string
default = "ubuntu.template.siempie.internal"
2024-07-15 14:58:32 +02:00
}
variable "template_username" {
type = string
default = ""
}
variable "template_password" {
type = string
default = ""
}
2024-07-15 14:58:32 +02:00
variable "ubuntu_image" {
type = string
default = "ubuntu-24.04-live-server-amd64.iso"
}
variable "version" {
type = string
default = ""
}
# builder
2024-07-15 14:58:32 +02:00
source "proxmox-iso" "template" {
# boot
2024-07-15 14:58:32 +02:00
boot_command = ["c", "linux /casper/vmlinuz -- autoinstall ds='nocloud-net;s=http://{{ .HTTPIP }}:{{ .HTTPPort }}/'", "<enter><wait><wait>", "initrd /casper/initrd", "<enter><wait><wait>", "boot<enter>"]
boot_wait = "10s"
# specs
cores = "2"
memory = "4096"
# storage
2024-07-15 14:58:32 +02:00
disks {
disk_size = "20G"
format = "${var.proxmox_storage_format}"
storage_pool = "${var.proxmox_storage_pool}"
type = "virtio"
2024-07-16 16:53:22 +02:00
cache_mode = "unsafe"
2024-07-15 14:58:32 +02:00
}
# networking
2024-07-15 14:58:32 +02:00
network_adapters {
bridge = "vmbr0"
2024-10-24 14:59:41 +02:00
model = "virtio"
2024-07-15 14:58:32 +02:00
}
# misc
http_directory = "ubuntu24/http"
insecure_skip_tls_verify = true
iso_file = "${var.proxmox_iso_pool}/${var.ubuntu_image}"
2024-10-24 14:53:53 +02:00
node = "${var.proxmox_node}"
vm_id = "10002"
tags = "mgmt"
os = "l26"
machine = "q35"
password = "${var.proxmox_password}"
proxmox_url = "${var.proxmox_url}"
scsi_controller = "virtio-scsi-single"
ssh_port = 22
ssh_timeout = "20m"
ssh_username = "${var.template_username}"
ssh_password = "${var.template_password}"
template_description = "${var.template_description} - Created on ${formatdate("DD-MM-YYYY", timestamp())}"
template_name = "${var.template_name}"
unmount_iso = true
username = "${var.proxmox_username}"
2024-07-15 14:58:32 +02:00
}
build {
sources = ["source.proxmox-iso.template"]
provisioner "shell" {
2024-07-15 15:43:19 +02:00
script = "scripts/ubuntu24.sh"
2024-07-15 14:58:32 +02:00
}
}