Ansible est une plateforme Open Source d’automatisation informatique. Découvrez tout ce que vous devez savoir à son sujet : fonctionnement, cas d’usage, avantages…
Dans le domaine de l’informatique, l’automatisation est devenue indispensable. Les environnements sont complexes, et les besoins en scaling rapides surmènent les développeurs et les administrateurs système. Or, l’automatisation permet de simplifier les processus complexes et de laisser les développeurs focaliser leur attention sur d’autres tâches.
L’outil logiciel Ansible offre des fonctionnalités d’automatisation. Il est (principalement) utilisé par les professionnels de l’informatique pour le déploiement d’application, les mises à jour de serveurs et de stations de travail, la gestion de configuration, l’orchestration intra-service, et les différentes tâches constituant le quotidien d’un administrateur système.
Cette plateforme est de plus en plus utilisée pour l’informatique en entreprise. Apparue récemment, elle est pourtant devenue la référence pour l’automatisation logicielle dans de nombreuses organisations. Plus de 1000 entreprises l’utilisent aujourd’hui selon StackShare, parmi lesquelles Intel, Evernote ou Hootsuite. Même Apple et la Nasa se servent de cet outil.
Comment fonctionne Ansible
Pour effectuer les tâches à automatiser, Ansible doit recevoir des instructions. Celles-ci s’écrivent sous forme de script.
On distingue deux catégories d’ordinateurs : le noeud de contrôle, et les noeuds gérés. Le noeud de contrôle est un ordinateur sur lequel Ansible est exécuté. Il doit y en avoir au moins un, mais un noeud de backup peut aussi exister. Les noeuds gérés quant à eux sont tous les appareils gérés par le noeud de contrôle.
Les modules Ansible
Le fonctionnement d’Ansible repose sur la connexion des noeuds à un réseau. Un petit programme appelé » module « est ensuite envoyé à ce noeud. Les modules sont exécutés puis supprimés.
Pour que cette interaction soit possible, la seule condition est que le noeud de contrôle Ansible ait accès aux noeuds gérés. Cet accès est généralement fourni par clés SSH, mais d’autres formes d’authentification sont aussi possibles.
Toute la complexité des modules Ansible est prise en charge par le logiciel, et non par l’utilisateur. Un module est écrit pour être un modèle d’un état désiré d’un système. De fait, chaque module définit ce qui devrait être » vrai « sur n’importe quel noeud géré.
Par exemple, si un administrateur système décide qu’une version spécifique d’un logiciel devrait être installée sur toutes les stations de travail de l’organisation, le module de packaging d’Ansible se chargera de déterminer si chaque noeud dispose bien de cette version.
Si le logiciel est installé sur un poste, Ansible détecte son système d’exploitation et exécute la routine nécessaire pour le mettre à jour. De cette façon, chaque station de travail de l’organisation peut être mise à jour au cours de la nuit.
Toutefois, il ne s’agit que d’un exemple de tâche très simple. Les modules Ansible permettent d’effectuer une large variété d’actions spécifiques. En fonction de la tâche à automatiser, il suffit de chercher le module correspondant.
Les programmeurs logiciels peuvent écrire leurs propres modules customisés pour effectuer des tâches spécifiques. Si ce module s’avère utile, il est aussi possible de le partager avec le reste de la communauté.
Les playbooks Ansible
Pour utiliser les modules, il est nécessaire d’user des » playbooks » Ansible. Un playbook est un fichier de configuration écrit en YAML. Il offre des instructions sur ce qui doit être fait pour transformer un noeud géré dans l’été désiré.
Les playbooks sont simples et facilement lisibles. Ils peuvent être exécutés sur un système sans avoir d’effet négatif. S’il est exécuté sur un système déjà configuré et dans l’état désiré, il sera toujours dans le même état après l’exécution d’un playbook.
À quoi sert Ansible ?
L’outil Ansible offre de multiples possibilités. Il s’agit d’une solution simple et fiable pour la gestion de configuration. Les configurations Ansible sont de simples descriptions de données d’infrastructure lisibles par des humains.
On l’utilise aussi pour le déploiement d’applications. Il suffit de lister les tâches à effectuer en écrivant un playbook, et Ansible se chargera d’amener les systèmes dans l’état souhaité. Il n’est donc pas nécessaire de configurer les applications sur chaque machine manuellement.
Il est aussi possible d’implémenter des règles de sécurité et de conformité lors d’un déploiement. Grâce aux workflows automatisés et au provisionnement, Ansible facilite aussi l’orchestration. Enfin, cette plateforme permet l’automatisation du provisionnement des plateformes Cloud, des hôtes virtualisés ou des serveurs bare-metal.
Les avantages d’Ansible
L’un des principaux avantages d’Ansible est sa simplicité de déploiement. Cet outil ne dépend pas d’un logiciel agent, et n’a pas d’infrastructure de sécurité additionnelle. Nul besoin de maîtriser la programmation pour l’utiliser.
Il présente aussi l‘avantage d’être open source. Par ailleurs, c’est un outil puissant permettant même de modéliser les workflows les plus complexes.
Sa flexibilité est aussi un véritable atout, puisqu’il permet d’orchestrer un environnement d’application complet peu importe où il est déployé. Il est aussi totalement personnalisable.
Cet outil n’est pas seulement utilisé pour l’automatisation et le DevOps : il peut aussi être utile pour le grand public. Avec Ansible, il est possible de configurer un ou plusieurs ordinateurs simultanément sans nécessairement disposer de compétences en programmation. Les instructions écrites pour Ansible peuvent être lues par un humain, même par un débutant en informatique.
Comment apprendre Ansible ?
Il est possible d’apprendre Ansible en l’utilisant directement chez vous ou au travail. Si vous ne connaissez pas encore YAML, prenez le temps d’apprendre ce langage et d’écrire votre premier playbook.
Vous pouvez aussi installer Ansible sur votre ordinateur personnel et l’utiliser pour gérer quelques ordinateurs ou votre réseau local. Essayez aussi différents modules pour apprendre à les utiliser et tentez d’en configurer de nouveaux.
Ansible et Docker
Outre les cas d’usage déjà évoqués, Ansible est très utile pour automatiser la plateforme d’orchestration de containers Docker et simplifier le processus de création et de déploiement de containers. Son utilisation avec Docker offre une portabilité, une auditabilité, et la possibilité de gérer des environnements complets. Pour utiliser Ansible avec Docker, il suffit d’installer le SDK Docker pour Python.
- Partager l'article :