Ansible se présente comme un instrument de gestion de configuration en accès libre, doublé d’une plateforme d’automatisation des systèmes informatiques. Son rôle majeur est de faciliter l’automatisation du déploiement de logiciels, la gestion des paramètres et la mise en œuvre d’applications.
Contrairement à d’autres solutions de gestion de configuration, Ansible se distingue par son approche unique. C’est cette particularité qui le différencie d’outils comme Chef, CFEngine, Salt et Puppet.
Ansible Tower, quant à lui, offre une interface web pour orchestrer Ansible. Cette interface a été conçue pour répondre aux besoins des utilisateurs d’Ansible, qui souhaitaient une solution intuitive pour des déploiements rapides et une supervision de la configuration.
Ansible Tower est donc la réponse d’Ansible à ce besoin. Chaque langage et framework possèdent leurs propres spécificités et nuances. Cet article a pour objectif d’explorer les distinctions entre Ansible, Ansible Galaxy et Ansible Tower.
Introduction à Ansible
Ansible est un outil open-source dédié à la gestion de configuration, qui permet d’automatiser le provisionnement de logiciels et la gestion de configuration. Il donne la possibilité de piloter et de paramétrer plusieurs machines à partir d’un unique serveur central.
Son architecture repose sur un système de type « push », où la configuration est « poussée » de la machine maître vers tous les nœuds connectés.
Les configurations sont définies à l’aide de YAML, un langage facile à appréhender et à manipuler par les administrateurs de serveurs. Ansible fonctionne via SSH et utilise OpenSSH comme couche de transport.
L’ensemble des configurations d’Ansible se trouve regroupé dans des fichiers YAML, appelés « playbooks ». Ces playbooks contiennent des tâches ou des ensembles de tâches. Pour configurer des nœuds, une tâche utilise un module.
Les playbooks sont les lieux où les configurations sont écrites. Toutes les tâches définies dans un playbook s’exécutent dans l’ordre spécifié. Ansible prend en charge l’exécution synchrone et asynchrone.
L’image ci-dessus illustre plusieurs machines hôtes. Ces machines servent à exécuter toutes les configurations que nous avons créées.
Avantages d’Ansible :
- Gratuit et open source
- Facile à installer et à configurer
- Puissant : capacité de configurer des milliers de machines simultanément
- Polyvalent : utilisable dans divers environnements
- Sans agent : ne nécessite pas d’agents sur les nœuds, à la différence de Jenkins
- Efficace : ne requiert aucun logiciel supplémentaire pour fonctionner
Inconvénients d’Ansible :
- Installation parfois complexe
- Ne fonctionne pas sous Windows
- Problèmes de rétrocompatibilité
Présentation d’Ansible Galaxy
Ansible Galaxy est une plateforme qui permet aux utilisateurs de partager et d’obtenir des rôles. Elle encourage l’utilisation de rôles réutilisables pour la configuration des serveurs et est fréquemment employée dans des projets.
Ansible Galaxy est, en essence, un répertoire public de descriptions de rôles Ansible. Chaque rôle est accompagné d’un fichier README, qui fournit des informations sur son utilisation et ses variables.
Le nombre de rôles disponibles sur Ansible Galaxy est en constante croissance et évolution. Les rôles permettent de décomposer des playbooks plus volumineux et de créer une structure organisée. Vous pouvez personnaliser vos propres rôles et les utiliser à votre guise.
Structure des rôles Ansible Galaxy :
- README.md : fichier « Lisez-moi » décrivant le rôle, incluant les paramètres d’entrée et un exemple yml.
- tâches : liste des tâches que le rôle peut effectuer. Le point d’entrée du rôle est Main.yml, où l’exécution commence. Ce fichier peut inclure d’autres fichiers.
- gestionnaires : inclut les gestionnaires pouvant être utilisés dans ce rôle ou d’autres.
- defaults : variables par défaut du rôle.
- vars : variables plus importantes que les valeurs par défaut du rôle.
- fichiers : fichiers pouvant être déployés à l’aide du rôle.
- modèles : modèles utilisables via le rôle.
- meta : métadonnées permettant de définir les rôles, incluant les dépendances de rôles.
- tests : tests CI à exécuter.
- bibliothèque : modules ou plugins intégrés aux rôles. Non créé par la commande init. Permet de créer des modules personnalisés en Python et de les utiliser dans les tâches.
Ansible Galaxy est un outil de création et de gestion de rôles. Les nouvelles versions d’Ansible apportent des changements. La version 2.2.8 d’Ansible a introduit la fonctionnalité de « collection ». Le contenu Ansible est désormais distribué dans des collections, qui servent à empaqueter et distribuer des modules, des playbooks et des plugins.
Avantages d’Ansible Galaxy :
- Centralisation pour la localisation, la réutilisation et le partage de contenu lié à Ansible
- Téléchargement simplifié de rôles réutilisables pour installer des applications
- Accélération du déploiement
Inconvénients d’Ansible Galaxy :
- Développement piloté par la communauté, sans garantie de maintenance des modules
- Documentation parfois insuffisante de nombreux rôles Ansible Galaxy
- Manque d’idempotence de la plupart des rôles Ansible Galaxy
Introduction à Ansible Tower
Ansible Tower est l’interface utilisateur d’Ansible. C’est une solution web adaptée à divers types d’équipes informatiques.
Ansible Tower peut être comparé au tableau de bord d’une voiture : il affiche les informations essentielles sur l’état du véhicule (vitesse, niveau d’huile, essence restante, etc.). De même, Ansible Tower présente un tableau de bord, tandis qu’Ansible représente le moteur.
Ansible Tower permet aux utilisateurs d’exécuter des tâches à distance via une interface graphique. Les tâches Ansible s’exécutent à l’aide de playbooks, qui peuvent être lancés via la CLI Ansible. Ansible Tower permet de gérer et d’exécuter les playbooks via l’interface graphique.
Il est possible d’exécuter des playbooks préexistants ou d’en créer de nouveaux. Ansible Tower intègre également un système de notifications, permettant d’alerter des équipes spécifiques lorsqu’un job est terminé ou a échoué. Cette communication transversale est essentielle pour toute organisation.
Il offre un contrôle d’accès basé sur les rôles (RBAC), permettant de définir qui a l’autorisation d’exécuter des jobs. Cela est souvent nécessaire pour se conformer aux réglementations de sécurité.
Le RBAC est associé à un journal d’audit qui détaille qui était responsable de chaque job à un moment donné, renforçant ainsi la sécurité.
Ansible Tower facilite l’exécution de code à distance dans différentes applications. Par exemple, si une machine virtuelle est dans un état critique et nécessite un redémarrage, Ansible Tower permet d’effectuer cette opération de manière sécurisée.
L’installation à distance de logiciels peut être utilisée pour corriger rapidement des failles de sécurité ou réinitialiser des mots de passe. Ansible Tower est un point centralisé pour la gestion de toute l’infrastructure réseau et des machines virtuelles déployées via Ansible.
Contrairement à Ansible, Ansible Tower n’est pas gratuit. Il existe deux versions d’Ansible Tower : Premium et Standard. Le choix de la version dépend des besoins informatiques de l’entreprise. L’édition Standard convient à la majorité des opérations informatiques, tandis que la version Premium est conçue pour les environnements DevOps critiques.
Red Hat fournit des informations tarifaires précises une fois contacté. L’édition Standard coûte environ 10 000 $ par an pour 100 nœuds, tandis que la version Premium revient à environ 14 000 $ par an pour le même nombre de nœuds.
Avantages d’Ansible Tower :
- Interface utilisateur simplifiée
- Aide à la création de pipelines CI/CD pour la gestion des workflows
- Planification des tâches et notifications d’erreur
- Gestion graphique des inventaires
- Facilité de configuration
Inconvénients d’Ansible Tower :
- Coût élevé
- Modèle d’abonnement
- Résolution des conflits de fusion complexe
- Débogage difficile
Comparaison : Ansible vs Ansible Galaxy vs Ansible Tower
Ansible est un outil d’automatisation informatique, permettant de déployer des logiciels, configurer des systèmes et orchestrer des tâches informatiques complexes (déploiements continus, mises à jour sans interruption, etc.). Il se distingue par sa simplicité et sa facilité d’utilisation.
Ansible Tower, quant à lui, est présenté comme « le client Git le plus puissant pour Mac et Windows », offrant une interface graphique pour exploiter toutes les fonctionnalités de Git. Ansible Galaxy, de son côté, est un espace de stockage pour les rôles Ansible, comparable à PyPI pour Python ou Maven pour Java.
Ansible Tower ne peut fonctionner sans Ansible. Ansible est le moteur qui pilote la gestion et le déploiement de l’infrastructure. Ansible Tower permet de visualiser les opérations et de contrôler la conformité de sécurité de l’infrastructure.
Ansible Tower assure le RBAC pour les déploiements Ansible. De plus, il est adapté pour les profils non techniques souhaitant superviser l’infrastructure.
Comparaison entre Ansible, Ansible Tower et Ansible Galaxy :
Ansible | Ansible Tower | Ansible Galaxy | |
Fonction | Outil de gestion de configuration open-source | Interface utilisateur d’Ansible | Référentiel de rôles et de collections |
Exécution des playbooks | Via CLI | Via GUI | Exécute ansible-galaxy via CLI |
Date de sortie | 2012 | 2015 | 2016 |
Coût | Gratuit | À partir de 5 000 $ par an pour 100 nœuds | Gratuit |
Configuration | Très simple à mettre en place | Visibilité sur l’ensemble de l’environnement Ansible | Réutilisation de blocs de code dans différents playbooks |
Conclusion
Cet article a présenté Ansible, Ansible Tower et Ansible Galaxy, en soulignant leurs différences. Une organisation doit bien évaluer ses besoins avant d’opter pour Ansible Tower en raison de son coût. Toutefois, Ansible reste un outil de gestion de configuration de premier ordre pour tout environnement de type Linux.
Vous pourriez également être intéressé par les tâches Sysadmin que vous pouvez automatiser avec Ansible.