feat(roles/aide): add role and playbook - #392
Open
NavidSassan wants to merge 2 commits into
Open
NavidSassan wants to merge 2 commits into
NavidSassan wants to merge 2 commits into
Conversation
NavidSassan
force-pushed
the
feat/aide-role
branch
from
September 18, 2026 14:37
ccb101f to
faf6ff8
Compare
NavidSassan
force-pushed
the
feat/aide-role
branch
from
September 18, 2026 15:00
faf6ff8 to
2e2512e
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds a role and playbook for AIDE on RHEL 8, 9 and 10. Supersedes #227.
What is in here
aide role and playbook (
featcommit)/etc/aide.confis fully templated. The options and attribute groups follow the installed aide version: 0.16 on RHEL 8, 0.19 on RHEL 9 / 10. The two are not config-compatible (databasevsdatabase_in,verbosevslog_level, removed hashsums). The rules live inaide__rules__role_varand default to the list RHEL 9 / 10 ship. Items are keyed bypath, so the inventory can override a default rule in place, remove it withstate: 'absent', or add new ones (regular,equal,negative).aide-check.service(oneshot, low CPU / IO priority) runsaide --checkfromaide-check.timer. Any finding leaves the unit failed; there is no mail. The unit names and database paths are the onessystem_updatealready expects for its re-baseline after updates.system_updateuses. Otherwise the database is left alone and the run says so at the end.--tags aide:update_db(never-tagged) accepts the current state and clears the failed unit.system_update security lane (
fixcommit)/var/log/aide/aide.log-pre-security-update) and re-baselines after a transaction that changed packages if the check was clean. Without this, every hot-fix made the next check fail. The AIDE code of both lanes is otherwise identical.Points worth a close look
/root/.ansible/tmpis excluded on top of the stock list. Without it,aide --initrecords the temporary directory of its own Ansible task, and every later check reports it as removed.combine_lodkeeps an overridden item in its original position, which is what makes overriding a default rule work.Testing
aideon rocky8/9/10: passes (converge, verify, idempotence, verify).verify.ymlchecks that:negativerule and below a removed default rule (/opt) are not reported--tags aide:update_dbrecovers the hostbaseos+appstreamas the security repos): Rocky 9 / 10 re-baseline and the next check passes, while a check against the pre-update database fails (rc 7); Rocky 8 with a failing check leaves the database alone and keeps the log. Thesystem_updatescenario still passes on rocky8/9/10.