La gestion manuelle des tâches cron sur plusieurs systèmes peut être complexe et sujette aux erreurs.
Une gestion inefficace des tâches planifiées peut entraîner des incohérences, des oublis et une maintenance accrue.
L’article présente comment automatiser cette gestion avec le module ansible.builtin.cron, assurant une exécution cohérente et sans faille.
Devenez un expert d'Ansible et simplifiez vos tâches d'administration.
Module Ansible.builtin.cron : Introduction
Le module ansible.builtin.cron est utilisé pour la gestion des tâches cron sur les systèmes Unix/Linux à l’aide d’Ansible. Les types des taches qu’on peut gérer à l’aide ce module sont :
- cron.d :Ce répertoire est souvent utilisé pour stocker des fichiers de configuration cron pour des tâches spécifiques. Ansible peut gérer les fichiers présents danscron.den les ajoutant, les modifiant ou les supprimant selon les besoins.
- crontab :Il s’agit du fichier de configuration principal où sont définies les tâchescronpour chaque utilisateur. Ansible peut également gérer les entrées crontab en ajoutant, modifiant ou supprimant des lignes de tâches cron pour un utilisateur spécifié.
Utilisation du module ansible.builtin.cron :
- Ajout d’une tâche cron :Nous pouvons utiliser ce module pour ajouter une nouvelle tâchecronen spécifiant le temps d’exécution (minute, heure, jour, mois, jour de la semaine) et la commande à exécuter.
- Modification d’une tâche cron :Si une tâchecronexiste déjà et que nous souhaitons la modifier, nous pouvons utiliser ce module pour ajuster les paramètres de temps ou la commande associée.
- Suppression d’une tâche cron :Pour retirer une tâche cron existante, utilisez ce module en spécifiant les mêmes critères de temps et de commande que lors de l’ajout initial.
Ce module permet de gérer des opérations sur des systèmes informatiques de manière automatisée, en utilisant ce module, nous pouvons exécuter des actions spécifiques et vérifient l’état des systèmes pour assurer la conformité et la cohérence des configurations.
Voici un exmple de playbook utilisant ce module :
---
- hosts: test
remote_user: root
tasks:
- name: cron sauvegarde
cron:
name: sauvegarde
cron_file: svg
minute: 0
hour: 1
weekday: 7
user: root
job: /usr/local/bin/svg
Ce playbook permet donc de mettre en place une tâche cron planifiée pour exécuter une sauvegarde chaque dimanche à 1 heure du matin sur les hôtes spécifiés dans le groupe « test »
Pour illustrer concrètement l’utilisation du module ansible.builtin.cron et approfondir la compréhension, nous allons développer un playbook pratique :
---
- hosts: servers
tasks:
- name: Ensure a job exists at 2 and 5
ansible.builtin.cron:
name: "check_dirs"
minute: "0"
hour: "2,5"
job: "ls -alh >/dev/null"
Ce playbook garantit qu’une tâche cron nommée « check_dirs » est configurée pour s’exécuter à 2 heures et 5 heures sur les hôtes spécifiés.
Copier le dans un fichier cron-playbook.yml et exécuter apres pour voir le résultat :
Mais avant d’exécuter, vérifier d’abord si le nœud géré contient déjà le module cron avec la commande : systermctl status cron
Voilà, le module existe déjà dans notre nœud géré donc exécutons le playbook maintenant
Le résultat indique que le playbook a été exécuté avec succès. Pour vérifier, nous pouvons également vérifier sur le nœud géré en utilisant la commande crontab -l pour voir si la tâche définie dans le playbook est présente.
Parfait, tout fonctionne bien et nous avons le résultat attendu.
Utilisation du module cron
Dans cette partie, nous allons créer une tâche cron qui affiche la date actuelle et s’exécute chaque jour à 2h30 avec l’utilisateur Sergio.
Voyons maintenant le playbook contenant ces taches :
– hosts: servers
tasks:
– name: Create cron date job
ansible.builtin.cron:
name: « display date »
minute: « 30 »
hour: « 2 »
user: sergio
job: « date »
become: yes
Tâche 1 : Créer un job cron pour afficher la date
Nom du job : « display date »
Minute : « 30 » (exécuter à la 30ème minute de chaque heure)
Heure : « 2 » (exécuter à 2h00)
Utilisateur : sergio (exécuter avec les droits de l’utilisateur Sergio)
Commande : « date » (afficher la date actuelle)
become: yes : pour permettre une élévation de privilèges nécessaire pour créer le job cron.
Exécutons maintenant la tâche. Pour pouvoir l’executer, il faut la copier dans un fichier appelé : job_playbook .yml
Exécuter la avec la commande : ansible-playbook -v job_playbook.yml
Voilà, la tache du playbook était bien exécutée et nous allons vérifier le job dans le nœud géré si le crontab est présent , connectons le compte d’utilisateur sergio et taper la commande : crontab pour le voir.
Ces résultats justifient bien que la tâche était bien exécutée avec succès.
Formez-vous gratuitement avec Alphorm !
Maîtrisez les compétences clés en IT grâce à nos formations gratuites et accélérez votre carrière dès aujourd'hui.
FAQ
Comment fonctionne le module ansible.builtin.cron?
Comment ajouter une tâche cron avec Ansible?
Comment modifier une tâche cron existante avec Ansible?
Comment vérifier si une tâche cron est présente après son ajout?
Pourquoi utiliser Ansible pour gérer les tâches cron?
Conclusion
En utilisant le module ansible.builtin.cron, vous pouvez automatiser et centraliser la gestion des tâches cron sur vos systèmes. Quelle autre fonctionnalité d’Ansible aimeriez-vous explorer pour améliorer l’efficacité de vos opérations IT?