Add per-model OptiPlex kickstart variants from live Cobbler
The seed almalinux9 kickstart reconstructed the Cobbler contract from memory and guessed storage: it installed to sda with autopart and keyboard us. The real Cobbler server (cobbler.main.unkin.net) provisions the OptiPlex fleet from three model-specific profiles (almalinux9-dell_3050 / _3060 / _7080) that all install to NVMe with an explicit LVM layout and differ in disk selection, EFI handling and whether the VG grows. This folds that real content in, keeping one shared template driven by per-model catalog data. Changes: - Make almalinux9.ks.tmpl storage model-aware via .DistroVars.storage_mode: fixed-nvme (static nvme0n1, BIOS/MBR), auto-nvme (%pre picks the internal NVMe, UEFI-aware, --boot-drive), with vg_grow to grow the PV; generic/VM hosts keep the autopart-on-sda path. - Port the explicit LVM layout (/boot, root, swap, /home, /var/log) and the %pre NVMe picker + rootvg wipe from the real Cobbler dell templates. - Add catalog entries optiplex-3050 (fixed-nvme), optiplex-3060 (auto-nvme) and optiplex-7080 (auto-nvme + vg_grow), selected by a device's provision_template custom field set to the OptiPlex device_type slug. - Correct keyboard us -> au and add the kdump addon + kexec-tools/bind-utils to match the Cobbler profiles. - Document the per-model variants and selection in catalog/README.md. Claude-Session: https://claude.ai/code/session_015ur3i7D2azsMAWTSVABApv
This commit is contained in:
+32
-1
@@ -26,9 +26,40 @@ YAML + template change here — **no bootapi code change**.
|
||||
## Shipped entries
|
||||
|
||||
- **almalinux9** — artifactapi `almalinux` remote, tree
|
||||
`almalinux/<ver>/BaseOS/<arch>/os/`.
|
||||
`almalinux/<ver>/BaseOS/<arch>/os/`. Generic / VM default (autopart on `sda`).
|
||||
- **fedora** — artifactapi `fedora` remote, tree
|
||||
`fedora/releases/<ver>/Everything/<arch>/os/`.
|
||||
- **optiplex-3050 / optiplex-3060 / optiplex-7080** — AlmaLinux 9 on the Dell
|
||||
OptiPlex fleet. Same install tree and `almalinux9` kickstart template, but
|
||||
each passes a `storage_mode` (and, for the 7080, `vg_grow`) var so the one
|
||||
template lays disks out per model. Ported from the Cobbler profiles
|
||||
`almalinux9-dell_3050 / _3060 / _7080`. See "Per-model variants" below.
|
||||
|
||||
## Per-model variants (Dell OptiPlex)
|
||||
|
||||
Different OptiPlex models need slightly different storage handling, so each is
|
||||
its own catalog entry selecting the shared `almalinux9` kickstart with a
|
||||
model-specific `storage_mode` var:
|
||||
|
||||
| Entry | `storage_mode` | Disk selection | Firmware | LVM PV |
|
||||
|-------|----------------|----------------|----------|--------|
|
||||
| `optiplex-3050` | `fixed-nvme` | static `nvme0n1` | legacy BIOS/MBR | fixed ~31G |
|
||||
| `optiplex-3060` | `auto-nvme` | `%pre` picks first NVMe <512G | UEFI-aware (EFI part if booted UEFI) | fixed ~31G |
|
||||
| `optiplex-7080` | `auto-nvme` + `vg_grow: "true"` | `%pre` picks first NVMe <512G | UEFI-aware | grows to fill disk |
|
||||
|
||||
The kickstart (`kickstart/almalinux9.ks.tmpl`) reads `.DistroVars.storage_mode`
|
||||
/ `.DistroVars.vg_grow` and renders the matching storage stanza; any entry
|
||||
without those vars (e.g. plain `almalinux9`, `fedora`) gets the generic
|
||||
autopart-on-`sda` path.
|
||||
|
||||
**Model selection (NetBox-driven, no code change):** the entry `name` is the
|
||||
OptiPlex **device_type slug**. Set the device's `provision_template` custom
|
||||
field to that slug (`optiplex-3050` / `-3060` / `-7080`) and bootapi's catalog
|
||||
`Select` picks the matching entry (override precedence beats platform/family).
|
||||
The `match.platforms` slug on each entry is the device_type slug too — not a
|
||||
real NetBox platform slug — so these entries are *only* reachable via the
|
||||
override and never hijack a plain `almalinux9` host. To add another model, copy
|
||||
one of these files, change the `name`/slug and `storage_mode`.
|
||||
|
||||
## Adding another distro (the intended path)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user