Lorsqu’on combine
Terraform avec
KVM, on obtient un moyen de se former facilement
à Terraform. Cette combinaison va vous permettre de déployer, gérer et mettre à
l’échelle des machines virtuelles (VM) de manière efficace et reproductible. Je
vous propose donc ici de découvrir comment créer votre première infrastructure
informatique
Terraform sur
votre machine Linux avec KVM / libvirt.
Installation des Dépendances pour KVM
Assurez-vous que KVM soit installé et configuré sur votre machine :
Ecriture du code Terraform pour créer un VM KVM
Libvirt est une bibliothèque open-source qui fournit une couche
d’abstraction pour gérer diverses technologies de virtualisation dont KVM.
Il existe un provider pour Terraform.
Installation du provider libvirt
Commençons par créer un dossier pour notre formation
Pour utiliser Terraform avec KVM, il est nécessaire d’ajouter le provider
approprié dans votre fichier de configuration Terraform. Créez un fichier
main.tf avec le contenu suivant :
Ce code initialise Terraform avec le fournisseur libvirt, qui est utilisé pour
interagir avec KVM. Lançons l’installation du provider :
Pour que terraform fonctionne avec ce provider, il faut modifier la configuration
de libvirtd :
Modifier la ligne : #security_driver = [...] par security_driver = "none".
Ne pas oublier d’enlever le # au début de la ligne. On redémarre libvirt pour
que cela soit pris en compte.
Création de notre première VM KVM
Voici un exemple permettant de créer une machine Ubuntu en utilisant
cloud-init pour sa configuration.
Éditer le fichier main.tf avec ce contenu :
Créer les deux fichiers cloud_init.cfg et network_config_dhcp.cfg
le second :
Préparation de l’image
Avant de se lancer je vous propose de récupérer l’image et de changer le mot de
passe de l’utilisateur root. Cela sera bien pratique pour debugger et surtout
d’éviter de télécharger l’image à chaque lancement de la commande terraform apply.
Création de la VM
C’est bon, on peut y aller, lancer les commandes suivantes :
On peut vérifier que le code est correct avec la commande plan :
Tout est correct, nous pouvons lancer le provisionnement de la VM en répondant
yes :
Contrôlons si la VM a bien été provisionné :
Récupérons son adresse IP :
Oui ! Elle bien up ! Maintenant, il suffit de lancer se connecter à la vm
On va contrôler le résultat de la commande cloud_init :
Génial !!!
Voilà, maintenant détruisez la :
Décomissionnement de notre VM
Debug
Pour debugger cloud-init, il suffit d’activer cockpit :
Ensuite, allez sur votre navigateur, pour accéder à cockpit qui sera disponible
via l’url : https://(serverip or hostname):9090/
Il vous suffira ensuite de vous connecter à la machine via la console série avec
le compte root. Ensuite les logs de cloud-init se trouve dans le répertoire
/var/log.
Conclusion
En résumé, Terraform et KVM représentent ensemble une solution pour se former à
la gestion des infrastructures virtualisées. Cette synergie entre
l’Infrastructure as Code et la virtualisation vous ouvre des possibilités
étendues pour construire et gérer des environnements virtualisés de manière plus
efficace, sécurisée et conforme aux exigences actuelles. Je vous encourage à
expérimenter et à explorer davantage les capacités de Terraform en consultant le
billet sur “comment lancer le provisioning avec
Ansible”.