Explication du playbook
Le playbook peut être consulté sur le GIT : Gitea chrony
Je vais vous expliquer ce que chaque fichier fait
Vous devriez avoir 2 fichiers et 1 dossier
- Un fichier de variables vars.yaml
- Le fichier de déploiement chrony.yaml
- Le dossier template contenant le fichier de configuration de chrony qui se remplira via les variables
Vous devriez avoir 1 roles et 1 fichier
- Un fichier NTSClient.yml
- Le dossier roles / NTSClient, contenant 5 dossiers
- files / ssl Permettant de reconnaitre les certificat de votre CA
- handlers Utiliser pour redémarrer des service si l’état de la tâche à changé
- tasks Permet de mettre en place et configurer chony
- templates Déploies des fichiers Template en fichier finaux contenant les valeurs que vous avez défini dans le fichier main.yml du dossier vars
- vars Contient l’ensemble des variables permettant le déploiement dans la zone souhaitée
Nous allons voir les différentes variables, à quoi elles servent et ce qui peut être inscrit
- ippeer: Indiquez le nom de domaine du second serveur de la zone (serveur peer ou pair)
- intprod: Indiquez l’interface de production
- intadm: Indiquez l’interface d’administration de la machine
- forcecrt: Permet de traiter la chaine de certificat, à mettre à true lors de la première installation ou lors d’un renouvellement de certificat
- stratum: Défini le stratum de la zone, plus on descend plus il est élevé
- zone: Indique la zone cible du déploiement
- environnement: Défini si vous travailler en INT ou PRD
- key: Défini la clé qui sera utilisé entre les pairs, elle sera remplis lors de la première exécution, lors du déploiement du second serveur (serveur pair de la même zone), laissez telle quelle. il faudra remettre la variable sur vide à la fin du déploiement de la zone
- Indique les certificats à utiliser suivant la zone utilisée
INT:
CERT:
#ZONE1 et ZONE2
dn1: /OU=DOMAIN/DC=LAB/DC=FR
#ZONE3
dn3: /OU=DOMAIN3/DC=LAB/DC=FR
- Défini les serveurs qui seront enregistrés comme parent suivant la zone définie
# ce sont les serveur qui seront interroger par le serveur installer
SERVER:
ZONE1:
- vm.domaine.lab
- vm1.domaine.lab
ZONE2:
- vm.domaine.lab
- vm1.domaine.lab
ZONE3:
- vm.domaine.lab
- vm1.domaine.lab
- Indique les serveurs autorisés par zones, il permettra au clients de se connecter au serveur pour récupérer l’heure
# ce sont les allow des serveurs clients
ZONE1:
- 192.168.1.3
- 172.16.2.55
ZONE2:
- 172.16.2.25
- 172.16.2.33
ZONE3:
- 192.168.1.1
- 192.168.1.2
- Pareil pour la prod
Dans le playbook, les tâches effectuées sont les suivantes:
- Attribuer les IP des interfaces aux variables
- Installation des packages nécessaire pour la mise en place de chrony
- Gestion des clés, CSR et certificat
- Paramétrage du firewall ufw
- Déploiement du Template
- Vérification et mise en place des keys chrony pour les serveurs peer
- Contient le fichier chrony.j2 permettant de générer le fichier chrony.conf avec les variables indiquées
- Contient les informations générale du lancement du rôles
- Contient les certificat de l’authorité de certificat des zones déployables
- Permet de relancer le service chrony si des tâches sont modifiées
- apt.yaml Contient l’installation du package chrony
- certificat.yaml Permet le déploiement de la CA sur les serveurs clients afin qu’il puisse s’authentifier au près des serveurs chrony
- confchrony.yaml S’occupe du déploiement du template chrony.conf
- main.yml Crée les variables IP des interfaces admin et prod, lance les autres fichiers dans l’ordres
- ufw.yaml Permet de configurer le firewall de la machine, sans forcer l’application des règles, cela permet de les appliquer dans le cas ou ufw est déjà configurer sur la machine
- Contient le fichier chrony.j2 permettant de générer le fichier chrony.conf avec les variables indiqués
- Contient les variables des zones et de leurs serveurs