2022-10-27 07:06 Temps de lecture : 8 min

Ansible pour les débutants - Les bases d'Ansible et son fonctionnement

Vous avez déjà entendu parler d'Ansible, mais vous n'êtes pas sûr de ce que c'est ? Pas de panique, vous allez tout comprendre sur Ansible dans les cinq prochaines minutes.

Ansible : Définition

Ansible est un outil DevOps open source très utile pour la gestion de configuration, le déploiement d'applications et l'approvisionnement de ressources. Son installation est simple et il communique avec les serveurs via SSH. Il utilise des playbooks pour décrire les tâches d'automatisation, ces playbooks étant écrits dans un langage YAML très accessible.

Ansible garantit la fiabilité, la cohérence et l'évolutivité de votre infrastructure informatique. Vous pouvez automatiser la configuration des bases de données, du stockage, des réseaux, et des pare-feu. Il s'assure que tous les logiciels et paquets nécessaires sont uniformément présents sur le serveur, permettant ainsi le bon fonctionnement de l'application.

Prenons un exemple concret : vous avez une version de débogage d'une application développée avec Visual C++. Pour l'exécuter sur un ordinateur, vous devez satisfaire certaines conditions, comme la présence des DLL de la bibliothèque Microsoft Visual C++, nécessitant l'installation de Visual C++ lui-même. Ansible intervient ici pour s'assurer que tous ces prérequis logiciels sont installés, permettant ainsi à votre application de fonctionner sans problème dans n'importe quel environnement, qu'il soit de test ou de production.

Ansible conserve également l'historique de votre application, ce qui facilite le retour à une version précédente ou la mise à niveau vers une nouvelle.

Passons en revue quelques fonctionnalités clés.

Sans agent : Ansible ne nécessite pas l'installation d'un agent logiciel sur les nœuds gérés, contrairement à d'autres solutions comme Puppet ou Chef.

Basé sur Python : Ansible est construit avec Python, un langage de programmation performant et largement utilisé.

SSH : Ansible utilise SSH, un protocole d'authentification réseau sécurisé et sans mot de passe, simplifiant grandement la connexion aux clients.

Architecture "Push" : Ansible envoie (pousse) les configurations nécessaires aux clients. Vous n'avez qu'à décrire ces configurations dans un playbook et les appliquer simultanément à tous les nœuds. Imaginez la puissance de pouvoir déployer des modifications sur des milliers de serveurs en quelques minutes !

Configuration minimale : Ansible requiert très peu de configuration pour fonctionner.

L'Architecture d'Ansible

Commençons avec le serveur Linux, situé sur un cloud public ou privé, qui peut servir de référentiel central pour toutes les installations et configurations informatiques.

L'architecture présente plusieurs machines hôtes connectées à un serveur Ansible, qui leur envoie les playbooks via SSH.

Ansible utilise un moteur d'automatisation qui permet d'exécuter directement les playbooks sur les hôtes. Ce moteur comprend plusieurs composants. Le premier est l'inventaire des hôtes, une liste de toutes leurs adresses IP.

Ensuite viennent les modules. Ansible offre des centaines de modules intégrés, qui sont des portions de code exécutées lors de l'exécution d'un playbook. Un playbook est composé de plusieurs parties, chacune contenant des tâches, et chaque tâche utilise un ou plusieurs modules.

Lorsqu'un playbook est exécuté, les modules sont exécutés sur les hôtes, et ces modules réalisent des actions. Il est également possible de créer ses propres modules en quelques lignes de code.

L'architecture comprend également les playbooks, qui définissent votre flux de travail. Les tâches décrites dans un playbook sont exécutées dans l'ordre dans lequel elles ont été écrites. Par exemple, si vous spécifiez l'installation d'un paquet suivie de son démarrage, c'est l'ordre qui sera respecté. Les playbooks sont écrits en YAML, un langage de sérialisation simple et proche du langage courant.

Les plugins font aussi partie de l'architecture. Ce sont des types de modules spéciaux, exécutés avant les modules sur les nœuds, sur la machine de contrôle principale, notamment pour la journalisation. On trouve les plugins de rappel, qui permettent de se connecter à différents événements Ansible pour l'affichage et la journalisation. Les plugins de cache conservent un cache de données, évitant ainsi des opérations coûteuses de collecte. Ansible inclut aussi des plugins d'action, qui sont des modules exécutant des tâches sur la machine de contrôle avant l'appel des modules.

Enfin, on a les plugins de connexion. Il n'est pas toujours nécessaire d'utiliser SSH pour se connecter aux machines hôtes. On peut utiliser un plugin de connexion. Par exemple, Ansible fournit un plugin de connexion Docker, facilitant la connexion aux conteneurs Docker et leur configuration.

Voilà pour l'architecture. Voyons maintenant comment Ansible fonctionne concrètement.

Fonctionnement d'Ansible

Ansible fonctionne en se connectant aux nœuds et en y exécutant de petits programmes appelés modules Ansible. Ces modules sont exécutés par défaut via SSH, puis supprimés une fois terminés.

Le nœud de gestion Ansible (nœud de contrôle) gère l'exécution des playbooks. C'est à partir de ce nœud que vous lancez l'installation, et le fichier d'inventaire indique les hôtes sur lesquels les modules doivent être exécutés. Le nœud de gestion établit une connexion SSH, exécute les modules sur les machines hôtes, et installe le produit. Les modules sont ensuite supprimés après leur exécution. C'est ainsi qu'Ansible fonctionne.

Vous voudrez peut-être ensuite apprendre à installer et configurer Ansible.

Conclusion

J'espère que vous avez maintenant une meilleure idée d'Ansible pour démarrer. Ansible change la donne dans la manière de gérer l'infrastructure. Si vous êtes administrateur système ou développeur, vous pouvez consulter cette formation pratique pour approfondir vos compétences.

Auteur
France

Rédacteur tech, guides pratiques et astuces numériques.