v1.0.0 - Initial LinuxVitals collection release
Published to Ansible Galaxy.
Added
- Initial release of LinuxVitals as an Ansible collection (
sameeralam3127.linux_vitals), rebranded from thesmart_os_health_checkrole-based project. - Three composable roles:
vitals_scan(read-only discovery and findings),vitals_heal(opt-in one-shot self-healing, disabled by default), andvitals_report(HTML/JSON dashboard, archive retention, Slack/email/generic-webhook notifications). playbooks/healthcheck.yml, runnable locally or via FQCN once installed (sameeralam3127.linux_vitals.healthcheck).- Example inventory and
group_varsunderexamples/. - Baseline/postcheck maintenance workflow:
playbooks/baseline.ymlandplaybooks/postcheck.ymlsnapshot each host's result under a sharedlinux_vitals_maintenance_idand automatically compute a before/after comparison (status change, RAM delta, kernel change, reboot-required change, new/resolved findings) for the postcheck run. - Redesigned, self-contained HTML dashboard: executive KPI row with a health-score ring (pass-rate band: Excellent/Good/Fair/Poor), a searchable and sortable host table with expandable per-host detail rows, status/comparison filter chips, light/dark themes (OS-aware plus a manual toggle), a print/export stylesheet, and a per-host serial number field as a first piece of asset-level drilldown data.
- JSON report (schema 1.1) now includes maintenance phase/id, health-score and comparison rollups, and each host's
asset_serialandcomparisonobject. - Full documentation suite under
docs/(installation, quickstart, configuration reference, variable reference, report guide, examples, troubleshooting, architecture) plusCONTRIBUTING.md. examples/playbooks/custom-thresholds.yml, a working example of overriding thresholds and enabling self-healing for a single run.- Per-role
README.mdforvitals_scan,vitals_heal, andvitals_report(required by Ansible Galaxy's import validation -- the first publish attempt failed with "No role readme found").
Packaging
- Excluded
tests/,pytest.ini, andrequirements.ymlfrom the published tarball viagalaxy.yml'sbuild_ignore-- they're dev/CI-only;galaxy.yml's owndependencies:block is what Galaxy uses to resolvecommunity.generalfor installed-collection consumers. - Verified end-to-end: built the tarball with
ansible-galaxy collection build, installed it into an isolated collections path, and confirmed all three playbooks resolve and execute via FQCN (sameeralam3127.linux_vitals.healthcheck/.baseline/.postcheck) from that installed artifact, independent of the dev symlink.
Changed
- All
smart_os_health_check_*variables, facts, templates, and default report filenames renamed to thelinux_vitals_*/linux_vitals_report.*convention. - Report output path and the
.envsecrets loader now resolve relative toinventory_dirinstead ofplaybook_dir, so both local development and installed-collection usage read/write files in the operator's own project rather than inside the installed package.
Fixed
- Removed a byte-identical duplicate bootloader-detection task that ran the grub probe twice per host.
- Replaced a gawk-only bootloader parser with a portable POSIX
shimplementation (bash/dash/systemshverified) and added numericGRUB_DEFAULTindex resolution. - Stopped counting
lastb's trailingbtmp begins ...footer line as a failed login attempt. - Fixed a Jinja filter-precedence bug where
* 100 | round(1)rounded the literal100instead of the computed percentage. - HTML-escaped journal/
lastb-derived free text in the dashboard template. - Added
no_log: trueto the tasks that load webhook/SMTP secrets from.env.
Security
- Removed real lab IP addresses previously committed in
inventory/hosts.iniandinventory/multipass-10.ini; replaced with RFC 5737 documentation-range examples underexamples/inventory/.