Add per-model OptiPlex kickstart variants from live Cobbler #2
Reference in New Issue
Block a user
Delete Branch "benvin/optiplex-models"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Why
The seed
almalinux9kickstart (PR #1) reconstructed the Cobbler contract frommemory and had to guess at storage: it installed to
sdawithautopartand set keyboard
us. The live Cobbler server (cobbler.main.unkin.net)actually provisions the OptiPlex fleet from three model-specific profiles —
almalinux9-dell_3050,_3060,_7080— that all install to NVMe with anexplicit LVM layout and differ from each other in real, hardware-driven ways.
Capturing those per-model differences is the point of this change.
Fleet today (from Cobbler
get_systems): 3050 ×7, 3060 ×1, 7080 ×5(the
prodnxsr00xxhosts).Per-model difference matrix (from the rendered Cobbler kickstarts)
nvme0n1--location=mbr%prepicks first NVMe <512G, wipes old rootvg--location=mbr --boot-drive=$OSDISK%prepicks first NVMe <512G, wipes old rootvg--location=mbr --boot-drive=$OSDISK3060 and 7080 differ only by the PV
--grow. All three share the sameexplicit layout:
/boot(xfs 1G), PV →rootvg→/10G,swap2G,/home~9G,
/var/log10G.How
One shared template, per-model data — no code change in bootapi:
kickstart/almalinux9.ks.tmplstorage is now driven by.DistroVars.storage_mode:fixed-nvme(3050),auto-nvme(3060/7080, withthe
%preNVMe picker + rootvg wipe + EFI detection), and.DistroVars.vg_growadds
--grow(7080). Any entry without those vars (plainalmalinux9,fedora) keeps the generic autopart-on-sdapath unchanged.catalog/optiplex-3050|3060|7080.yaml— one entry per model, selecting theshared
almalinux9kickstart. Selected via a device'sprovision_templatecustom field set to the OptiPlex device_type slug (
optiplex-3050etc);the entry
match.platformsis that same slug so it is only ever reached viathe override and never hijacks a plain
almalinux9host.Corrections vs the reconstructed seed template (each cited to Cobbler)
sda+autopart→ NVMe + explicit LVM — real hosts are NVMe witha fixed layout (
almalinux9_dell3050/3060/7080); this was the seed's biggestguess.
keyboard us→au— all Cobbler dell profiles use--xlayouts='au'.%addon com_redhat_kdump+kexec-tools(andbind-utils) — presentin every Cobbler dell profile; the seed already appended
crashkernel=autoatthe bootloader but never enabled kdump, so this completes it.
Not replicated (deliberate, called out): Cobbler's 3050 profile serves its repos
over plain
httpwhile 3060/7080 usehttps --noverifyssl, and 3050 uses aduplicated
timezone --isUtcline vs--utcelsewhere. These are Cobbler-eradrift, not a model requirement — bootapi drives the install tree from the single
catalog
mirrorvar, so they normalize away.Fixtures / CI
bootapi validatebuilds one fixture host per catalog entry, so the threenew entries add fixture coverage for 3050, 3060 and 7080 automatically. All CI
green locally:
bootapi validate .OK,ci/shellcheck-post.shno errors,pre-commit run --all-filesall passed. Rendered output for each model waseyeballed against the Cobbler originals.
Open decisions
almalinux8-dell_3050,debian12.5-dell_3050/_3060and unbound legacy templates (almalinux9_dell,almalinux9_dell_uefi) with no systems assigned. Only AlmaLinux 9 across3050/3060/7080 is live, so only those are ported here.
openvox-agent+ apuppet-initialpackage from the internal repos; this template keeps bootapi's deliberate
design of installing
puppet-agentfromyum.puppet.comin%postand theprovisioned callback (per template-authoring.md). Left as-is; flag if you want
the openvox path instead.
Dependency
Based on
benvin/bootapi-templates-initial(seed PR #1), which is not yetmerged. Targeting that branch; retarget to
mainonce #1 lands.https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv