Déploiement d’un serveur NTP interne et automatisation avec Ansible
1. Mise en place du serveur NTP
Dans l’infrastructure, une VM Debian avec l’adresse IP 10.10.120.12 est utilisée comme serveur NTP interne.
Installation de Chrony
Sur la VM 10.10.120.12 :
Chrony est utilisé car il est plus moderne et plus performant que ntpd pour la synchronisation du temps.
Configuration du serveur NTP
Le fichier de configuration est situé ici :
Les paramètres principaux ajoutés :
Le serveur NTP est également configuré pour autoriser le réseau de management à se synchroniser.
Après modification de la configuration :
Le serveur 10.10.120.12 sert désormais de référence temporelle pour toute l’infrastructure.
2. Automatisation avec Ansible
L’infrastructure comporte un grand nombre de VM Debian. Afin d’éviter une configuration manuelle sur chaque machine, Ansible est utilisé pour automatiser l’installation et la configuration du client NTP.
Une VM dédiée sert de serveur Ansible.
Les hôtes sont déclarés dans le fichier :
Exemple de groupe utilisé pour les machines Debian :
3. Création du playbook Ansible
Un playbook a été créé dans :
Ce playbook permet de :
- Installer le paquet chrony
- Configurer le client NTP pour utiliser 10.10.120.12
- Redémarrer le service chrony
Contenu du playbook :
- name: Configure NTP clients hosts: all_linux become: yes
tasks:
- name: Installer chrony apt: name: chrony state: present
- name: Configurer chrony copy: dest: /etc/chrony/chrony.conf
content: | server 10.10.120.12 iburst driftfile
/var/lib/chrony/chrony.drift rtcsync makestep 1 3
- name: Redémarrer chrony service: name: chrony state: restarted
enabled: yes
4. Exécution du playbook
Depuis le serveur Ansible :
Le playbook se connecte en SSH à toutes les machines du groupe all_linux et applique automatiquement la configuration NTP.
5. Vérification
Pour vérifier que toutes les machines utilisent bien le serveur NTP interne :
Crée un playbook rapide verif-ntp.yml :
- name: Vérifier la synchro NTP sur toutes les VM
hosts: all_linux
become: yes
tasks:
- name: Vérifier les sources NTP
command: chronyc sources
register: chrony_status
- name: Afficher le statut NTP
debug:
msg: "{{ inventory_hostname }} -> {{ chrony_status.stdout }}"
Puis lance-le :
Résultat obtenu : pour chaque VM quelle source NTP elle utilise et si elle est synchronisée avec 10.10.120.12