Repository navigation
v1.2.0 - Molecule scenarios and distro detection hardening
Published to Ansible Galaxy.
This release folds in the unpublished 1.1.0 work. See CHANGELOG.md for the full detail.
Testing (1.2.0)
- Molecule scenarios for Ubuntu 24.04, Rocky Linux 9, Fedora 42, and openSUSE Leap 15, each booting a container with systemd as PID 1 and running
vitals_scan->vitals_heal->vitals_reportend to end, asserted against the generated JSON report, the rendered dashboard, and the container itself. Run as a CI matrix on every push. See docs/testing.md.
Fixed by what those scenarios found
- Self-healing never restarted anything. It required
state == 'failed'and astatuscontainingenabled, butservice_factsreports a failed systemd unit asstate: stopped, status: failed, so nothing could ever match both. - Healing outcomes never reached the report --
vitals_scanbuilds the result beforevitals_healruns, leavingservices_healed,healing_results, and the follow-up findings empty. - The scan crashed on any host without a separate
/bootmount, common on cloud images that keep/booton the root filesystem. selinux_statusrendered as an empty string on Debian hosts.
Kernel and reboot detection (1.1.0)
- Reboot detection reports how it decided:
reboot_required_source,reboot_detection_supported,reboot_required_packages, and a human-readablereboot_reason, surfaced in the JSON report (schema1.2), webhook payload, Slack breakdown, and dashboard. - Per-distro handling: Debian/Ubuntu marker files plus pending packages,
needs-restartingon RHEL with adnf needs-restarting --reboothintfallback for dnf5, andzypper needs-rebootingon SUSE. - Bootloader default resolution now understands BLS drop-in entries and systemd-boot
loader.confdefaults, and normalises kernel paths before comparison. - An unusable distro check is no longer read as "no reboot needed" -- those hosts fall back to a running-vs-latest kernel comparison and say so.
- New docs/kernel-reboot-detection.md documenting the detection order and known edge cases.