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.