GNU/Linux >> Tutoriels Linux >  >> Linux

Comment j'utilise Vagrant avec libvirt

Je l'avoue :je suis fan de Linux. Bien que j'utilise Slackware sur des postes de travail et Red Hat Enterprise Linux (RHEL) sur des serveurs depuis des années, j'aime voir comment les autres distributions font les choses. De plus, j'aime beaucoup tester les applications et les scripts que j'écris sur d'autres distributions pour assurer la portabilité. En fait, c'est l'un des grands avantages de Linux, selon moi :vous pouvez télécharger une distribution et tester gratuitement votre logiciel dessus. Vous ne pouvez pas faire cela avec un système d'exploitation fermé, du moins pas sans rompre un CLUF ou payer pour jouer, et même dans ce cas, vous vous inscrivez souvent pour télécharger plusieurs gigaoctets juste pour tester une application qui ne dépasse pas quelques centaines mégaoctets. Mais Linux est open source, il y a donc rarement une excuse pour ignorer au moins les trois ou quatre distributions principales, sauf que la configuration d'une machine virtuelle peut prendre beaucoup de clics et parfois une mise en réseau virtuelle complexe. Au moins, c'était l'excuse jusqu'à ce que Vagrant modifie le workflow de la machine virtuelle pour les développeurs.

Plus de ressources Linux

  • Aide-mémoire des commandes Linux
  • Aide-mémoire des commandes Linux avancées
  • Cours en ligne gratuit :Présentation technique de RHEL
  • Aide-mémoire sur le réseau Linux
  • Aide-mémoire SELinux
  • Aide-mémoire sur les commandes courantes de Linux
  • Que sont les conteneurs Linux ?
  • Nos derniers articles Linux

Qu'est-ce que le vagabond

Vagrant est un simple gestionnaire de machines virtuelles pour votre terminal. Il vous permet d'extraire facilement une machine virtuelle minimale et pré-construite à partir d'Internet, de l'exécuter localement et d'y accéder en SSH en quelques étapes seulement. C'est la configuration la plus rapide d'une machine virtuelle. Il est idéal pour les développeurs Web qui ont besoin d'un serveur Web de test, les programmeurs qui doivent tester une application sur plusieurs distributions et les amateurs qui aiment voir comment fonctionnent différentes distributions.

Vagrant lui-même est également relativement minime. Ce n'est pas un cadre de virtualisation lui-même. Il ne gère que vos machines virtuelles ("boîtes" dans la terminologie Vagrant). Il peut utiliser VirtualBox ou, via un plug-in, le projet léger libvirt comme backend.

Qu'est-ce que libvirt

Le projet libvirt est une boîte à outils conçue pour gérer la virtualisation, avec prise en charge de KVM, QEMU, LXC, etc. Vous pourriez le considérer comme une sorte d'API de machine virtuelle, permettant aux développeurs d'écrire des applications conviviales qui permettent aux utilisateurs d'orchestrer facilement la virtualisation via libvirt. J'utilise libvirt comme backend pour Vagrant car il est utile dans plusieurs applications, y compris virt-manager et GNOME Boxes.

Installer Vagrant

Vous pouvez installer Vagrant depuis vagrantup.com/downloads. Il existe des versions disponibles pour les systèmes basés sur Debian, les systèmes basés sur CentOS, macOS, Windows, etc.

Pour CentOS, Fedora ou similaire, vous obtenez un package RPM, que vous pouvez installer avec dnf :

$ sudo dnf install ./vagrant_X.Y.ZZ_x86_64.rpm

Sur Debian, Linux Mint, Elementary et similaires, vous obtenez un package DEB, que vous pouvez installer avec apt :

$ sudo apt install ./vagrant_X.Y.ZZ_x86_64.deb

Installation de libvirt et des packages de support

Sous Linux, votre distribution a peut-être déjà installé libvirt, mais pour activer l'intégration avec Vagrant, vous avez également besoin de quelques autres packages. Installez-les avec votre gestionnaire de packages.

Sur Fedora, CentOS et similaire :

$ sudo dnf install gcc libvirt \
libvirt-devel libxml2-devel \
make ruby-devel libguestfs-tools

Sur Debian, Linux Mint et similaire :

$ sudo apt install build-dep vagrant ruby-libvirt \
qemu libvirt-daemon-system libvirt-clients ebtables \
dnsmasq-base libxslt-dev libxml2-dev libvirt-dev \
zlib1g-dev ruby-dev libguestfs-tools

Selon votre distribution, vous devrez peut-être démarrer le libvirt démon :

$ sudo systemctl start libvirtd

Installer le plug-in Vagrant-libvirt

Dans Vagrant, libvirt est activé via un plug-in. Vagrant facilite l'installation d'un plug-in, donc votre première commande Vagrant est celle que vous exécuterez rarement :

$ vagrant plugin install vagrant-libvirt

Maintenant que le plug-in libvirt est installé, vous pouvez commencer à utiliser des machines virtuelles.

Configuration de votre environnement Vagrant

Pour commencer avec Vagrant, créez un répertoire appelé ~/Vagrant . C'est là que vos Vagrantfiles sont stockés.

$ mkdir ~/Vagrant

Dans ce répertoire, créez un sous-répertoire pour représenter une distribution que vous souhaitez télécharger. Par exemple, supposons que vous ayez besoin d'un boîtier de test CentOS.

Créez un répertoire CentOS, puis accédez-y :

$ mkdir ~/Vagrant/centos
$ cd ~/Vagrant/centos

Vous devez maintenant trouver une machine virtuelle afin de pouvoir convertir le répertoire que vous venez de créer en un environnement Vagrant.

Trouver une machine virtuelle Vagrant

D'une manière générale, les boîtes Vagrant proviennent de trois endroits différents :Hashicorp (les mainteneurs de Vagrant), les mainteneurs des distributions et des gens comme vous et moi. Certaines images sont minimes, destinées à servir de base à la personnalisation. En revanche, d'autres essaient de résoudre un besoin spécifique (par exemple, vous pouvez trouver une image de pile LAMP prête pour le développement Web). Vous pouvez trouver des images en parcourant ou en recherchant le hub principal pour les boîtes app.vagrantup.com/boxes/search.

Pour cet exemple, recherchez "centos" et trouvez l'entrée nommée generic/centos8 . Cliquez sur l'image pour obtenir des instructions sur l'utilisation de la machine virtuelle. Les instructions sont de deux types : 

  • Le code dont vous avez besoin pour un Vagrantfile
  • La commande dont vous avez besoin pour utiliser la box depuis un terminal

Cette dernière est la méthode la plus simple :

$ vagrant init generic/centos8

Le init La sous-commande crée un fichier de configuration, appelé Vagrantfile, dans votre répertoire actuel, qui transforme ce répertoire en un environnement Vagrant. À tout moment, vous pouvez afficher une liste des environnements Vagrant connus en utilisant le global-status sous-commande :

$ vagrant global-status
id       name    provider state   directory
-------------------------------------------
49c797f  default libvirt running /home/tux/Vagrant/centos8

Démarrer une machine virtuelle avec Vagrant

Une fois que vous avez exécuté le init commande, vous pouvez démarrer votre machine virtuelle avec vagrant up :

$ vagrant up

Cela oblige Vagrant à télécharger l'image de la machine virtuelle si elle n'existe pas déjà localement, à configurer un réseau virtuel et à configurer votre box.

Saisie d'une machine virtuelle Vagrant 

Une fois que votre machine virtuelle est opérationnelle, vous pouvez vous y connecter avec vagrant ssh :

$ vagrant ssh
box$

Vous vous connectez à la box fonctionnant dans votre environnement Vagrant actuel. Une fois connecté, vous pouvez exécuter toutes les commandes natives de cet hôte. Il s'agit d'une machine virtuelle exécutant son propre noyau, avec du matériel émulé et un logiciel Linux commun.

Quitter une machine virtuelle Vagrant

Pour quitter votre machine virtuelle Vagrant, déconnectez-vous de l'hôte comme vous quittez normalement un ordinateur Linux :

box$ exit

Vous pouvez également éteindre la machine virtuelle :

box$ sudo poweroff

Vous pouvez également arrêter l'exécution de la machine en utilisant le vagrant commande :

box$ vagrant halt

Détruire une machine virtuelle Vagrant

Lorsque vous avez terminé avec une machine virtuelle Vagrant, vous pouvez la détruire :

$ vagrant destroy

Alternativement, vous pouvez supprimer une machine virtuelle à l'aide de la box globale sous-commande :

$ vagrant box remove generic/centos8

Le vagabondage est facile

Vagrant rend les machines virtuelles triviales, jetables et rapides. Lorsque vous avez besoin d'un environnement de test ou d'un faux serveur pour effectuer un ping ou développer, ou d'un ordinateur de laboratoire propre pour l'expérimentation ou la surveillance, vous pouvez en obtenir un avec Vagrant. Certaines personnes pensent que les machines virtuelles ne sont plus pertinentes maintenant que les conteneurs ont pris le contrôle des serveurs, mais les machines virtuelles ont des caractéristiques uniques qui les rendent utiles. Ils exécutent leur propre noyau, disposent d'une pile complète et unique distincte de la machine hôte et utilisent du matériel émulé. Lorsqu'une machine virtuelle est ce dont vous avez besoin, Vagrant peut être le meilleur moyen de l'obtenir.


Linux
  1. Comment utiliser BusyBox sous Linux

  2. Comment utiliser la commande Linux Hexdump avec des exemples pratiques

  3. Comment utiliser la commande Su sous Linux

  4. Commande SCP sous Linux :comment l'utiliser, avec des exemples

  5. Comment supprimer une utilisation non root avec UID 0 sous Linux

Comment utiliser la commande who sous Linux avec des exemples

Commande d'alias Linux :comment l'utiliser avec des exemples

Comment utiliser la commande Linux gunzip avec des exemples

Comment utiliser la commande Linux rm avec des exemples

Comment utiliser Vagrant avec le fournisseur KVM Libvirt

Comment utiliser la commande Sleep sous Linux :expliqué avec des exemples