Raccourcis

Ansible et Puppet

Copier l'URL

Ansible et Puppet sont des outils d'automatisation informatique développés par la communauté Open Source. Ils ont été conçus pour simplifier l'exploitation et les processus DevOps grâce à l'automatisation des tâches de routine telles que la configuration et le provisionnement des systèmes, le déploiement des logiciels et la gestion des mises à jour sur de nombreux serveurs ou points de terminaison.

Ansible est réputé pour sa facilité d'utilisation, caractéristique d'une approche sans agent flexible qui ne nécessite l'installation d'aucun logiciel supplémentaire au niveau des périphériques cibles à automatiser. À l'inverse, les outils Open Source Puppet et Puppet Enterprise privilégient une approche avec agent, qui exige d'installer d'autres logiciels sur chaque machine. Les stratégies d'automatisation sont également différentes : Ansible utilise un langage lisible par l'homme pour les fichiers de configuration et une approche procédurale (consistant à définir l'ordre des étapes à suivre), alors que Puppet utilise un langage dédié (qui nécessite de maîtriser le langage de programmation Ruby) et une approche déclarative (consistant à définir l'état souhaité).

Cet article présente en détail les similitudes et les différences entre Ansible et Puppet.

Ansible

Ansible est un logiciel Open Source d'automatisation informatique en ligne de commande écrit en Python. Ansible permet de configurer des systèmes, de déployer des logiciels et d'orchestrer des workflows avancés pour le déploiement d'applications, la mise à jour de systèmes et plus encore. Disponible via une souscription, la solution Red Hat Ansible Automation Platform repose sur Ansible et est dotée de nombreuses fonctions adaptées aux entreprises.

Les atouts d'Ansible proviennent de sa communauté. Son référentiel principal GitHub est enrichi par des milliers de contributeurs et sert de base à des dizaines de milliers d'autres référentiels (données à l'automne 2022). En outre, chaque année se tient l'événement AnsibleFest, une conférence très attendue qui réunit les utilisateurs, et des rencontres autour d'Ansible sont régulièrement organisées à travers le monde. Cette communauté d'utilisateurs enthousiastes reflète toute la diversité des compétences liées à Ansible. Certains contributeurs veillent même à ce que l'outil reste parfaitement compatible avec d'autres logiciels courants. Grâce au développement de centaines de modules et plug-ins, les utilisateurs peuvent facilement étendre les fonctionnalités d'Ansible.

Ansible est conçu avant tout pour offrir simplicité et facilité d'utilisation, mais aussi sécurité et fiabilité grâce à un nombre de variables réduit au minimum. Basé sur le protocole de transport OpenSSH (ainsi que d'autres modes de transport et d'extraction comme alternatives), Ansible utilise un langage lisible (YAML) pour l'écriture des playbooks Ansible qui se maîtrise rapidement.

Ansible repose sur un nœud de contrôle (l'emplacement d'exécution) et plusieurs nœuds gérés (les points de terminaison à automatiser). Ces nœuds peuvent représenter des serveurs Linux®, des serveurs Windows, des périphériques réseau, ainsi que des systèmes bare metal, des environnements virtuels et des plateformes de cloud public et de conteneurs divers et variés. L'architecture sans agent permet à Ansible de communiquer avec de nombreux points de terminaison, sans nécessiter l'installation d'une application ou d'un service sur le nœud géré. Il faut savoir que la plupart des commutateurs et routeurs réseau sont des systèmes fermés qui, bien souvent, ne peuvent pas héberger d'agents logiciels. 

Ansible utilise une approche de programmation procédurale (ou impérative), qui tente de préserver la configuration d'une infrastructure informatique en définissant les étapes permettant d'atteindre l'état souhaité.

Puppet

Le projet Open Source Puppet est un outil d'automatisation informatique en Ruby sur lequel reposent différents produits, dont Puppet Enterprise. Son principal avantage est l'évolutivité. Puppet suit une approche basée sur des modèles ainsi que l'exécution impérative des tâches, et permet d'automatiser l'infrastructure hybride à grande échelle.

Il existe une communauté Open Source active autour de Puppet, mais celle-ci compte moins de contributeurs et de projets dérivés que celle d'Ansible (données GitHub à l'automne 2022). Le nombre de contributions à son référentiel principal a d'ailleurs considérablement diminué.

Puppet fonctionne différemment d'Ansible. Bien qu'il puisse fonctionner sans agent, il est généralement exécuté comme une solution avec agent, ce qui nécessite l'installation d'un logiciel sur chaque périphérique géré.

Puppet s'appuie sur une approche de programmation déclarative, ce qui signifie que l'utilisateur définit l'état souhaité des machines gérées. Puppet utilise un langage dédié pour définir ces configurations, puis automatise les étapes nécessaires pour amener les systèmes jusqu'aux états souhaités. Il gère l'automatisation à l'aide d'un serveur principal (où sont stockés les états définis) et d'un agent Puppet (qui s'exécute sur les systèmes spécifiés).

Architecture avec agent : modèle d'infrastructure et d'automatisation qui nécessite d'exécuter des composants logiciels spécifiques (les agents) sur l'inventaire géré. L'agent ainsi que toutes ses dépendances doivent être installés sur chaque nœud cible, ce qui implique la mise en place de contrôles et de règles de sécurité supplémentaires. L'automatisation des objets peut poser problème si l'agent n'est pas disponible ni autorisé à s'exécuter. L'entreprise doit aussi assurer la maintenance des agents tout au long du cycle de vie d'assistance.

Architecture sans agent : modèle, utilisé par Ansible, qui permet d'automatiser et de gérer les équipements informatiques sans installer d'agent logiciel dans les environnements gérés. Le logiciel de contrôle se connecte aux machines distantes via des connexions SSH standard et sécurisées, puis les gère sans nécessiter de processus de configuration fastidieux. Une fois les opérations de provisionnement et de configuration réalisées, il n'y a aucun agent à entretenir.

Programmation déclarative : méthode d'écriture de code qui décrit le résultat souhaité du programme, plutôt que les étapes à suivre pour y parvenir. Elle se concentre sur l'état final à atteindre en utilisant un langage déclaratif, au lieu de détailler les commandes et les étapes. 

Programmation procédurale ou impérative : méthode d'écriture de code qui fournit à l'ordinateur une liste d'instructions (un guide étape par étape) pour effectuer une tâche. Elle se concentre sur le processus plutôt que sur l'état final. Ansible utilise le langage d'automatisation YAML, un langage de sérialisation des données lisible par l'homme. La syntaxe YAML est interprétée et exécutée de manière procédurale, ce qui signifie que le workflow d'automatisation est exécuté dans l'ordre dans lequel il a été écrit.

Le choix d'une solution d'automatisation implique non seulement de prendre en compte les fonctions des logiciels actuellement proposés, mais aussi de réfléchir à l'utilisation à plus long terme de la plateforme. Ansible se démarque par sa communauté Open Source très active et la prise en charge qu'offre Red Hat.

Il n'est pas rare que les entreprises utilisent plusieurs solutions d'automatisation. Ansible peut s'intégrer à un vaste écosystème de produits et s'utiliser avec de nombreux outils de gestion d'automatisation et de configuration. Il se charge alors de l'orchestration des solutions d'automatisation. Il permet également d'automatiser des systèmes dans les grands clouds publics tels qu'Amazon Web Services (AWS), Microsoft Azure et Google Cloud Platform (parmi bien d'autres).

Par rapport à Puppet, Ansible est un meilleur choix pour les utilisateurs qui peuvent réutiliser les connaissances et l'expertise existantes, et qui accordent la priorité à la facilité d'utilisation et à une solution d'automatisation sans agent. Il s'appuie également sur une vaste communauté de contributeurs et d'utilisateurs qui l'apprécient pour son haut niveau d'intégration à d'autres outils.

Testée et renforcée, la solution Open Source Red Hat Ansible Automation Platform est disponible via une souscription qui inclut la prise en charge de l'ensemble du cycle de vie. Ansible, son projet en amont, profite de l'expérience et de l'expertise de ses milliers de contributeurs dans le monde. 

Ansible Automation Platform inclut de nombreux composants en amont, plus de 130 collections de contenus certifiés Red Hat Ansible de plus de 60 partenaires, ainsi que des outils de calcul du retour sur investissement (ROI) en tant que services qui simplifient l'installation, la configuration et la prise en charge de l'automatisation dans votre entreprise. Cette solution crée une expérience d'automatisation de bout en bout destinée aux équipes pluridisciplinaires, tout en offrant une expérience clé en main entre les équipes de développement, d'ingénierie et d'exploitation.

La solution Red Hat Ansible Automation Platform inclut divers composants, notamment Red Hat Insights et automation analytics, qui donnent accès à des informations sur les performances de vos processus automatisés, ce qui vous permet d'en mesurer les effets, et de surveiller ou de résoudre les problèmes avec plus de précision. Automation Mesh vous permet de mettre à l'échelle les capacités de contrôle et d'exécution de manière indépendante et, par conséquent, de rapprocher les processus automatisés des points de terminaison où ils sont requis, avec peu ou pas de temps d'arrêt. Ainsi, vous bénéficiez d'une expérience d'automatisation cohérente, du datacenter au cloud et à la périphérie du réseau.

En tant que solution d'automatisation informatique facile à utiliser et sans agent, Ansible se démarque des autres outils par sa simplicité et sa communauté active d'utilisateurs.

Lire la suite

Article

Apprendre les bases d'Ansible

Ansible permet d'automatiser les processus informatiques tels que le provisionnement et la gestion des configurations. Apprenez les bases d'Ansible en lisant cette présentation des concepts clés.

Article

La gestion des processus métier, qu'est-ce que c'est ?

La gestion des processus métier est une pratique de modélisation, d'analyse et d'optimisation des processus métier de bout en bout qui vous permet d'atteindre vos objectifs métier stratégiques.

Article

Red Hat, un partenaire de choix en matière d'automatisation

La solution Red Hat Ansible Automation Platform comprend tous les outils nécessaires au partage des processus d'automatisation entre les équipes et à la mise en œuvre de l'automatisation à l'échelle de l'entreprise.

En savoir plus sur l'automatisation

Produits

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Plateforme pour la mise en œuvre de l'automatisation à l'échelle de l'entreprise, quelle que soit votre situation.

Ressources

Formations

Cours gratuit

L'essentiel d'Ansible : automatiser en toute simplicité – Présentation technique

Cours gratuit

Red Hat Ansible Automation pour SAP