Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Allow setup aide inside of cron job #7

Merged
merged 4 commits into from
Jan 7, 2025
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,33 @@ Default: `false`

Type: `bool`

### aide_cron_check

Set up periodic cron check for aide
radosroka marked this conversation as resolved.
Show resolved Hide resolved

Default: `false`
radosroka marked this conversation as resolved.
Show resolved Hide resolved

Type: `bool`

### aide_cron_interval

Set check interval for cron

``` yaml
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * *
```

Default: `0 12 * * *`

Type: `string`

## Example Playbook

Including an example of how to use your role (for instance, with variables
Expand Down
14 changes: 14 additions & 0 deletions defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,17 @@ aide_check: false

# Enable database update phase
aide_update: false

# Enable periodic check
aide_cron_check: false

# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * *
# Set cron check interval
aide_cron_interval: "0 12 * * *"
1 change: 1 addition & 0 deletions examples/default.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@
aide_fetch_db: false
aide_check: false
aide_update: false
aide_cron_check: false
ansible.builtin.include_role:
name: linux-system-roles.aide
14 changes: 14 additions & 0 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,17 @@
ansible.builtin.file:
path: "{{ __aide_db_new_name }}"
state: absent

- name: Update aide check cron configuration if necessary
ansible.builtin.lineinfile:
path: /etc/crontab
regexp: "^.* root /usr/sbin/aide --check"
line: "{{ aide_cron_interval }} root /usr/sbin/aide --check"
when: aide_cron_check | bool

- name: Remove aide check cron configuration if necessary
ansible.builtin.lineinfile:
path: /etc/crontab
state: absent
regexp: "^.* root /usr/sbin/aide --check"
when: not aide_cron_check | bool
21 changes: 21 additions & 0 deletions tests/tests_check_cron.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# SPDX-License-Identifier: MIT
---
- name: Ensure that the cron is set up
hosts: all
gather_facts: false # test that role works in this case
roles:
- role: linux-system-roles.aide
vars:
aide_init: true
aide_cron_check: true
aide_cron_interval: "0 12 * * *"
tasks:
- name: Check file content
ansible.builtin.lineinfile:
path: /etc/crontab
regexp: "^0 12 \\* \\* \\* root /usr/bin/aide --check"
state: absent
check_mode: true
changed_when: false
vars:
__fingerprint: system_role:aide
radosroka marked this conversation as resolved.
Show resolved Hide resolved
2 changes: 1 addition & 1 deletion vars/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

# Examples of non-distribution specific (generic) internal variables:
__aide_config: aide.conf
__aide_packages: ['aide']
__aide_packages: ["aide", "crontabs"]
__aide_services: []
__aide_db_name: /var/lib/aide/aide.db.gz
__aide_db_new_name: /var/lib/aide/aide.db.new.gz
Expand Down
Loading