Raccourcis

Ansible et Salt : ce qu'il faut savoir

Copier l'URL

Ansible et Salt 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 courantes 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. Au contraire, Salt fonctionne avec un agent, ce qui implique l'ajout d'un logiciel sur chaque machine. En matière d'automatisation, ces deux outils basés sur Python offrent des approches différentes. Ansible s'appuie sur des fichiers de configuration YAML et un modèle d'automatisation procédurale qui définit les étapes à exécuter dans l'ordre, tandis que Salt utilise un petit sous-ensemble de fichiers YAML pour cartographier les structures de données couramment utilisées, telles que les listes et les dictionnaires. 

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

Ansible et Salt sont deux des quatre outils Open Source d'automatisation informatique les plus utilisés, aux côtés de Puppet et Chef.Leurs approches de l'automatisation sont différentes, mais tous sont vendus comme des solutions d'entreprise par leur éditeur respectif. De nombreux services informatiques utilisent plusieurs solutions, ou les associent, en fonction de leurs objectifs.

  • En 2015, Red Hat a acquis Ansible et l'a intégré à la solution Red Hat® Ansible® Automation Platform.
  • En 2020, VMware a acquis Salt (ou SaltStack) afin de l'inclure dans la gamme de produits vRealize Automation, récemment renommée VMware Aria Automation. Broadcom a ensuite acquis VMware en 2022. 
  • Perforce prend en charge Puppet, qui fait partie d'une gamme de produits commerciaux incluant notamment Puppet Enterprise et Puppet Bolt.
  • En 2020, Progress a acquis Chef et le propose dans une gamme de produits commerciaux qui inclut notamment Chef Enterprise Automation Stack. 

Ansible

Ansible est un logiciel Open Source d'automatisation informatique en ligne de commande écrit en Python.Ansible permet notamment 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, la configuration et l'exploitation des réseaux. Disponible via une souscription, la solution Red Hat Ansible Automation Platform repose sur Ansible et inclut 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), Ansible utilise un langage lisible qui facilite la maîtrise rapide de l'outil.

Ansible utilise un nœud de contrôle (pour l'exécution) et des nœuds gérés (appareils automatisés, souvent une machine Linux® ou Windows). L'architecture sans agent permet à Ansible de communiquer avec des appareils sans nécessiter l'installation d'une application ou d'un service sur le nœud géré. La solution Ansible Automation Platform utilise la technologie Automation Mesh pour envoyer des tâches d'automatisation vers plusieurs nœuds d'exécution.  

À l'aide des playbooks Ansible rédigés en YAML, un langage facile à lire, les utilisateurs d'Ansible peuvent orchestrer avec précision différentes parties de leur infrastructure. 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é.

Salt

Salt est une application d'automatisation informatique Open Source qui est modulaire et écrite en Python. Cet outil de gestion des configurations est conçu pour la collecte ultrarapide des données et l'exécution, et offre une bibliothèque de messagerie ZeroMQ légère, ainsi qu'un modèle de concurrence qui établit des connexions TCP (Transmission Control Protocol) permanentes entre le serveur et les agents. 

Comme Ansible, Salt utilise le langage YAML, ce qui rend cet outil facile à maîtriser et à gérer. En revanche, son architecture avec agent peut grandement compliquer l'apprentissage de son utilisation et présenter des obstacles pour les professionnels DevOps aguerris. Dans ce contexte, le serveur est appelé « master » et les clients sont appelés « minions ». Ces derniers s'exécutent en tant qu'agents sur la machine client. Il est possible de configurer plusieurs masters. Si un master est hors service, les agents se connectent à un autre master de la liste. La capacité des serveurs à envoyer des configurations à tous les clients permet une exécution immédiate à distance. 

Depuis l'acquisition de SaltStack par VMware, la communauté Open Source de Salt s'est réduite et l'outil est devenu moins utilisé qu'Ansible, d'après les données GitHub de l'automne 2022. Et depuis l'acquisition de VMware par Broadcom en 2022, l'accent est davantage mis sur l'automatisation des produits VMware plutôt que sur la mise en réseau et les cas d'utilisation impliquant plusieurs fournisseurs ou objectifs, ce qui a pour effet d'amplifier les écarts de compétences informatiques et de fragiliser le soutien des entreprises à la communauté Salt.     

Architecture avec agent : modèle d'infrastructure et d'automatisation qui nécessite d'exécuter des logiciels spécifiques (les agents) dans des environnements gérés. 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. En outre, il faut assurer la maintenance des agents.

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 (Secure Shell), puis les gère sans nécessiter de processus de configuration fastidieux. Une fois la configuration réalisée, il n'y a aucun système de déploiement à entretenir.

Gestion des configurations : processus qui permet d'assurer le maintien des systèmes informatiques, des serveurs et des logiciels dans l'état souhaité et d'en préserver la cohérence. Ce processus permet de s'assurer que chaque système continue de fonctionner comme prévu au fil des changements effectués. L'automatisation de la gestion des configurations permet de réduire les coûts, la complexité et le risque d'erreurs manuelles.  

DevOps et DevSecOps : modèles qui englobent le développement (Dev), la sécurité (Sec) et l'exploitation (Ops). Ces approches de la culture, de l'automatisation et de la conception des plateformes intègrent la sécurité en tant que responsabilité partagée tout au long du cycle de vie informatique. Les deux expressions désignent en réalité un même concept, car le DevOps accorde aussi une importance cruciale à la sécurité. Si le terme DevSecOps tend à s'imposer aujourd'hui, c'est surtout pour insister sur l'inclusion de la sécurité.

YAML (en anglais Yet Another Markup Language ou YAML Ain't Markup Language) : langage de sérialisation des données souvent utilisé pour écrire des fichiers de configuration. Conçu pour être lisible par l'utilisateur et facile à comprendre, le YAML peut être associé à d'autres langages de programmation. Il s'agit d'un surensemble du langage JSON (JavaScript Object Notation).

Le choix d'une solution d'automatisation implique non seulement d'évaluer les fonctions proposées aujourd'hui, mais aussi de prendre en compte l'utilisation à plus long terme de la plateforme. Ansible se démarque par sa communauté Open Source active et la prise en charge qu'offre Red Hat.

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

Par rapport à Salt, l'outil Ansible convient mieux aux utilisateurs qui cherchent la simplicité, la facilité d'utilisation et une solution d'automatisation sans agent. Il s'appuie sur une vaste communauté de contributeurs et de partenaires et est largement utilisé dans différents domaines informatiques, notamment pour l'automatisation du réseau et de l'infrastructure. Ses utilisateurs l'apprécient pour son haut niveau d'intégration à d'autres outils.

Disponible via une souscription, la solution Open Source Red Hat Ansible Automation Platform est un produit testé et à la sécurité renforcée avec 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 140 collections de contenus certifiés Red Hat Ansible de plus de 60 partenaires, ainsi que des outils de calcul du retour sur investissement en tant que services qui simplifient l'installation, la configuration et la prise en charge de l'automatisation dans l'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 des processus automatisés, ce qui permet d'en mesurer les effets, et de surveiller ou résoudre les problèmes avec plus de précision. Automation Mesh 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. Cette approche garantit la cohérence de l'expérience d'automatisation, du datacenter à la périphérie du réseau en passant par le cloud.

Facile à utiliser et sans agent, la solution d'automatisation Ansible se démarque des autres outils par sa simplicité, sa flexibilité et sa communauté active d'utilisateurs.

Rapport d'IDC : Les avantages de Red Hat Ansible Automation Platform pour les entreprises

D'après une étude d'IDC, les entreprises qui standardisent leurs opérations avec Ansible Automation Platform améliorent considérablement l'efficacité, la vitesse et l'évolutivité de l'exploitation, réalisant des bénéfices d'une valeur annuelle moyenne de 14,81 millions de dollars et un retour sur investissement de 668 % sur trois ans.

Télécharger le rapport

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