Add Debian 13 Packer build configuration
This commit is contained in:
commit
dcd80cd7a3
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
**/builds/
|
12
LICENSE
Normal file
12
LICENSE
Normal file
@ -0,0 +1,12 @@
|
||||
Copyright (C) 2025 by Kris Lamoureux
|
||||
|
||||
Permission to use, copy, modify, and/or distribute this software for
|
||||
any purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
|
||||
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
||||
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
9
README.md
Normal file
9
README.md
Normal file
@ -0,0 +1,9 @@
|
||||
# pkrbuilds
|
||||
|
||||
This repository contains Packer build configurations for creating virtual
|
||||
machine images. Each directory represents a different OS or distribution with
|
||||
its specific build configurations.
|
||||
|
||||
Navigate to individual directories to find OS-specific build instructions.
|
||||
|
||||
_Licensed under 0BSD_
|
11
debian-13/Makefile
Normal file
11
debian-13/Makefile
Normal file
@ -0,0 +1,11 @@
|
||||
.PHONY: install clean
|
||||
|
||||
HEADLESS ?= true
|
||||
|
||||
default: install
|
||||
|
||||
install:
|
||||
packer build -var 'headless=$(HEADLESS)' .
|
||||
|
||||
clean:
|
||||
rm -rf ./builds
|
24
debian-13/README.md
Normal file
24
debian-13/README.md
Normal file
@ -0,0 +1,24 @@
|
||||
# Debian Trixie Builds
|
||||
|
||||
This directory contains Packer configuration for building Debian 13 (Trixie)
|
||||
images
|
||||
|
||||
## Usage
|
||||
|
||||
Build the image:
|
||||
|
||||
```
|
||||
make
|
||||
```
|
||||
|
||||
Remove build artifacts:
|
||||
|
||||
```
|
||||
make clean
|
||||
```
|
||||
|
||||
Build with a visible VM console for debugging:
|
||||
|
||||
```
|
||||
make HEADLESS=false
|
||||
```
|
48
debian-13/http/preseed.cfg
Normal file
48
debian-13/http/preseed.cfg
Normal file
@ -0,0 +1,48 @@
|
||||
# Select English US
|
||||
d-i debian-installer/locale string en_US
|
||||
d-i keyboard-configuration/xkb-keymap select us
|
||||
|
||||
# Network and mirror
|
||||
d-i mirror/country string manual
|
||||
d-i mirror/http/hostname string deb.debian.org
|
||||
d-i mirror/http/directory string /debian
|
||||
d-i mirror/http/proxy string
|
||||
d-i apt-setup/cdrom/set-first boolean false
|
||||
|
||||
# (Initial) root account setup
|
||||
d-i passwd/make-user boolean false
|
||||
d-i passwd/root-login boolean true
|
||||
d-i passwd/root-password password debian
|
||||
d-i passwd/root-password-again password debian
|
||||
|
||||
# Time
|
||||
d-i clock-setup/utc boolean true
|
||||
d-i time/zone string UTC
|
||||
|
||||
# Partitioning
|
||||
d-i partman-auto/method string regular
|
||||
d-i partman-auto/choose_recipe select atomic
|
||||
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
|
||||
|
||||
# Install SSH server
|
||||
tasksel tasksel/first multiselect ssh-server
|
||||
|
||||
# Opt out of package usage survey
|
||||
popularity-contest popularity-contest/participate boolean false
|
||||
|
||||
# Patch the new instance entirely
|
||||
d-i pkgsel/upgrade select full-upgrade
|
||||
|
||||
# SSH configuration
|
||||
d-i preseed/late_command string \
|
||||
in-target sed -i 's/#PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config
|
||||
|
||||
# Bootloader
|
||||
d-i grub-installer/only_debian boolean true
|
||||
d-i grub-installer/bootdev string default
|
||||
|
||||
# Finish
|
||||
d-i finish-install/reboot_in_progress note
|
3
debian-13/scripts/aptupdate.sh
Normal file
3
debian-13/scripts/aptupdate.sh
Normal file
@ -0,0 +1,3 @@
|
||||
#!/usr/bin/env bash
|
||||
apt-get update
|
||||
apt-get upgrade -y
|
69
debian-13/x86_64-qemu-base.pkr.hcl
Normal file
69
debian-13/x86_64-qemu-base.pkr.hcl
Normal file
@ -0,0 +1,69 @@
|
||||
packer {
|
||||
required_plugins {
|
||||
qemu = {
|
||||
version = ">= 1.1.3"
|
||||
source = "github.com/hashicorp/qemu"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
variable "iso_url" {
|
||||
default = "https://cdimage.debian.org/debian-cd/current/amd64/iso-cd/debian-13.0.0-amd64-netinst.iso"
|
||||
}
|
||||
|
||||
variable "iso_hash" {
|
||||
default = "sha256:e363cae0f1f22ed73363d0bde50b4ca582cb2816185cf6eac28e93d9bb9e1504"
|
||||
}
|
||||
|
||||
variable "disk_size" {
|
||||
default = 102400
|
||||
}
|
||||
|
||||
variable "memory" {
|
||||
default = 2048
|
||||
}
|
||||
|
||||
variable "headless" {
|
||||
default = true
|
||||
}
|
||||
|
||||
source "qemu" "debian-13-64-base" {
|
||||
iso_url = var.iso_url
|
||||
iso_checksum = "${var.iso_hash}"
|
||||
output_directory = "builds/qemu/debian-13-64-base"
|
||||
shutdown_command = "/usr/bin/systemctl poweroff"
|
||||
disk_interface = "virtio"
|
||||
disk_size = var.disk_size
|
||||
memory = var.memory
|
||||
headless = var.headless
|
||||
format = "qcow2"
|
||||
accelerator = "kvm"
|
||||
http_directory = "http"
|
||||
ssh_username = "root"
|
||||
ssh_password = "debian"
|
||||
ssh_timeout = "60m"
|
||||
vm_name = "debian-13-64-base"
|
||||
net_device = "virtio-net"
|
||||
boot_wait = "5s"
|
||||
boot_command = [
|
||||
"<down>",
|
||||
"<tab>",
|
||||
" auto=true",
|
||||
" priority=critical",
|
||||
" hostname=trixie",
|
||||
" domain=",
|
||||
" url=http://{{ .HTTPIP }}:{{ .HTTPPort }}/preseed.cfg",
|
||||
"<enter>"
|
||||
]
|
||||
}
|
||||
|
||||
build {
|
||||
name = "debian-base"
|
||||
sources = ["source.qemu.debian-13-64-base"]
|
||||
|
||||
provisioner "shell" {
|
||||
scripts = [
|
||||
"scripts/aptupdate.sh",
|
||||
]
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user