Ajout des timers systemd pour remplacer les crons

mise_a_niveau
korenstin 2025-04-01 13:51:01 +02:00
parent c9ba53bad5
commit 84a9954ee4
5 changed files with 56 additions and 4 deletions

View File

@ -1,18 +1,25 @@
# Service
Permet d'installer et de configurer des services issues
d'un git. En parituclier, il sert à automatiquement
configurer les scripts maisons du crans.
Permet d'installer et de configurer des services issues d'un git. En
parituclier, il sert à automatiquement configurer les scripts maisons du crans.
## Variables
```yaml
services:
name: nom du service
install_dir: chemin où le repo sera cloner
cron:
systemd: si existe, configure un systemd service
catégorie: par exemple Unit ou Service
option: valeur -> par exemple Restart: on-failure
timer: si existe, configure un timer systemd
catégorie: par exemple Timer
option: valeur -> par exemple OnCalendar: "23:59"
cron: si existe configure un cron
frequency: fréquence d'éxécution du cron
dependencies: liste des dépendances à installer (dans apt)
git:
remote: repo à cloner
version: version
config: variable à écrire dans le fichier de configuration {{ service.install_dir }}/{{ service.name }}.json
```

View File

@ -0,0 +1,10 @@
---
- name: Restart timer
service:
name: services-{{ service.name }}.timer
enabled: true
state: restarted
- name: systemctl daemon-reload
systemd:
daemon_reload: true

View File

@ -57,6 +57,23 @@
dest: /etc/cron.d/services-{{ service.name }}
when: service.cron is defined and service.cron.frequency is defined
- name: Deploy systemd service
template:
src: systemd/system/service.service.j2
dest: /etc/systemd/system/services-{{ service.name }}.service
notify:
- systemctl daemon-reload
when: service.systemd is defined
- name: Deploy systemd timer
template:
src: systemd/system/service.timer.j2
dest: /etc/systemd/system/services-{{ service.name }}.timer
notify:
- Restart timer
- systemctl daemon-reload
when: service.timer is defined
- name: Deploy service configuration
template:
src: service/config.json

View File

@ -0,0 +1,9 @@
{{ ansible_header | comment }}
{% for category in service.systemd %}
[{{ category }}]
{% for option in service.systemd[category] %}
{{ option }}={{ service.systemd[category][option] }}
{% endfor %}
{% endfor %}

View File

@ -0,0 +1,9 @@
{{ ansible_header | comment }}
{% for category in service.timer %}
[{{ category }}]
{% for option in service.timer[category] %}
{{ option }}={{ service.timer[category][option] }}
{% endfor %}
{% endfor %}