Files
worldskills_scripts/common/template/debian13-gui/http/preseed.cfg

148 lines
8.6 KiB
INI

# Debian 13 (Trixie) — fully automated preseed for vSphere template builds
# All packages are resolved from the six mounted BD ISOs; no internet access
# is required during installation.
# ── Locale & keyboard ────────────────────────────────────────────────────────
d-i debian-installer/locale string en_US.UTF-8
d-i localechooser/supported-locales multiselect en_US.UTF-8
d-i keyboard-configuration/model string pc105
d-i keyboard-configuration/layoutcode string us
d-i keyboard-configuration/variantcode string
d-i keyboard-configuration/xkb-keymap select us
d-i keyboard-configuration/options string
d-i console-setup/ask_detect boolean false
d-i console-setup/layoutcode string us
d-i console-setup/variantcode string
# ── Network ──────────────────────────────────────────────────────────────────
# DHCP is used during installation so Packer can reach the VM over SSH.
# No static IP, hostname, or domain is written to the installed system —
# each clone from the template configures its own network on first boot.
d-i netcfg/choose_interface select auto
d-i netcfg/get_hostname string debian
d-i netcfg/get_domain string local
d-i netcfg/hostname string debian
d-i netcfg/wireless_wep string
# ── Mirror / apt sources ──────────────────────────────────────────────────────
# Disable network mirror entirely. All packages come from the six BD ISOs
# that are mounted as CD-ROM drives. The installer scans every optical drive
# automatically and registers them as apt sources.
d-i apt-setup/use_mirror boolean false
d-i apt-setup/no_mirror boolean true
d-i apt-setup/cdrom/set-first boolean true
d-i apt-setup/cdrom/set-next boolean true
d-i apt-setup/cdrom/set-failed boolean true
d-i apt-setup/services-select multiselect
# ── Clock ─────────────────────────────────────────────────────────────────────
d-i clock-setup/utc boolean true
d-i time/zone string UTC
d-i clock-setup/ntp boolean false
# ── Partitioning ──────────────────────────────────────────────────────────────
# GPT layout required for UEFI. Three partitions:
# 1. EFI System Partition — 512 MB fat32
# 2. Swap — 2 GB
# 3. Root — remainder of disk, xfs
d-i partman-auto/disk string /dev/sda
d-i partman-auto/method string regular
d-i partman-partitioning/choose_label string gpt
d-i partman-partitioning/default_label string gpt
d-i partman-lvm/device_remove_lvm boolean true
d-i partman-md/device_remove_md boolean true
d-i partman-lvm/confirm boolean true
d-i partman-lvm/confirm_nooverwrite boolean true
d-i partman/default_filesystem string xfs
d-i partman-auto/choose_recipe select boot-root
d-i partman-auto/expert_recipe string \
boot-root :: \
512 512 512 fat32 \
$primary{ } \
method{ efi } \
format{ } \
. \
2048 2048 2048 linux-swap \
$primary{ } \
method{ swap } \
format{ } \
. \
1000 30000 -1 xfs \
$primary{ } \
method{ format } \
format{ } \
use_filesystem{ } \
filesystem{ xfs } \
mountpoint{ / } \
.
d-i partman-partitioning/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
# ── Users ─────────────────────────────────────────────────────────────────────
# Root only — no regular user created; cloud-init handles user provisioning.
d-i passwd/root-login boolean true
d-i passwd/root-password password Passw0rd!
d-i passwd/root-password-again password Passw0rd!
d-i passwd/make-user boolean false
# ── Package selection ─────────────────────────────────────────────────────────
tasksel tasksel/first multiselect standard, xfce-desktop
d-i pkgsel/include string \
sudo \
openssh-server \
open-vm-tools \
open-vm-tools-desktop \
cloud-init \
smbclient \
curl \
lynx \
dnsutils \
ldap-utils \
ftp \
lftp \
wget \
nfs-common \
rsync \
telnet \
traceroute \
tcptraceroute \
tcpdump \
net-tools \
cifs-utils \
resolvconf \
nmap \
vim
d-i pkgsel/upgrade select full-upgrade
popularity-contest popularity-contest/participate boolean false
# ── Boot loader ───────────────────────────────────────────────────────────────
# On UEFI, grub-efi installs to the EFI System Partition automatically —
# do not specify bootdev or it will conflict with EFI installation.
d-i grub-installer/only_debian boolean true
d-i grub-installer/with_other_os boolean false
# ── Late command ──────────────────────────────────────────────────────────────
# Runs inside the installed system (chroot) just before the first reboot.
# 1. Configure SSH to allow root login and password authentication.
# 2. Enable the SSH service.
# 3. Configure LightDM to auto-login as root so Xfce setup completes on boot.
d-i preseed/late_command string \
in-target sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin yes/' /etc/ssh/sshd_config; \
in-target sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication yes/' /etc/ssh/sshd_config; \
in-target systemctl enable ssh; \
in-target sh -c 'printf "[SeatDefaults]\nautologin-user=root\nautologin-user-timeout=0\n" >> /etc/lightdm/lightdm.conf'; \
in-target mkdir -p /mnt/bd1 /mnt/bd2 /mnt/bd3 /mnt/bd4 /mnt/bd5 /mnt/bd6; \
printf '/dev/sr0\t/mnt/bd1\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n/dev/sr1\t/mnt/bd2\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n/dev/sr2\t/mnt/bd3\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n/dev/sr3\t/mnt/bd4\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n/dev/sr4\t/mnt/bd5\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n/dev/sr5\t/mnt/bd6\tiso9660\tro,nofail,x-systemd.device-timeout=30\t0\t0\n' >> /target/etc/fstab; \
printf 'deb [trusted=yes] file:///mnt/bd1 trixie main\ndeb [trusted=yes] file:///mnt/bd2 trixie main\ndeb [trusted=yes] file:///mnt/bd3 trixie main\ndeb [trusted=yes] file:///mnt/bd4 trixie main\ndeb [trusted=yes] file:///mnt/bd5 trixie main\ndeb [trusted=yes] file:///mnt/bd6 trixie main\n' > /target/etc/apt/sources.list
# ── Finish ────────────────────────────────────────────────────────────────────
# Do not eject the CDs at end of install — leaves the trays open so the
# installed system boots with "no medium" and fstab mounts fail.
d-i cdrom-detect/eject boolean false
d-i finish-install/reboot_in_progress note