GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie ich Vagrant mit libvirt verwende

Ich gebe es zu:Ich bin ein Fan von Linux. Obwohl ich seit Jahren Slackware auf Workstations und Red Hat Enterprise Linux (RHEL) auf Servern verwende, liebe ich es zu sehen, wie andere Distributionen Dinge tun. Außerdem teste ich sehr gerne Anwendungen und Skripte, die ich auf anderen Distributionen schreibe, um die Portabilität sicherzustellen. Tatsächlich ist das aus meiner Sicht einer der großen Vorteile von Linux:Man kann kostenlos eine Distribution herunterladen und darauf seine Software testen. Sie können das nicht mit einem geschlossenen Betriebssystem tun, zumindest nicht, ohne entweder eine EULA zu brechen oder für das Spielen zu bezahlen, und selbst dann melden Sie sich oft an, um mehrere Gigabyte herunterzuladen, nur um eine Anwendung zu testen, die nicht mehr als ein paar Hundert ist Megabyte. Aber Linux ist Open Source, daher gibt es selten eine Ausrede, zumindest die drei oder vier Hauptdistributionen zu ignorieren, außer dass das Einrichten einer virtuellen Maschine viele Klicks und manchmal komplexe virtuelle Netzwerke erfordern kann. Zumindest war das früher die Ausrede, bis Vagrant den Workflow für virtuelle Maschinen für Entwickler geändert hat.

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Was ist Vagrant

Vagrant ist ein einfacher Manager für virtuelle Maschinen für Ihr Terminal. Sie können damit ganz einfach eine minimale und vorgefertigte virtuelle Maschine aus dem Internet abrufen, lokal ausführen und in nur wenigen Schritten per SSH darauf zugreifen. So schnell haben Sie noch nie eine virtuelle Maschine eingerichtet. Es ist ideal für Webentwickler, die einen Test-Webserver benötigen, Programmierer, die eine Anwendung über Distributionen hinweg testen müssen, und Bastler, die gerne sehen, wie verschiedene Distributionen funktionieren.

Vagrant selbst ist auch relativ minimal. Es ist selbst kein Virtualisierungsframework. Es verwaltet nur Ihre virtuellen Maschinen ("Boxen" in der Vagrant-Terminologie). Es kann VirtualBox oder über ein Plug-in das leichtgewichtige libvirt-Projekt als Backend verwenden.

Was ist libvirt

Das libvirt-Projekt ist ein Toolkit zur Verwaltung der Virtualisierung mit Unterstützung für KVM, QEMU, LXC und mehr. Sie können es sich als eine Art API für virtuelle Maschinen vorstellen, die es Entwicklern ermöglicht, benutzerfreundliche Anwendungen zu schreiben, die es Benutzern erleichtern, die Virtualisierung über libvirt zu orchestrieren. Ich verwende libvirt als Backend für Vagrant, weil es für mehrere Anwendungen nützlich ist, einschließlich virt-manager und GNOME Boxes.

Installieren von Vagrant

Sie können Vagrant von vagrantup.com/downloads installieren. Es sind Builds für Debian-basierte Systeme, CentOS-basierte Systeme, macOS, Windows und mehr verfügbar.

Für CentOS, Fedora oder ähnliches erhalten Sie ein RPM-Paket, das Sie mit dnf installieren können :

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

Unter Debian, Linux Mint, Elementary und ähnlichen erhalten Sie ein DEB-Paket, das Sie mit apt installieren können :

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

Installation von libvirt und Unterstützungspaketen

Unter Linux hat Ihre Distribution möglicherweise bereits libvirt installiert, aber um die Integration mit Vagrant zu ermöglichen, benötigen Sie auch einige andere Pakete. Installieren Sie diese mit Ihrem Paketmanager.

Unter Fedora, CentOS und ähnlichen:

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

Unter Debian, Linux Mint und ähnlichen:

$ 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

Abhängig von Ihrer Distribution müssen Sie möglicherweise die libvirt starten Dämon:

$ sudo systemctl start libvirtd

Installieren des Vagrant-libvirt-Plugins

In Vagrant wird libvirt über ein Plug-in aktiviert. Vagrant macht es einfach, ein Plug-in zu installieren, sodass Sie Ihren ersten Vagrant-Befehl nur selten erneut ausführen werden:

$ vagrant plugin install vagrant-libvirt

Nachdem das libvirt-Plug-in installiert ist, können Sie mit der Verwendung virtueller Maschinen beginnen.

Einrichten Ihrer Vagrant-Umgebung

Um mit Vagrant zu beginnen, erstellen Sie ein Verzeichnis namens ~/Vagrant . Hier befinden sich Ihre Vagrantfiles gespeichert.

$ mkdir ~/Vagrant

Erstellen Sie in diesem Verzeichnis ein Unterverzeichnis für eine Distribution, die Sie herunterladen möchten. Angenommen, Sie benötigen eine CentOS-Testbox.

Erstellen Sie ein CentOS-Verzeichnis und wechseln Sie dann dorthin:

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

Jetzt müssen Sie eine virtuelle Maschine finden, damit Sie das Verzeichnis, das Sie gerade erstellt haben, in eine Vagrant-Umgebung konvertieren können.

Eine virtuelle Vagrant-Maschine finden

Grob gesagt kommen Vagrant-Boxen von drei verschiedenen Orten:Hashicorp (die Betreuer von Vagrant), Betreuer von Distributionen und Leute wie Sie und ich. Einige Bilder sind minimal und sollen als Grundlage für die Anpassung dienen. Im Gegensatz dazu versuchen andere, einen bestimmten Bedarf zu lösen (z. B. finden Sie möglicherweise ein LAMP-Stack-Image, das für die Webentwicklung bereit ist). Sie können Bilder finden, indem Sie app.vagrantup.com/boxes/search.

durchsuchen oder den Haupt-Hub nach Boxen durchsuchen

Suchen Sie für dieses Beispiel nach „centos“ und finden Sie den Eintrag mit dem Namen generic/centos8 . Klicken Sie auf das Bild, um Anweisungen zur Verwendung der virtuellen Maschine zu erhalten. Die Anweisungen gibt es in zwei Varianten: 

  • Der Code, den Sie für ein Vagrantfile benötigen
  • Der Befehl, den Sie benötigen, um die Box von einem Terminal aus zu verwenden

Letzteres ist die einfachere Methode:

$ vagrant init generic/centos8

Die init Unterbefehl erstellt eine Konfigurationsdatei namens Vagrantfile in Ihrem aktuellen Verzeichnis, die dieses Verzeichnis in eine Vagrant-Umgebung umwandelt. Mit dem global-status können Sie jederzeit eine Liste bekannter Vagrant-Umgebungen anzeigen Unterbefehl:

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

Starten einer virtuellen Maschine mit Vagrant

Sobald Sie init ausgeführt haben Befehl können Sie Ihre virtuelle Maschine mit vagrant up starten :

$ vagrant up

Dies veranlasst Vagrant, das Image der virtuellen Maschine herunterzuladen, falls es nicht bereits lokal vorhanden ist, ein virtuelles Netzwerk einzurichten und Ihre Box zu konfigurieren.

Betreten einer virtuellen Vagrant-Maschine 

Sobald Ihre virtuelle Maschine betriebsbereit ist, können Sie sich mit vagrant ssh anmelden :

$ vagrant ssh
box$

Sie verbinden sich mit der Box, die in Ihrer aktuellen Vagrant-Umgebung ausgeführt wird. Sobald Sie sich angemeldet haben, können Sie alle nativen Befehle dieses Hosts ausführen. Es ist eine virtuelle Maschine mit eigenem Kernel, emulierter Hardware und gängiger Linux-Software.

Verlassen einer virtuellen Vagrant-Maschine

Um Ihre virtuelle Vagrant-Maschine zu verlassen, melden Sie sich vom Host ab, wie Sie normalerweise einen Linux-Computer verlassen:

box$ exit

Alternativ können Sie die virtuelle Maschine herunterfahren:

box$ sudo poweroff

Sie können die Maschine auch mit vagrant stoppen Befehl:

box$ vagrant halt

Zerstören einer virtuellen Vagrant-Maschine

Wenn Sie mit einer virtuellen Vagrant-Maschine fertig sind, können Sie sie zerstören:

$ vagrant destroy

Alternativ können Sie eine virtuelle Maschine mit dem globalen box entfernen Unterbefehl:

$ vagrant box remove generic/centos8

Landstreicher ist einfach

Vagrant macht virtuelle Maschinen trivial, wegwerfbar und schnell. Wenn Sie eine Testumgebung oder einen gefälschten Server zum Pingen oder Entwickeln oder einen sauberen Laborcomputer zum Experimentieren oder Überwachen benötigen, können Sie einen bei Vagrant bekommen. Einige Leute denken, dass virtuelle Maschinen jetzt, da Container die Server übernommen haben, nicht mehr relevant sind, aber virtuelle Maschinen haben einzigartige Eigenschaften, die sie nützlich machen. Sie führen ihren eigenen Kernel aus, haben einen vollständigen und einzigartigen Stack, der von der Hostmaschine getrennt ist, und verwenden emulierte Hardware. Wenn Sie eine virtuelle Maschine benötigen, ist Vagrant vielleicht der beste Weg, sie zu bekommen.


Linux
  1. So verwenden Sie den Su-Befehl unter Linux

  2. SCP-Befehl in Linux:Verwendung mit Beispielen

  3. So installieren Sie Vagrant unter Linux

  4. So löschen Sie eine Nicht-Root-Nutzung mit UID 0 in Linux

  5. So verwenden Sie den Export mit Python unter Linux

So verwenden Sie den who-Befehl in Linux mit Beispielen

Linux-Alias-Befehl:Verwendung mit Beispielen

So verwenden Sie den Gunzip-Befehl unter Linux mit Beispielen

So verwenden Sie den Linux-rm-Befehl mit Beispielen

So verwenden Sie Vagrant mit dem Libvirt KVM-Anbieter

So verwenden Sie den Sleep-Befehl unter Linux:Erklärt mit Beispielen