2
0
Fork 0

feat(cron): allow to run fusioninventory with a cronjob

This commit is contained in:
Tristan Charbonneau 2023-08-07 10:48:51 +02:00
parent 575004b092
commit 014aa5fc62
4 changed files with 85 additions and 0 deletions

View File

@ -2,6 +2,7 @@
### Enhancement ### Enhancement
* Upgrade package version from URL from 2.4 to 2.6 (thanks to @roumano - issue #15). * Upgrade package version from URL from 2.4 to 2.6 (thanks to @roumano - issue #15).
* Allow running the agent with a cron job instead of the service (thanks to @yodabzh - issue #18)
### Fix ### Fix
* Switch to Github URL to download deb file (thanks to @roumano - PR #16). * Switch to Github URL to download deb file (thanks to @roumano - PR #16).

View File

@ -25,6 +25,17 @@ A role to manage FusionInventory agent installation and configuration.
* **fusioninventory__agent_service_manage**: If the fusioninventory agent service should be managed [default: `true`]. * **fusioninventory__agent_service_manage**: If the fusioninventory agent service should be managed [default: `true`].
* **fusioninventory__agent_conf_src**: Template used to provide agent configuration file [default: `../templates/etc/fusioninventory/agent.cfg.j2`]. * **fusioninventory__agent_conf_src**: Template used to provide agent configuration file [default: `../templates/etc/fusioninventory/agent.cfg.j2`].
## Cron variables
* **fusioninventory__agent_conf_cron**: Enable (`"present"`) or disable (`"absent"`) a job cron to run the agent [default: `"absent"`].
* **fusioninventory__agent_conf_cron_day**: Which days should the agent be ran [default: `"*"`].
* **fusioninventory__agent_conf_cron_hour**: Which hours should the agent be ran [default: `"23"`].
* **fusioninventory__agent_conf_cron_minute**: Which minutes should the agent be ran [default: `"0"`].
* **fusioninventory__agent_conf_cron_month**: Which months should the agent be ran [default: `"*"`].
* **fusioninventory__agent_conf_cron_weekday**: Which weekdays should the agent be ran [default: `"*"`].
* **fusioninventory__agent_conf_cron_user**: Which user should the agent be ran under [default: `"root"`].
* **fusioninventory__agent_conf_command**: The command should cron run [default: `"sleep $(( RANDOM \\% 3600 )); /usr/bin/fusioninventory-agent"`].
### Config Specific Variables ### Config Specific Variables
Some variables used to generate FusionInventery agent.cfg file from Ansible template: Some variables used to generate FusionInventery agent.cfg file from Ansible template:

View File

@ -59,7 +59,66 @@ fusioninventory__agent_service_name: 'fusioninventory-agent'
fusioninventory__agent_service_manage: true fusioninventory__agent_service_manage: true
# ]]] # ]]]
# Cron configuration [[[
# -----------------------------
# .. envvar:: fusioninventory__agent_conf_cron [[[
#
# Instead of running as an agent, run by cron. Can be "absent" or "present"
#
fusioninventory__agent_conf_cron: "absent"
# ]]] # ]]]
# .. envvar:: fusioninventory__agent_conf_cron_day [[[
#
# Which days should the agent be ran
#
fusioninventory__agent_conf_cron_day: "*"
# ]]]
# .. envvar:: fusioninventory__agent_conf_cron_hour [[[
#
# Which hours should the agent be ran
#
fusioninventory__agent_conf_cron_hour: "23"
# ]]]
# .. envvar:: fusioninventory__agent_conf_cron_minute [[[
#
# Which minutes should the agent be ran
#
fusioninventory__agent_conf_cron_minute: "0"
# ]]]
# .. envvar:: fusioninventory__agent_conf_cron_month [[[
#
# Which months should the agent be ran
#
fusioninventory__agent_conf_cron_month: "*"
# ]]]
# .. envvar:: fusioninventory__agent_conf_cron_weekday [[[
#
# Which weekdays should the agent be ran
#
fusioninventory__agent_conf_cron_weekday: "*"
# ]]]
# .. envvar:: fusioninventory__agent_conf_cron_user [[[
#
# Which user should the agent be ran under
#
fusioninventory__agent_conf_cron_user: "root"
# ]]]
# .. envvar:: fusioninventory__agent_conf_command [[[
#
# The command should cron run
#
fusioninventory__agent_conf_command: "sleep $(( RANDOM \\% 3600 )); /usr/bin/fusioninventory-agent"
# ]]]
# ]]]
# Configuration [[[ # Configuration [[[
# ----------------------------- # -----------------------------

View File

@ -56,3 +56,17 @@
mode: '0644' mode: '0644'
when: fusioninventory__agent_deploy_state == "present" when: fusioninventory__agent_deploy_state == "present"
notify: ['restart fusioninventory-agent service'] notify: ['restart fusioninventory-agent service']
- name: "Create cron entry when needed"
cron:
name: fusion-inventory-oneshot
cron_file: fusion-inventory-oneshot
day: "{{ fusioninventory__agent_conf_cron_day }}"
hour: "{{ fusioninventory__agent_conf_cron_hour }}"
minute: "{{ fusioninventory__agent_conf_cron_minute }}"
month: "{{ fusioninventory__agent_conf_cron_month }}"
weekday: "{{ fusioninventory__agent_conf_cron_weekday }}"
user: "{{ fusioninventory__agent_conf_cron_user }}"
state: "{{ fusioninventory__agent_conf_cron }}"
job: "{{ fusioninventory__agent_conf_command }}"