Installation le gestionnaire d'identité FreeIPA
Dans un environnement DevOps, la sécurisation des outils de développement est une priorité pour garantir l’intégrité des projets. Parmi ces outils, GitLab occupe une place centrale pour la gestion du code source, la collaboration entre équipes et le déploiement. Cependant, pour une gestion centralisée et sécurisée des utilisateurs, il est essentiel d’intégrer une solution robuste comme FreeIPA.
FreeIPA est un outil open source permettant de gérer les identités, les politiques de sécurité et les autorisations au sein d’un réseau d’entreprise. En intégrant FreeIPA à GitLab, on bénéficie d’une authentification centralisée et d’un contrôle granulaire des accès, simplifiant ainsi la gestion des permissions tout en renforçant la sécurité du serveur GitLab.
Démarche d’automatisation de l’installation de FreeIPA
Lorsque l’on aborde l’installation d’un serveur GitLab dans un environnement sécurisé, il est essentiel de mettre en place une démarche d’automatisation qui garantisse la répétabilité et la cohérence de l’installation. L’objectif est d’automatiser deux étapes clés : l’installation du serveur GitLab et la génération de la configuration via un template.
En utilisant Ansible, nous pouvons transposer facilement les procédures manuelles d’installation, tout en intégrant FreeIPA pour une gestion centralisée des utilisateurs.
Les principaux objectifs de cette démarche sont :
- Automatiser l’installation du serveur GitLab sur une machine cible.
- Générer la configuration GitLab nécessaire à l’intégration avec FreeIPA, en utilisant un template.
Pourquoi utiliser Vagrant pour l’automatisation ?
Lorsque l’on développe un processus d’automatisation, il est essentiel de disposer d’un environnement de test stable, reproductible et facilement configurable. C’est là qu’intervient Vagrant. En tant qu’outil de gestion d’environnements virtuels, Vagrant permet de créer, configurer et détruire rapidement des machines virtuelles pour tester et valider les scripts d’automatisation.
Le vagrantfile
:
Ce Vagrantfile constitue la base d’un environnement virtualisé idéal pour tester et déployer une configuration FreeIPA sur une machine Rocky Linux, avec Ansible en charge du provisionnement. En désactivant la synchronisation de dossier et en intégrant la gestion du réseau via libvirt, cette configuration garantit que la machine est isolée et que les ressources sont bien gérées (2 CPU et 3 Go de mémoire).
L’automatisation de la configuration via Ansible permet de s’assurer que le serveur FreeIPA est correctement installé et configuré à chaque fois que la machine virtuelle est provisionnée, avec les bons paramètres pour le domaine, le realm et les mots de passe administrateur.
En spécifiant ces variables directement dans le fichier, tu facilites la répétabilité de l’installation, tout en réduisant le risque d’erreur humaine. L’utilisation d’Ansible pour gérer cette étape permet également une flexibilité accrue si jamais tu souhaites modifier la configuration ou adapter les paramètres à d’autres environnements.
Avec cette configuration, la machine virtuelle FreeIPA peut être rapidement déployée pour tester l’intégration avec d’autres services, comme GitLab, tout en conservant un cadre de test sécurisé et reproductible.
Ecriture du playbook pour installer FreeIPA
En explorant la documentation officielle de FreeIPA ↗, j’ai découvert que Red Hat propose, comme souvent, une collection Ansible dédiée à l’installation et à l’exploitation de FreeIPA. Cette collection facilite grandement la mise en place de FreeIPA dans des environnements Red Hat. Cependant, une contrainte s’impose : l’utilisation d’un système d’exploitation basé sur la famille Red Hat. Dans ce cas précis, j’ai opté pour Rocky Linux 9, une distribution communautaire compatible.
Avant de commencer à rédiger notre propre playbook, je vous invite à cloner le projet de cette collection pour bénéficier des bonnes pratiques et des automatisations préexistantes :
Pour que vagrant puisse trouver les rôles de cette collection, créons un simple
fichier ansible.cfg
:
Voilà le code du playbook, qui transpose ce que j’ai trouvé dans la documentation :
On peut lancer le provisionnement de la machine FreeIPA
:
Au bout de quelques minutes votre serveur FreeIPA est up. Une petite vérification :
Avant de vérifier les utilisateurs présents sur le serveur, nous devons d’abord
nous authentifier auprès du serveur Kerberos pour obtenir un token
d’authentification. Cela se fait à l’aide de la commande kinit
, qui permet
d’obtenir un ticket Kerberos pour l’utilisateur spécifié.
Voici la commande à exécuter pour obtenir un token Kerberos :
Pas mal, nous avons un utilisateur présent, le compte admin bien sûr. Je vais
utiliser la CLI ipa
pour créer les utilisateurs dans un premier temps.
Ajoutons un utilisateur :
Définissons le mot de passe :
Entrez deux fois le même mot de passe. Vérifions que nous pouvons retrouver les utilisateurs via les commandes ldap :
Bon notre serveur LDAP fonctionne comme attendu ! Pour créer les utilisateurs et
les groupes, nous allons utiliser les modules ipa
.
On va pouvoir, configurer notre serveur IPA avec les modules Ansible.
Plus loin
Dans le prochain billet, nous nous attaquerons au provisionnement du serveur GitLab, en intégrant le serveur FreeIPA comme source d’authentification centralisée. En parallèle, je mettrai à jour ce billet avec un code Terraform pour automatiser le déploiement de l’ensemble sur mon homelab dans les prochains jours. Cela permettra d’élargir les options de déploiement en automatisant le processus de bout en bout.
Je vais également approfondir l’aspect exploitation de FreeIPA, car la mise en place d’un tel service ne suffit pas. Il est important de bien comprendre comment le maintenir au quotidien : mises à jour, sauvegardes régulières et stratégies de reprise sur incident seront autant de sujets à explorer pour garantir la continuité et la fiabilité de cet outil essentiel.