diff --git a/Debian/debian-13.pkr.hcl b/Debian/debian-13.pkr.hcl new file mode 100644 index 0000000..49b05f6 --- /dev/null +++ b/Debian/debian-13.pkr.hcl @@ -0,0 +1,72 @@ +variable "proxmox_apiuser" { + type = string + default = "packer" +} + +variable "proxmox_apitoken" { + type = string + default = "changeme" +} + +source "proxmox-iso" "debian-13" { + template_name = "debian-13" + template_description = "Debian 13.0, generated on ${timestamp()}" + vm_id = "209" + boot_wait = "10s" + boot_key_interval = "200ms" + boot_command = ["", "auto url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/debian.cfg", ""] + + http_directory = "http" + http_port_max = "8089" + http_port_min = "8080" + + os = "l26" + 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://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.0.0-amd64-netinst.iso" + iso_checksum = "sha256:e363cae0f1f22ed73363d0bde50b4ca582cb2816185cf6eac28e93d9bb9e1504" + iso_download_pve = true + iso_storage_pool = "iso" + unmount = true + } + + ssh_username = "xadmin" + ssh_password = "packer" + ssh_timeout = "20m" +} + +build { + sources = ["source.proxmox-iso.debian-13"] + + provisioner "shell" { + script = "scripts/debian-install.sh" + } + + provisioner "file" { + source = "scripts/initial-setup.sh" + destination = "/home/xadmin/initial-setup.sh" + } +} diff --git a/http/debian.cfg b/http/debian.cfg index a41e666..808d852 100644 --- a/http/debian.cfg +++ b/http/debian.cfg @@ -60,36 +60,33 @@ d-i clock-setup/ntp boolean true d-i clock-setup/ntp-server string ntp.example.com ### Partitioning -#d-i partman-auto/disk string /dev/sda +# Use regular partitioning (no LVM) d-i partman-auto/method string regular -d-i partman-lvm/purge_lvm_from_device boolean true -d-i partman-md/device_remove_lvm boolean true +d-i partman-auto/choose_recipe select custom-plain d-i partman-md/device_remove_md boolean true -d-i partman-lvm/confirm boolean true -# atomic: all files in one partition -# home: separate /home partition -# multi: separate /home, /usr, /var, and /tmp partitions -d-i partman-auto/choose_recipe select atomic +# Custom recipe definition +d-i partman-auto/expert_recipe string \ + custom-plain :: \ + 1000 1000 1000 ext4 \ + $primary{ } $bootable{ } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + mountpoint{ /boot } \ + . \ + 4096 4096 4096 linux-swap \ + $primary{ } \ + method{ swap } format{ } \ + . \ + 10000 1000000000 -1 ext4 \ + $primary{ } \ + method{ format } format{ } \ + use_filesystem{ } filesystem{ ext4 } \ + mountpoint{ / } \ + . -#d-i partman-auto/expert_recipe string \ -# boot-root :: \ -# 1000 1000 1000 ext3 \ -# $primary{ } $bootable{ } \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ ext3 } \ -# mountpoint{ /boot } \ -# . \ -# 256 512 768 linux-swap \ -# method{ swap } format{ } \ -# . \ -# 5000 10000 1000000000 xfs \ -# method{ format } format{ } \ -# use_filesystem{ } filesystem{ xfs } \ -# mountpoint{ / } \ -# . - -d-i partman-partitioning/confirm_write_new_label boolean true +# Accept partitioning without asking +d-i partman/confirm_write_new_label boolean true d-i partman/choose_partition select finish d-i partman/confirm boolean true d-i partman/confirm_nooverwrite boolean true