Ansible, l’outil d’automatisation IT préféré des DevOps

-
3
 m de lecture
-

Si vous êtes dans l'informatique, vous devez sûrement entendre de plus en plus parler d'Ansible. Les DSI le qualifient de "chouchou" des DevOps pour l'automatisation des tâches sur des logiciels.

StackShare recense ainsi plus de 1700 entreprises qui utilisent Ansible, dont Revolut, Zalando ou encore des agences publiques telles que la NASA. Alors, qu’est-ce qu’Ansible, et pourquoi cet outil a gagné si rapidement en popularité ?

Qu’est ce qu’Ansible ?

Ansible est une plateforme d’automatisation informatique (automation platform) pris en charge par Red Hat. Il permet de configurer des systèmes, de déployer des logiciels et d’orchestrer des tâches informatiques plus avancées, telles que des déploiements continus ou des mises à jour permanentes sans temps d’arrêt. Il permet aussi d’approvisionner les machines virtuelles, les conteneurs et le réseau, ainsi que des infrastructures informatiques cloud complètes. 

Ansible est donc ouvert à tous types d’utilisateurs, qu’ils soient développeurs, administrateurs système, Data Engineers et responsables informatiques. Il s’intègre aussi à Docker, Kubernetes, Microsoft Azure, Google Compute Engine, Datadog et bien d’autres outils. 

Le résultat pratique est ainsi une contribution majeure au mouvement « infrastructure as code«  dans l’informatique : l’idée que la maintenance de l’infrastructure serveur et client peut et doit être traitée de la même manière que le développement de logiciels, avec des référentiels de solutions auto-documentées, éprouvées et exécutables, capables de faire fonctionner une organisation indépendamment des changements de personnel.

Comment fonctionne Ansible ?

Il existe deux catégories d’ordinateurs dans Ansible : le nœud de contrôle (control node) et les nœuds administrés (managed nodes). Le control node est un ordinateur qui exécute Ansible. Il doit y avoir au moins un control node, bien qu’un control node de secours puisse également exister. Un managed node représente quant à lui tout dispositif géré par le control node.

Ansible fonctionne en se connectant à des nodes (clients, serveurs, ou autres nodes) sur un réseau, puis en envoyant un petit programme appelé module Ansible à ce node. Ansible exécute ces modules par SSH et les supprime une fois terminés. La seule exigence pour cette interaction est que votre control node Ansible ait un accès de connexion aux managed nodes. 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.

ansible-fonctionnement

Comment utiliser Ansible ?

L’utilisation d’Ansible semble complexe au premier regard, mais cette complexité est gérée par Ansible et non par l’utilisateur. 

Un module Ansible est écrit pour représenter un état souhaité d’un système, ce qui signifie que chaque module définit ce qui devrait être vrai sur un managed node donné. 

Par exemple, si un administrateur système décide que toutes les stations de travail d’une organisation doivent avoir la dernière version d’un logiciel installée, alors c’est au module Ansible de déterminer si chaque node a cette version du logiciel sur lui. Si Ansible trouve un managed node avec le logiciel installé, il détecte le système d’exploitation et exécute la routine nécessaire pour mettre en place les mises à jour. De cette façon, chaque poste de travail d’une organisation peut être mis à jour de manière automatique grâce à ces modules Ansible à partir d’un simple tableau de bord

Si vous avez besoin d’automatiser une tâche sur plusieurs ordinateurs, la bibliothèque de modules Ansible vous permettra ainsi de trouver celui qui gère la tâche que vous voulez exécuter. Si vous êtes programmeur, vous pouvez également écrire vos propres modules personnalisés pour effectuer des tâches spécialisées et si votre module est généralement utile, vous pouvez également le soumettre au projet Ansible, un projet Open Source qui compte aujourd’hui plus de 3500 contributeurs afin que d’autres puissent bénéficier de votre travail.

Comment implémenter les modules Ansible ?

Alors que les modules fournissent les moyens d’accomplir une tâche, la façon dont vous les utilisez est par le biais d’un Playbook Ansible

Un Playbook Ansible est un fichier de configuration écrit en YAML, un langage de programmation simple, qui fournit des instructions sur ce qui doit être fait pour amener un managed node dans l’état souhaité. Les playbooks Ansible sont vraiment au cœur de ce qui rend Ansible si populaire, car ils décrivent les tâches à effectuer rapidement sans que l’utilisateur n’ait besoin de connaître une syntaxe particulière

Non seulement les Playbooks Ansible peuvent déclarer des configurations, mais ils peuvent orchestrer les étapes de n’importe quelle tâche ordonnée manuellement, et peuvent exécuter des tâches en même temps ou à des moments différents.

Les Playbooks Ansible sont conçus pour être simples, lisibles par l’homme et auto-documentés. Un Playbook Ansible peut être exécuté sur un système à tout moment sans avoir d’effet négatif sur celui-ci. Si un Playbook Ansible 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.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?