Compare commits

..
88 Commits
Author SHA1 Message Date
sandwich 5a43c9a29e feat(bootstrap): install xz-utils in the debian and ubuntu base set 2026-09-21 14:59:50 +02:00
sandwich 9cc0c704a7 fix(global_defaults): read dict2items key and key enrichment on os 2026-09-15 21:05:37 +02:00
sandwich 96220d424e fix(partitioning): resolve vmware disks by scsi target instead of the sdX letter 2026-09-15 20:19:53 +02:00
sandwich b927099087 fix(configuration): disable selinux with selinux=0 on el9 when the feature is off 2026-08-31 13:45:06 +02:00
sandwich 34ba56cf51 fix(configuration): disable the preset-enabled firewall daemon when the feature is off 2026-08-31 13:40:41 +02:00
sandwich 58c194d133 fix(system_check): retry transient vcenter api errors in the preflight lookups 2026-08-31 13:11:16 +02:00
sandwich 04dc1baa99 fix(global_defaults): normalize disks when install_drive is supplied externally 2026-08-24 18:38:48 +02:00
sandwich bf85af462c fix(configuration): put new EFI boot entry first and install removable fallback 2026-07-31 20:33:54 +02:00
sandwich be8eabaebc fix(bootstrap): map Intel firmware to linux-firmware-intel so iwlwifi loads 2026-07-31 20:33:54 +02:00
sandwich 9fbdcfe4e0 style(cleanup): drop redundant comments from the power-off tasks 2026-07-15 00:09:44 +02:00
sandwich 26713dccad fix(cleanup): wait for the guest shutdown before forcing the VM off 2026-07-15 00:05:38 +02:00
sandwich 05a9c15f8f docs(content): correct the family default to rhel=dvd, not EL=dvd 2026-07-14 21:14:41 +02:00
sandwich b23a895bd9 fix(cleanup): force-stop the vmware VM before booting the installed OS 2026-07-14 06:48:25 +02:00
sandwich ce7e4c85ac feat(system_check): preflight boot media and datastore placement 2026-07-14 01:48:26 +02:00
sandwich 408fc78920 fix(configuration): grant the platform sudo group only when sudo is set 2026-07-14 01:48:26 +02:00
sandwich 80983a05c2 fix(configuration): deploy sudoers rules for bool-or-string sudo values 2026-07-14 01:48:26 +02:00
sandwich 78403381f7 fix(configuration): allow guest-exec RPCs for EL golden cloning 2026-05-29 22:43:14 +02:00
sandwich f43e9e55c9 fix(cleanup): force-stop then start the proxmox VM after install 2026-05-29 22:40:02 +02:00
sandwich 8dd0ee0fbd fix(environment): pick the largest cdrom as the RHEL install DVD 2026-05-28 17:52:44 +02:00
sandwich ffc54d25b1 fix(satellite): drop auto-attach (mutually exclusive with activation key) 2026-05-26 01:08:09 +02:00
sandwich b2e3a7ed41 fix(virtualization): create vmware target folder before vm deploy 2026-06-04 18:17:50 +02:00
sandwich dbd5ba55bd feat: accept proxmox API-token auth alongside password 2026-05-31 12:40:31 +02:00
sandwich 4acb8ccb39 fix(encryption): add tpm2-tss dracut module explicitly for TPM2 LUKS 2026-05-31 12:39:24 +02:00
sandwich 609c1e2ece fix(configuration): enable per-family time-sync and skip sudo-rs lecture 2026-05-31 12:30:26 +02:00
sandwich f534b9161f feat(configuration): multi-backend networking, bind by match not MAC 2026-05-31 12:25:53 +02:00
sandwich 3d7772823f fix: EL10 PAM and crypto readiness via authselect profile and DEFAULT policy 2026-05-28 17:30:57 +02:00
sandwich a64553b0a0 fix(bootstrap): keep package cache off the 2 GiB CIS /var during install 2026-05-28 17:26:25 +02:00
sandwich 3b68a65ab7 refactor(global_defaults): single source of truth for family-default resolution 2026-05-28 17:25:23 +02:00
sandwich 45e7c214bd refactor(configuration): consolidate firewall into one phase-aware path 2026-05-27 05:28:00 +02:00
sandwich f66a71f27a feat: uniform system.content source schema across installers and repositories 2026-05-27 05:15:32 +02:00
sandwich 8ebed3aa0f feat: golden-image build support (cloud-init on EL, selinux relabel, SSH wait) 2026-05-27 05:05:55 +02:00
sandwich 197e9815e3 feat(cis): add selectable profile and per-rule hardening toggles 2026-05-25 04:37:33 +02:00
sandwich f7674722bc feat(hardware): auto-detect audio, bluetooth, camera with declarative override 2026-05-25 04:36:21 +02:00
sandwich afebd0a7fe feat(bootstrap): per-os desktop apps, KDE plasma-login-manager and DM resolution 2026-05-25 04:30:53 +02:00
sandwich 0e7c64b27e fix(environment): co-upgrade soname closure when installing installer tools 2026-05-25 03:54:12 +02:00
sandwich 98d8a07a70 fix(bootstrap): deploy all non-EOL core distros (keyrings, repos, versions) 2026-05-25 03:52:44 +02:00
sandwich 48ad1b9c9d docs: refresh bootstrap examples and README 2026-05-30 18:05:14 +02:00
sandwich 2c4bf6f099 fix: encryption, partitioning, cis and virtualization hardening 2026-05-30 18:05:14 +02:00
sandwich 0f405c387c fix(users): accept plaintext or pre-hashed passwords uniformly 2026-05-30 18:05:05 +02:00
sandwich f13616a809 feat: hardware/firmware/gpu/peripherals detection and packages 2026-05-30 18:05:05 +02:00
sandwich be1dfc9528 feat: complete wayland desktop deployment (gnome/kde/sway/hyprland) 2026-05-30 18:05:05 +02:00
sandwich 1a622530cd refactor: trim bootstrap OS support to core three distro families 2026-05-30 18:04:00 +02:00
sandwich 329533b08b docs(bootstrap): fix users dict format in examples, sync schema defaults, document secure_boot/rhel_repo 2026-05-30 09:25:34 +02:00
sandwich 512f4a3a5c refactor(global_defaults): drop orphan luks.urandom/verify and aur feature, bump fedora to 45 2026-05-30 09:25:34 +02:00
sandwich fd6ceb60cd fix(lint): convert sshd restart to handler, add pipefail to btrfs subvol set 2026-05-30 09:25:34 +02:00
sandwich ce8640af9b fix(configuration): tolerate missing units, gate Secure Boot to supported OSes, fix clevis install per family 2026-05-30 09:25:34 +02:00
sandwich 61d21fbdeb docs(bootstrap): document firmware/gpu/peripherals/hardware features 2026-05-30 09:25:34 +02:00
sandwich aa4b94fee2 feat(bootstrap): install vendor-matched hardware packages 2026-05-30 09:25:34 +02:00
sandwich a523c843e4 feat(environment): detect cpu/gpu/wireless/fingerprint hardware 2026-05-30 09:25:34 +02:00
sandwich a32e3308fc feat(global_defaults): firmware/gpu/peripherals/hardware schema 2026-05-30 09:25:34 +02:00
sandwich 310613072d fix(configuration): guard user keys access to avoid dict.keys() method collision 2026-04-16 15:37:13 +02:00
sandwich ed483d401a feat(cleanup): enroll Secure Boot keys in VM NVRAM after OS installation 2026-04-16 15:37:13 +02:00
sandwich 43e6867a8c feat(virtualization): enable TPM2 emulation for Secure Boot VMs 2026-04-16 15:37:13 +02:00
sandwich 5b66df7e7b feat(configuration): auto-bind PCR 7 when Secure Boot and FDE are both enabled 2026-04-16 15:37:13 +02:00
sandwich aef1375392 feat(configuration): add Secure Boot tasks for shim and sbctl 2026-04-16 15:37:13 +02:00
sandwich 1d3a0817cb feat(configuration): override EFI loader to shim when Secure Boot enabled 2026-04-02 04:34:47 +02:00
sandwich c2dcbe418e feat(bootstrap): add Secure Boot conditional packages for Debian, Ubuntu, and Arch 2026-04-02 04:34:16 +02:00
sandwich 224ce47e26 feat(global_defaults): add secure_boot feature toggle with normalization 2026-04-02 04:33:07 +02:00
sandwich 5c727797b9 docs(bootstrap): document desktop, initramfs, and FDE features with SSH keepalive config 2026-04-01 15:07:58 +02:00
sandwich c2269d7443 feat(configuration): generic FDE with systemd-cryptenroll, clevis fallback, and configurable initramfs 2026-04-01 15:07:58 +02:00
sandwich de75466d89 fix(configuration): RedHat EFI grub wrapper with btrfs subvol prefix and boot order 2026-04-01 15:07:58 +02:00
sandwich a498b879a4 fix(partitioning): set btrfs default subvolume and restrict @pkg to Arch 2026-04-01 15:07:58 +02:00
sandwich 8664a26e89 fix(bootstrap): resolve interface-only network, sshd penalties, dnf scriptlets, and EFI cleanup 2026-04-01 15:07:58 +02:00
sandwich 2c2f7161e9 feat(bootstrap): add desktop environment support with configurable DE, DM, and display target 2026-04-01 15:07:58 +02:00
sandwich 1d4b335414 fix(configuration): use /boot/grub2/grub.cfg for RedHat EFI grub config 2026-03-25 16:03:39 +01:00
sandwich a6136520d5 feat(packages): add needrestart to Debian and Ubuntu package lists 2026-03-20 18:06:14 +01:00
sandwich dd819ec8b5 feat(bootstrap): add full package upgrade step for Debian and Ubuntu 2026-03-20 18:05:04 +01:00
sandwich fdd9e60970 fix(vim): use vimscript comment syntax for blockinfile markers in vimrc 2026-03-20 18:00:12 +01:00
sandwich bb1e42b0e3 fix(sudo): use explicit string check instead of bool conditional for sudo field 2026-03-20 17:31:49 +01:00
sandwich 9e6d7b75be fix(connection): set ansible_port explicitly at every connection transition 2026-03-20 17:31:49 +01:00
sandwich 4e381435d1 fix(vmware): use primary ansible_* vars for vmware_tools connection plugin precedence 2026-03-20 17:31:49 +01:00
sandwich e5f9bd8ad3 fix(vmware): use empty password for vmware_tools during live ISO bootstrap 2026-03-20 17:31:49 +01:00
sandwich 4f4ce8cd71 fix(users): update cloud-init template and input validation for dict users 2026-03-20 17:31:49 +01:00
sandwich 8c0e7e6dd3 refactor(prompts): remove vars_prompt, require users defined in inventory 2026-03-20 17:31:49 +01:00
sandwich b542d30900 fix(prompts): add default values to vars_prompt to skip in non-interactive mode 2026-03-20 17:31:49 +01:00
sandwich b7eb9222b0 refactor(users): change system.users from list to dict keyed by username 2026-03-20 17:31:49 +01:00
sandwich 505b087ec5 fix(configuration): make root password, user keys, and sudo all optional 2026-03-20 17:31:49 +01:00
sandwich 37b94172af fix(cloud-init): handle missing keys and make sudo conditional 2026-03-20 17:31:49 +01:00
sandwich 1282ef0a76 fix(cleanup): remove ansible_become override that blocks swapoff/umount 2026-03-20 17:31:49 +01:00
sandwich 6bfc5f6eb5 feat(global_defaults): add system.features.aur schema for validation passthrough 2026-03-20 17:31:49 +01:00
sandwich af06eb10ae refactor(virtualization): extract shared Xen disk definitions 2026-03-12 12:27:18 +01:00
sandwich aad8bb3bbd refactor: remove unnecessary changed_when from set_fact tasks 2026-03-12 12:25:45 +01:00
sandwich ca76f4445e refactor(partitioning): remove redundant blockdev --rereadpt calls 2026-03-12 12:25:15 +01:00
sandwich 0be7bf4aba refactor(partitioning): remove unused register variables 2026-03-12 12:24:59 +01:00
sandwich 20d7dcbc5f chore: suppress args[module] false positives from variable-based module_defaults 2026-03-12 12:12:27 +01:00
sandwich c1266d0daa fix(cleanup): add no_log to Proxmox VM restart task 2026-03-12 12:12:27 +01:00
sandwich f047be119d fix(virtualization): add missing changed_when to Xen VM stop task 2026-03-12 12:12:27 +01:00
sandwich a76573ff21 fix(configuration): replace fail+ignore_errors with debug for TPM2 fallback warning 2026-03-12 12:12:27 +01:00
3 changed files with 9 additions and 7 deletions
+2
View File
@@ -206,6 +206,7 @@ bootstrap_debian:
- openssh-server
- python3
- xfsprogs
- xz-utils
extra:
- bat
- curl
@@ -258,6 +259,7 @@ bootstrap_ubuntu:
- openssh-server
- python3
- xfsprogs
- xz-utils
extra:
- bash-completion
- bat
+3 -1
View File
@@ -35,10 +35,12 @@
}, recursive=True)
}}
# Keyed on os, not hostname: inventories set hostname themselves, and doing so
# would otherwise skip enrichment and leave os undefined for validation.
- name: Check if pre-computed system_cfg needs enrichment
when: system_cfg is defined
ansible.builtin.set_fact:
_bootstrap_needs_enrichment: "{{ hostname is not defined }}"
_bootstrap_needs_enrichment: "{{ os is not defined }}"
- name: Merge pre-computed system_cfg with bootstrap system_defaults
when:
+4 -6
View File
@@ -317,7 +317,7 @@
_autologin: "{{ system_cfg.features.desktop.autologin | default(false) }}"
ansible.builtin.assert:
that:
- _autologin is boolean and not _autologin or (_autologin is string and _autologin | length > 0 and _autologin in system_cfg.users)
- _autologin is boolean and not _autologin or (_autologin is string and _autologin | length > 0 and _autologin in system_cfg.users | map(attribute='name'))
fail_msg: >-
desktop.autologin must be false or a username string present in
system.users; got '{{ _autologin }}'. Bool true is not accepted - the
@@ -355,14 +355,12 @@
- name: Validate at least one user with a password is defined
vars:
_pw_users: "{{ system_cfg.users | dict2items | selectattr('value.password', 'defined') | list }}"
_pw_users: "{{ system_cfg.users | selectattr('password', 'defined') | map(attribute='password') | map('string') | reject('equalto', '') | list }}"
ansible.builtin.assert:
that:
- system_cfg.users | default({}) | length > 0
- system_cfg.users | default([]) | length > 0
- _pw_users | length > 0
- _pw_users[0].key | string | length > 0
- _pw_users[0].value.password | string | length > 0
fail_msg: "At least one user with a password must be defined in system.users."
fail_msg: "At least one user with a non-empty password must be defined in system.users."
quiet: true
no_log: true