Qu'est-ce qu'Ansible et comment fonctionne-t-il ?
Ansible est un outil qui fournit une automatisation multiplateforme simple, mais puissante. Il est surtout destiné aux professionnels de l'informatique, qui l'utilisent pour le déploiement d'applications, les mises à jour sur les postes de travail et les serveurs, le provisionnement du cloud, la gestion de la configuration, l'orchestration intraservice, et presque tout ce qu'un administrateur système fait sur une base hebdomadaire ou quotidienne. Ansible ne dépend pas d'un logiciel agent et n'a pas d'infrastructure de sécurité supplémentaire, il est donc facile à déployer.
Ansible étant axé sur l'automatisation, il nécessite des instructions pour accomplir chaque tâche. Tout est écrit sous forme de script simple et il est facile d'effectuer un contrôle de version. Le résultat pratique de tout cela est une contribution majeure au mouvement "infrastructure as code" (IaC) dans l'informatique. Bien qu'Ansible soit à l'avant-garde de l'automatisation, de l'administration des systèmes et du DevOps, il est également utile aux utilisateurs quotidiens. Ansible vous permet de configurer non seulement un ordinateur, mais potentiellement tout un réseau d'ordinateurs à la fois.
Selon sa documentation, son utilisation ne nécessite aucune compétence en programmation. Les instructions écrites pour Ansible sont lisibles par l'homme. Que vous soyez totalement novice en informatique ou un expert, les fichiers Ansible sont faciles à comprendre. Dans la pratique, Ansible regroupe les ordinateurs en deux catégories : le nœud de contrôle et les nœuds gérés. Le nœud de contrôle est un ordinateur qui exécute Ansible. Il doit y avoir au moins un nœud de contrôle, bien qu'un nœud de contrôle de secours puisse également exister. Un nœud géré est tout dispositif géré par le nœud de contrôle.
Ansible fonctionne en se connectant à des nœuds (clients, serveurs, ou tout ce que vous configurez) sur un réseau, puis en envoyant un petit programme appelé module Ansible à ce nœud. Ansible exécute ces modules par SSH et les supprime une fois terminés. La seule exigence pour cette interaction est que votre nœud de contrôle Ansible ait un accès de connexion aux nœuds gérés. Les clés SSH sont le moyen le plus courant de fournir un accès, mais d'autres formes d'authentification sont également prises en charge.
La version actuelle d'Ansible est Ansible 4.0.0 publiée le 18 mai dernier. Cette mise à jour est basée sur le paquet ansible-core-2.11.x qui est une mise à jour majeure de celui utilisé par Ansible 3. Ansible 3 était basé sur Ansible Base 2.10.x. Certains changements ne sont pas rétrocompatibles avec le langage principal des playbooks.
Que sont les playbooks et à quoi servent-ils ?
Dans Ansible, alors que les modules fournissent les moyens d'accomplir une tâche, la façon dont vous les utilisez est à travers un playbook Ansible. Un playbook est un fichier de configuration écrit en YAML qui fournit des instructions sur ce qui doit être fait pour amener un nœud géré dans l'état souhaité. Les playbooks sont conçus pour être simples, lisibles par l'homme et autodocumentés. Ils sont également idempotents, ce qui signifie qu'un playbook peut être exécuté sur un système à tout moment sans avoir d'effet négatif sur celui-ci.
Si un playbook est exécuté sur un système qui est déjà correctement configuré et dans l'état souhaité, ce système devrait toujours être correctement configuré après l'exécution du playbook. Un playbook peut être très simple comme il peut également être très complexe, avec des conditionnels et des variables. Cependant, comme la majeure partie du travail réel est effectué par les modules Ansible, les playbooks restent brefs, lisibles et clairs, même s'ils peuvent orchestrer des réseaux entiers de nœuds gérés.
Quelques concurrents populaires d'Ansible
Rudder
Rudder est une solution DevOps pour la configuration et l'audit continus. Il s'agit d'une solution Web facile à utiliser pour l'automatisation informatique. Il offre les caractéristiques suivantes :
- le flux de travail offre diverses options d'utilisateur comme les utilisateurs non experts, les utilisateurs experts et les gestionnaires ;
- automatisation des tâches courantes d'administration système telles que l'installation et la configuration ;
- renforcement de la configuration dans le temps ;
- un inventaire de tous les nœuds gérés ;
- interface Web pour configurer et gérer les nœuds ;
- rapports de conformité par configuration ou par nœud.
Puppet Enterprise
Puppet Enterprise élimine le travail manuel pour le processus de livraison de logiciels. Cette alternative à Ansible aide les développeurs à livrer rapidement des logiciels de qualité. Il est caractérisé par :
- modélisation et gestion de l'ensemble de votre environnement ;
- orchestration intelligente et flux de travail visuels ;
- rapports contextuels en temps réel ;
- définition et renforcement continuel de l'infrastructure ;
- inspection des paquets s'exécutant sur l'infrastructure et établissement des rapports à leur sujet ;
- détection des conflits d'états souhaités et remédiation.
CFEngine
CFEngine est un outil DevOps pour l'automatisation. C'est un outil idéal pour la gestion de la configuration. C'est l'un des meilleurs concurrents d'Ansible qui aide les équipes à automatiser des infrastructures complexes à grande échelle. CFEngine intègre les fonctionnalités suivantes :
- fournit une solution rapide avec un temps d'exécution inférieur à une seconde ;
- fournit une solution de configuration open source avec un record de sécurité inégalé ;
- capable d'effectuer des milliards de contrôles de conformité dans des environnements de production à grande échelle ;
- permet de déployer un changement de configuration basé sur un modèle sur 50 000 serveurs en quelques minutes seulement.
GitLab CI
GitLab CI est une partie de GitLab. Il s'agit d'une application Web avec une API qui stocke son état dans une base de données. C'est l'une des meilleures alternatives à Ansible qui gère les projets et fournit une interface utilisateur conviviale, tout en offrant l'avantage de toutes les fonctionnalités de GitLab. Voici ces caractéristiques :
- GitLab Container Registry est un registre sécurisé pour les images Docker ;
- offre un moyen pratique de modifier les métadonnées d'un problème ou d'une demande de fusion sans avoir à ajouter des commandes de type slash dans le champ de commentaire ;
- fournit des API pour la plupart des fonctionnalités, ce qui permet aux développeurs de créer des intégrations plus profondes avec le produit ;
- aide les développeurs à mettre leur idée en production en trouvant les points à améliorer dans leur processus de développement ;
- aide à préserver la sécurité des informations grâce aux numéros confidentiels.
Jenkins
Jenkins est un outil d'intégration continue open source. Il est écrit en Java et facilite les tests et les rapports en temps réel sur des changements isolés dans une base de code plus large. Ce logiciel similaire à Ansible aide les développeurs à trouver et à résoudre rapidement les défauts dans leur base de code et à automatiser les tests de leurs constructions. Il est caractérisé par :
- prise en charge de la mise à l'échelle vers un grand nombre de nœuds et répartition égale de la charge de travail entre eux ;
- facile à mettre à jour avec tous les systèmes d'exploitation et toutes les versions de Linux, macOS ou Windows ;
- facile à installer, car Jenkins se présente sous la forme d'un fichier WAR qu'il suffit de déposer dans votre conteneur JEE pour que votre installation soit prête à fonctionner ;
- peut être facilement installé et configuré à l'aide de son interface Web ;
- permet de répartir facilement le travail sur plusieurs machines.
Source : Ansible 4, Documentation d'Ansible
Et vous ?
Que pensez-vous d'Ansible ?
L'utilisez-vous ? Si oui, quel est votre retour d'expérience ?
Quelle comparaison faites-vous entre Ansible et ses concurrents ? Lequel préférez-vous ?
Voir aussi
Terraform 0.15 est disponible, l'environnement d'Infrastructure as code vient avec un large éventail de fonctionnalités stables et marque le début de la période de préversion menant à Terraform 1.0
Pulumi publie Pulumi 3.0, la troisième version majeure de sa plateforme d'infrastructure en tant que code, qui prend en charge Google Cloud en tant que fournisseur natif d'infrastructure
Les salaires des DevOps ont continué à augmenter pendant la pandémie, même si toutes les régions n'ont pas connu cette croissance, d'après une enquête de Puppet