Automates unattended Debian install testing by:
- injecting preseed/grub config into a Debian ISO,
- rebuilding the ISO,
- boot-testing with KVM/libvirt.
- Linux host
- POSIX shell (
/bin/sh) sudo,xorriso,cpio,gzip,md5sum,busyboxisolinux,syslinux- KVM/libvirt tools:
virt-install,virsh
- Copy config template:
cp config/project.env.example config/project.env- Edit
config/project.envonly. - All scripts auto-load
config/project.env.
Place your local ISO at:
local/iso/debian-12.11.0-amd64-DVD-1.iso
Or change DEBIAN_ISO_PATH in config/project.env.
Do not commit ISO files.
Build custom ISO:
./scripts/build_iso.shRun KVM unattended test:
./scripts/test_iso_kvm.shServe preseed over HTTP:
./scripts/serve_preseed.sh- Custom ISO:
build/auto-debian.iso - Temporary extraction dir:
build/isofiles/(removed after build) - VM disks under libvirt image dir (when test script runs)
Config file not found: createconfig/project.envfrom example.Debian ISO not found: fixDEBIAN_ISO_PATHor put ISO inlocal/iso/.- Missing command errors: install required packages.
busyboxmissing: required forscripts/serve_preseed.sh.
本项目用于 Debian 无人值守安装自动化:
- 将 preseed/grub 配置注入 Debian ISO,
- 重新打包生成新 ISO,
- 用 KVM/libvirt 启动并测试自动安装。
- Linux 主机
- POSIX shell(
/bin/sh) sudo、xorriso、cpio、gzip、md5sum、busyboxisolinux、syslinux- KVM/libvirt 工具:
virt-install、virsh
- 复制模板:
cp config/project.env.example config/project.env- 仅编辑
config/project.env。 - 所有脚本会自动读取该文件。
本地 ISO 默认放在:
local/iso/debian-12.11.0-amd64-DVD-1.iso
也可在 config/project.env 中修改 DEBIAN_ISO_PATH。
不要把 ISO 提交到仓库。
构建自定义 ISO:
./scripts/build_iso.sh执行 KVM 自动安装测试:
./scripts/test_iso_kvm.sh启动 preseed HTTP 服务:
./scripts/serve_preseed.sh- 输出 ISO:
build/auto-debian.iso - 临时目录:
build/isofiles/(构建后自动删除) - 运行测试后在 libvirt 镜像目录生成 qcow2 磁盘
Config file not found:先从 example 复制config/project.env。Debian ISO not found:检查DEBIAN_ISO_PATH或 ISO 放置路径。- 缺少命令:安装依赖包。
- 缺少
busybox:scripts/serve_preseed.sh必需。