Chrony est un démon NTP (Network Time Protocol) qui remplace le démon ntpd (Network Time Protocol) standard sur la plupart des systèmes *nix. Chrony est une nouvelle implémentation du NTP qui met généralement à jour le temps plus rapidement et est plus précis que ntpd.
Dans cet exemple, vous avez défini tous les paramètres nécessaires dans votre /etc/chrony.conf
, et maintenant vous souhaitez utiliser cette configuration sur tous vos hôtes. Vous pouvez transformer le fichier de configuration en modèle Ansible et le déployer.
Créer un livre de jeu
En supposant que votre /etc/chrony.conf
ressemble à ce qui suit :
server 192.168.0.1 iburst
server 192.168.0.2 iburst
stratumweight 0
driftfile /var/lib/chrony/drift
rtcsync
makestep 10 3
bindcmdaddress 127.0.0.1
bindcmdaddress ::1
keyfile /etc/chrony.keys
commandkey 1
generatecommandkey
noclientlog
logchange 0.5
logdir /var/log/chrony
Pour déployer cette configuration sur d'autres hôtes à l'aide d'Ansible, copiez ce fichier dans /some/full/path/chrony.conf.j2
sur votre nœud de contrôle Ansible. Ensuite, vous pouvez utiliser le playbook suivant pour le déployer sur tous vos hôtes gérés.
---
- hosts: all
tasks:
- name: make sure chronyd is installed
yum:
name: chrony
state: latest
update_cache: yes
- name: deploy chrony.conf template
template:
src: /some/full/path/chrony.conf.j2
dest: /etc/chrony.conf
owner: root
group: root
mode: 0644
backup: yes
- name: Restart chronyd
service:
name: chronyd
state: restarted
Ce playbook s'assure d'abord que chrony
est installé. C'est important car vous n'aurez pas de /etc/chrony.conf
si le service est manquant. La deuxième tâche utilise le module de modèle Ansible pour déployer votre configuration sur vos hôtes. Dans cet exemple, il copie le fichier exact sur les hôtes et définit les paramètres de propriétaire et d'autorisation. Il fait une sauvegarde à partir d'un fichier existant avant de le remplacer. Enfin, le service redémarre pour s'assurer que le fichier de configuration souhaité sera utilisé.
Récapitulez
Bien sûr, vous pouvez utiliser une tâche cron pour exécuter ce playbook, une fois par jour ou toutes les 30 minutes, par exemple, pour vous assurer que toute modification apportée au fichier est réinitialisée à la configuration souhaitée. Vous pouvez le faire pour n'importe quel service système ou fichier de configuration sur vos systèmes où la cohérence est requise entre tous les hôtes.
[ Besoin d'en savoir plus sur Ansible ? Suivez un cours de présentation technique gratuit de Red Hat. Ansible Essentials :Présentation technique de la simplicité dans l'automatisation. ]