Commit Graph

259 Commits

Author SHA1 Message Date
603abe63cb refactor: make bootstrap host target configurable 2026-02-20 16:58:59 +01:00
1c0e6533ae fix(ubuntu): add initramfs-tools to debootstrap base packages 2026-02-20 16:58:59 +01:00
00aa614cfd fix(bootstrap): use explicit keyring for debootstrap and copy resolv.conf 2026-02-20 16:58:59 +01:00
4905d10bc0 fix(cloud-init): handle boolean sudo values in user-data template 2026-02-20 16:58:59 +01:00
b4e8ccb77f fix: re-gather facts after reboot to detect target OS package manager
The live ISO (Arch) caches ansible_pkg_mgr=pacman. After rebooting
into the target OS (e.g. Debian), package module fails because pacman
is not available. Re-gather minimal facts including pkg_mgr.
2026-02-20 16:58:59 +01:00
2a82ee4d5c fix: resolve Jinja2 .keys ambiguity, fastfetch availability, and python interpreter
- Use bracket notation item['keys'] instead of item.keys to avoid
  conflict with Python dict .keys() method
- Remove fastfetch from Debian 12 package list (only available in 13+)
- Set explicit python interpreter path for post-reboot tasks
2026-02-20 16:58:58 +01:00
7b213e7456 fix(partitioning): create separate /boot for LVM-based filesystems
VMware EFI firmware may not initialize all SCSI devices before GRUB
runs, preventing LVM assembly when the root LV spans multiple disks.
A separate /boot partition (the standard RHEL Anaconda layout) lets
GRUB load kernels without LVM; the kernel initramfs handles LVM
activation with proper device waiting.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 04:50:32 +01:00
cfc261878a fix(bootloader): run efibootmgr on host for universal chroot compatibility
The previous approach ran efibootmgr inside the chroot, which only works
with arch-chroot (auto-mounts efivars) but fails silently with
systemd-nspawn or plain chroot. Move EFI boot entry creation to the host
where efivars is always available.

Also fixes wrong EFI loader path (\efi\EFI\... -> \EFI\...) and uses
the correct vendor label (e.g. "redhat" instead of raw os variable).

For non-RHEL distros, grub-install now uses --no-nvram to avoid
redundant NVRAM writes; the host efibootmgr handles entry creation
for all distros uniformly with idempotent pre-check.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 03:36:20 +01:00
eeb580f180 refactor(standardize): fix sudoers lecture syntax, extract ssh config, remove redundant os filters 2026-02-13 00:22:59 +01:00
af5eecfc01 fix(configuration): correct fstab regexp escaping, sudoers newline, locales block scope 2026-02-13 00:02:54 +01:00
bc43b3b994 refactor(standardize): remove redundant variables, deduplicate conditionals 2026-02-12 23:47:41 +01:00
29d365293c fix(banner): correct visudo validate, clean trailing whitespace 2026-02-12 23:33:55 +01:00
c8806c9577 refactor(standardize): remove dead code, fix inconsistencies, update docs 2026-02-12 23:21:51 +01:00
debd1e176f refactor(bootstrap): standardize patterns, extract common logic, remove dead code 2026-02-12 23:14:17 +01:00
8f8ce341ae refactor(users): migrate system.user to system.users[] for multi-user support 2026-02-12 22:52:15 +01:00
66057bc9b2 feat(network): make interfaces[] canonical, normalize flat fields as AWX compat 2026-02-12 22:17:02 +01:00
5108e46a4c fix(lint): wrap long lines to satisfy yaml[line-length] rule 2026-02-12 21:54:09 +01:00
67c320fcc2 fix(vars): enforce strict list-only DNS and user.key format for IaC compatibility 2026-02-12 21:50:55 +01:00
673a9b6062 fix(playbook): reset SSH connection before post-reboot tasks 2026-02-12 02:06:58 +01:00
f8eaa41fc2 fix(partitioning): register swapoff result for changed_when handling 2026-02-11 23:47:36 +01:00
ed8da6e4e2 fix(luks): complete migration of partitioning_luks_tpm2_device reference 2026-02-11 23:28:05 +01:00
a60e6fd0d3 refactor(bootstrap): nest network fields under system.network to match main project schema 2026-02-11 23:03:37 +01:00
45c002c2dd fix(bootstrap): correct changed_when on state-changing commands 2026-02-11 21:06:10 +01:00
7a76f58384 refactor(luks): use system_cfg.luks directly across roles 2026-02-11 19:26:51 +01:00
8c0716508e fix: honor libvirt network config, preserve DHCP DNS with search-only NM config, and exact-match Xen VM names 2026-02-11 14:00:20 +01:00
e5d2720bfe docu(readme): recompose README from pre/post consolidation versions 2026-02-11 08:25:15 +01:00
cd34b41862 fix(banner): align MOTD star border and default motd to disabled 2026-02-11 08:02:27 +01:00
37130da17b fix(libvirt): restore missing virtualization_mac_address default 2026-02-11 08:02:27 +01:00
4be9e2bfe1 refactor(safety): remove redundant live environment detection from system_check 2026-02-11 08:02:27 +01:00
d8fcc6033d refactor(playbook): rename prompt variables with backwards-compatible fallbacks 2026-02-11 08:02:27 +01:00
fc8f43a25a refactor(validation): deduplicate hypervisor combine and collapse schema checks 2026-02-11 08:02:27 +01:00
70475f4082 refactor(system): simplify normalization by removing redundant intermediate merges 2026-02-11 08:02:27 +01:00
865d96c18e fix(bootstrap): repair version-specific package availability across distributions 2026-02-11 08:02:27 +01:00
920e7d3f21 docu(readme): consolidate final documentation state 2026-02-11 05:37:18 +01:00
9f6fff313b fix(config): enable dictionary merge for scoped overrides 2026-02-11 05:37:18 +01:00
e7323258fd refactor(schema): move filesystem into system dictionary 2026-02-11 05:37:18 +01:00
3d026407e5 refactor(configuration): simplify grub commandline variable assembly 2026-02-11 05:37:18 +01:00
469d89641e refactor(configuration): reduce LUKS runtime temporary facts 2026-02-11 05:37:18 +01:00
5326907ae9 refactor(schema): simplify dict normalization and schema checks 2026-02-11 05:37:18 +01:00
aac2bd0b06 docu(schema): update docs and examples to compact dict keys 2026-02-11 05:37:18 +01:00
636656214b refactor(schema): rename nested dict keys and simplify validation 2026-02-11 05:37:18 +01:00
e2a42771ab docu(schema): align docs and baremetal example with dict model 2026-02-11 05:37:18 +01:00
8894da2ea1 fix(validation): reject deprecated top-level schema keys 2026-02-11 05:37:18 +01:00
b8c672507f refactor(vars): simplify normalization and remove effective intermediates 2026-02-11 05:37:18 +01:00
04727033f1 fix(system): default physical installs to archlinux when os is omitted 2026-02-11 05:37:18 +01:00
a9db85d45e docu(readme): document dict-based variables and examples 2026-02-11 05:37:18 +01:00
fcc7c6aeb6 fix(runtime): migrate roles to nested system fields 2026-02-11 05:37:18 +01:00
db08609acf feat(disks): add standardized multi-disk mount schema 2026-02-11 05:37:18 +01:00
961c8f259c refactor(vars): enforce nested system and hypervisor schema 2026-02-11 05:37:18 +01:00
9101e12126 refactor(vars): remove legacy variable inputs 2026-02-11 05:37:18 +01:00