VM Linux sous Windows 10 avec vagrant et KVM
Il y a quelques jours, je vous proposais un tutorial pour installer un VM de dev sur votre poste Windows en utilisant multipass de Canonical. Mais voilà du coup on se retrouve avec une distribution Ubuntu.
J’ai donc revu ma copie et je vous livre un nouveau tutoriel avec cette vagrant en provisionner sous windows avec une distribution Oracle Linux 8.
Comme pour la version avec Multipass cet environnement doit être simple à mettre en œuvre et surtout rapide. On y trouve tout ce qu’il faut pour développer des rôles ansible, de tester ses containers, d’installer des VM, …
- ansible
- kitchen avec serverpec
- docker
- kvm
- vagrant
Pour la rapidité ça demeure acceptable, car pour faire fonctionner le plugin vagrant-libvirt j’ai dû recompiler des librairies.
Installation des produits nécessaires : hyperv, cifs et vagrant
Prérequis :
- Windows 10 Entreprise, Professionnel ou Éducation
- Processeur 64 bits avec traduction d’adresse de second niveau (SLAT).
- Processeur prenant en charge les extensions de mode du moniteur de machine virtuelle (VT-c sur les processeurs Intel).
- Au minimum 4 Go de mémoire.
Activation d’hyper-v et SMB/CIFS
Dans un premier temps il faut activer hyper-v et le partage SMB/CIFS sur votre poste Windows. Dans une fenêtre Powershell ouverte en tant qu’administrateur, taper les commandes suivantes
Installation de Vagrant
Vous pouvez télécharger la dernière version de Vagrant d’hashicorp sur la page vagrantup ↗
Création de la première VM
Vagrant oblige de lancer ses commandes dans une fenêtre powershell avec les droits admin.
Pour créer ma VM de dev je vais utiliser cette fois un shell script car le support de cloud-init dans vagrant est encore en test.
Éditer votre fichier Vagrantfile et ajouter ceci :
Eh oui rien que ça:
-
Pas besoin d’activer la fonctionnalité de virtualisation imbriquée, car elle est faite avec l’option
enable_virtualization_extensions = true
-
Laisser bien le paramètre
hv.linked_clone
à false sinon vous ne pourrez pas packager votre box pour la distribuer. -
On ne peut pas fixer l’adresse IP, mais vous verrez on peut récupérer la config ssh de vagrant facilement.
-
On a deux scripts
-
un premier qui s’exécute avec le compte root
-
un second avec le user vagrant pour installer en local le plugin vagrant-libvirt
-
fixer la version de ruby
Ce fichier permet de :
Maintenant lançons le provisionnement de la VM :
Patience … Cela dure quelques minutes le temps de tout installer et configurer.
Vous devriez obtenir une invite de commande vagrant@csl. Vérifions que kvm fonctionne :
Vous devriez obtenir active (running) :
Création de VM avec un fichier vagrantfile
Toujours dans votre VM dev tapez les commandes suivantes, au moment du choix d’hyperviseur prenez bien libvirt :
Au bout de quelques minutes vous devriez pouvoir vous connecter à votre VM dans la VM:
Et voilà.
Accès à votre VM depuis visual code (installé sur Windows)
On va tout simplement utiliser l’extension Remote SSH. Installer la. Pour configurer l’accès il faut juste récupérer la config ssh de vagrant:
Je vous laisse lire ce tuto ↗ pour utiliser cette extension.