Gestion de l’infra
Sans allez chez AWS, Google Cloud ou OVH, les principaux fournisseurs d’infra; les serveurs d’aujourd’hui nous offrent la possibilité de “virtualiser” soit créer des serveurs virtuels. Sur un serveur linux, il y a Kernel-based Virtual Machine (KVM) et pour gérer tout ça une librairie de virtualisation : libvirt. Libvirt possède une CLI, un shell spécial nommé virsh. En bon barbu on peut donc créer des scripts à base de virsh et ainsi se concocter son petit “provisioner” maison. Bon pas très à la mode tout ça vous me direz… ça vend pas du rêve !
On va mettre une petite pincée de “DevOps”, et au lieu de scripter à la mano on utilisera Terraform. Terraform est capable de dialoguer avec tous les fournisseurs de Cloud (on appelle cela un “provider” dans le jargon), or Terraform possède aussi un module pour … libvirt ! Vous commencez à me suivre c’est bien.
Gestion de la configuration
Bon ok, vous me direz ça me fait une belle jambe de pouvoir créer un “serveur virtuel”, comment je vais pouvoir installer mon application qui brasse des millions ? Et bien là, grâce au tandem Terraform/Ansible. Alors sans vous mentir, j’ai également essayer avec Chef mais aussi Puppet, j’en suis encore à comprendre les loops en Ruby… naan je déconne (un peu). On ne va pas faire dans l’abscons, voire l’obscur… Ansible c’est simple, c’est léger, écrit en Python et en plus sa communauté est très vivante, je n’en demande pas plus.
On récapitule, je veux une application qui tourne sur un serveur : Terraform va me permettre de créer ce(s) serveur(s) virtuel(s) via libvirt, KVM et Qemu (l’émulateur de systèmes), Ansible est mon outil pour installer l’application et la configurer. Cerise sur le gâteau, Terraform avec Libvirt nous offrent également la possibilité d’être exécutés sur un hôte et de créer le serveur virtuel à distance, sur un autre hyperviseur. Elle n’est pas belle la vie ?
La suite au prochain article.
Bon hacking !