Einführung
Landstreicher ist ein Open-Source-Tool, mit dem Sie Boxen virtueller Maschinen über eine benutzerfreundliche Befehlsschnittstelle erstellen, konfigurieren und verwalten können. Im Wesentlichen handelt es sich um eine Softwareschicht, die zwischen einem Virtualisierungstool (z. B. VirtualBox, Docker, Hyper-V) und einer VM installiert wird.
Es wird häufig in der Softwareentwicklung verwendet, um sicherzustellen, dass alle Teammitglieder für die gleiche Konfiguration entwickeln. Es teilt nicht nur Umgebungen, sondern auch Code. Dadurch kann der Code eines Entwicklers auf dem System eines anderen arbeiten, was eine gemeinsame und kooperative Entwicklung ermöglicht.
Dieses Tutorial führt Sie durch alles, was Sie über die Konfiguration und Verwaltung von Vagrant wissen müssen.
Erste Schritte mit Vagrant
Bevor Sie beginnen, vergewissern Sie sich, dass Sie bereits über eine Virtualisierungslösung verfügen auf Ihrem System. Zu den Lösungen, die mit Vagrant funktionieren, gehören VirtualBox, VMware, Docker, Hyper-V und benutzerdefinierte Lösungen.
Installation
1. Um die neueste Version von Vagrant zu finden, verwenden Sie einen Webbrowser, um zur offiziellen Webseite zu navigieren:
https://www.vagrantup.com/downloads.html
2. Sie sehen eine Liste aller unterstützten Betriebssysteme mit jeweils einem 32-Bit- und einem 64-Bit-Paket. Laden Sie die entsprechende Datei für Ihr Betriebssystem herunter und führen Sie dann das Installationsprogramm aus.
3. Es gibt zwei Möglichkeiten, um zu überprüfen, ob die Installation erfolgreich war:
- Sie können entweder verwenden:
vagrant -v
Dies sollte die Versionsnummer anzeigen, die auf Ihrem Computer ausgeführt wird. Die aktuellste Version ist Vagrant 2.2.6 .
- Oder Sie können den folgenden Befehl im Terminal eingeben:
vagrant
Diese Ausgabe würde Ihnen eine Liste häufig verwendeter Befehle zeigen, wenn das Tool korrekt installiert wurde.
Einrichtung des Vagrant-Projekts
1. Erstellen Sie zunächst ein Verzeichnis zum Speichern Ihrer Vagrant-Datei:
sudo mkdir vagrant-test
cd vagrant-test
2. Laden Sie die Ubuntu Trusty Tahr-Distribution aus einer gemeinsamen Bibliothek herunter und erstellen Sie eine einfache Vagrant-Datei mit:
vagrant init ubuntu/trusty64
Wenn Sie möchten, können Sie zu https://app.vagrantup.com/boxes/search navigieren und eine Vagrantbox Ihrer Wahl herunterladen.
Wenn Sie init
ausführen Befehl installiert Vagrant die Box im aktuellen Verzeichnis. Die Vagrant-Datei wird im selben Verzeichnis abgelegt und kann bearbeitet oder kopiert werden.
Vagrant-Boxen
Die Grundeinheit in einem Vagrant-Setup wird als „Box“ oder „Vagrantbox“ bezeichnet. Dies ist ein vollständiges, eigenständiges Abbild einer Betriebssystemumgebung.
Eine Vagrant Box ist ein Klon eines Basis-Betriebssystem-Images. Die Verwendung eines Klons beschleunigt den Start- und Bereitstellungsprozess.
1. Anstatt init
zu verwenden Befehl oben, können Sie einfach eine Box herunterladen und mit dem Befehl hinzufügen:
vagrant box add ubuntu/trusty64
Dadurch wird die Box heruntergeladen und lokal gespeichert.
2. Als nächstes müssen Sie die Vagrant-Datei für die virtuelle Box konfigurieren, die sie bedienen soll. Öffnen Sie die Vagrantfile mit dem Befehl:
sudo vi vagrantfile
3. Sobald die Vagrantfile geöffnet ist, ändern Sie die config.vm.box Zeichenfolge von „base“ zu "ubuntu/trusty64" .
config.vm.box = "ubuntu/trusty64"
Sie können eine weitere Zeile über dem end
hinzufügen Befehl zur Angabe einer Box-Version:
config.vm.box_version = “1.0.1”
Oder Sie können eine URL angeben, um direkt auf das Feld zu verlinken:
config.vm.box_url = “https://vagrantcloud.com/ubuntu/trusty64”
Wenn Sie ein Feld entfernen möchten, verwenden Sie Folgendes:
vagrant box remove ubuntu/trusty64
VagrantFile
Anstatt ein komplettes Betriebssystem-Image aufzubauen und zu kopieren, verwendet Vagrant ein „Vagrantfile“, um die Konfiguration der Box zu spezifizieren.
Bereitstellung
Wenn Sie genug Geld für das Gastbetriebssystem ausgegeben haben, ist Ihnen vielleicht aufgefallen, dass es nicht mit vielen Anwendungen geladen ist.
Glücklicherweise unterstützt Vagrant die automatische Bereitstellung über eine bootstrap.sh Datei im gleichen Verzeichnis wie die Vagrantfile gespeichert.
Um einen einfachen Ressourcenmonitor hinzuzufügen, nmon , verwenden Sie im Gastbetriebssystem den Befehl:
sudo vi bootstrap.sh
Geben Sie in dieser Datei Folgendes ein:
#!/usr/bin/env bash
apt-get update
apt-get install -y nmon
if ! [ -L /var/www ]; then
rm -rf /var/www
ln -fs /vagrant /var/www
fi
Speichern die Datei und beenden. Bearbeiten Sie als Nächstes die Vagrant-Datei und fügen Sie die Bereitstellungszeile hinzu. Es sollte wie folgt aussehen:
Vagrant.configure("2") do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision :shell, path: "bootstrap.sh"
end
Wenn Vagrant die Vagrant-Datei liest, wird es umgeleitet, um bootstrap.sh zu lesen Datei, die wir gerade erstellt haben. Diese Bootstrap-Datei aktualisiert den Paketmanager und installiert dann nmon Paket. Wenn Sie vagrant up
verwenden und vagrant ssh
Befehlen, sollten Sie nun in der Lage sein, nmon auszuführen für eine Anzeige der Ressourcen der virtuellen Maschine.
Provisioning bietet Ihnen ein leistungsstarkes Tool zur Vorkonfiguration Ihrer virtuellen Umgebung. Sie könnten dasselbe auch mit Apache2 machen , und erstellen Sie einen Webserver in Ihrer virtuellen Umgebung.
Anbieter
Dieses Tutorial zeigt Ihnen, wie Sie Vagrant mit VirtualBox verwenden. Vagrant kann jedoch auch mit vielen anderen Backend-Anbietern zusammenarbeiten.
Um Vagrant mit VMware zu starten, führen Sie den folgenden Befehl aus:
vagrant up –provider=vmware_fusion
Oder Sie können Vagrant über Amazon Web Services starten mit:
vagrant up –provider=aws
Sobald der erste Befehl ausgeführt wurde, gelten nachfolgende Befehle für denselben Anbieter.
Starten und Verbinden
Landstreicher auf
Der Hauptbefehl zum Starten Ihrer neuen virtuellen Umgebung lautet:
vagrant up
Dadurch wird die Software ausgeführt und schnell eine virtuelle Ubuntu-Umgebung gestartet. Obwohl die virtuelle Maschine ausgeführt wird, sehen Sie jedoch keine Ausgabe. Vagrant bietet keinerlei Benutzeroberfläche.
Vagrant SSH
Sie können eine Verbindung zu Ihrer virtuellen Maschine herstellen (und überprüfen, ob sie ausgeführt wird), indem Sie eine SSH-Verbindung verwenden:
vagrant ssh
Dadurch wird eine Secure Shell-Verbindung zur neuen virtuellen Maschine geöffnet. Ihre Eingabeaufforderung ändert sich zu [email protected] um anzuzeigen, dass Sie bei der virtuellen Maschine angemeldet sind.
Wenn Sie mit dem Erkunden der virtuellen Maschine fertig sind, können Sie die Sitzung mit STRG-D beenden . Die virtuelle Maschine wird weiterhin im Hintergrund ausgeführt, aber die SSH-Verbindung wird geschlossen.
Geben Sie Folgendes ein, um die Ausführung der virtuellen Maschine zu stoppen:
vagrant destroy
Die heruntergeladene Datei bleibt erhalten, aber alles, was in der virtuellen Maschine ausgeführt wurde, wird gelöscht.
Synchronisierte Ordner
Vagrant synchronisiert automatisch Inhalte, die sich in Ihrem Projektverzeichnis befinden, mit einem speziellen Verzeichnis im (virtuellen) Gastsystem. Das Projektverzeichnis ist das, das Sie zuvor erstellt haben, /vagrant-test . Es ist auch derselbe, der die Vagrantfile enthält.
Wenn Sie sich bei der virtuellen Maschine anmelden, startet sie standardmäßig im Verzeichnis /home/vagrant/ Verzeichnis. Ein anderes Verzeichnis, /vagrant/ , enthält dieselben Dateien wie auf Ihrem Hostsystem.
Sie können vagrant up
verwenden und vagrant ssh
um die virtuelle Maschine zu starten und sich anzumelden, erstellen Sie dann ein Testdokument in /vagrant Verzeichnis.
Verwenden Sie den exit
Befehl, um die SSH-Sitzung zu schließen, und verwenden Sie dann ls
um den Inhalt Ihres Vagrant-Test-Verzeichnisses aufzulisten. Es sollte die von Ihnen erstellte Testdatei anzeigen.
Dies ist eine praktische Möglichkeit, Dateien im Gastbetriebssystem zu verwalten, ohne eine SSH-Sitzung verwenden zu müssen.
Netzwerken
Vagrant enthält Optionen zum Platzieren Ihrer virtuellen Maschine in einem Netzwerk. Am Ende Ihrer Vagrantfile, kurz vor dem end
verwenden Sie den Befehl config.vm.network
Befehl zum Festlegen von Netzwerkeinstellungen.
Zum Beispiel:
config.vm.network “forwarded_port”, guest: 80, host: 8080
Damit die Änderungen wirksam werden, speichern Sie und laden Sie Vagrant mit dem Befehl neu:
vagrant reload
Dadurch wird ein weitergeleiteter Port für das Gastsystem erstellt. Sie können auch private Netzwerke, öffentliche Netzwerke und andere erweiterte Optionen definieren.
Vagrant Share
Vagrant hat eine praktische Funktion, mit der Sie Ihre Vagrant-Umgebung mit einer benutzerdefinierten URL teilen können.
Verwenden Sie bei laufender Vagrant-Umgebung den folgenden Befehl:
vagrant share
Das System erstellt eine Vagrant Share-Sitzung und generiert dann eine URL. Diese URL kann kopiert und an eine andere Person gesendet werden. Wenn Sie Apache in Ihrer Vagrant-Sitzung konfiguriert haben, kann jeder, der diese URL verwendet, Ihre Apache-Konfigurationsseite sehen. Diese URL ändert sich, wenn Sie den Inhalt Ihres freigegebenen Ordners ändern.
Sie können die Freigabesitzung mit STRG-C schließen .
Weitere Informationen finden Sie in der Vagrant Sharing-Dokumentation.
Landstreicher aufräumen
Sobald Sie mit der Arbeit an Ihrem Gastsystem fertig sind, haben Sie einige Möglichkeiten, die Sitzung zu beenden.
1. Um die Maschine zu stoppen und ihren aktuellen Zustand zu speichern, führen Sie Folgendes aus:
vagrant suspend
Sie können fortfahren, indem Sie vagrant up
ausführen wieder. Dies ist ungefähr so, als ob Sie das Gerät in den Ruhemodus versetzen würden .
2. Um die virtuelle Maschine herunterzufahren, verwenden Sie den Befehl:
vagrant halt
Wieder vagrant up
startet dieselbe virtuelle Maschine neu und Sie können dort weitermachen, wo Sie aufgehört haben. Das ist ähnlich wie Herunterfahren eine normale Maschine.
3. Um alle Spuren der virtuellen Maschine von Ihrem System zu entfernen, geben Sie Folgendes ein:
vagrant destroy
Alles, was Sie in der virtuellen Maschine gespeichert haben, wird entfernt. Dadurch werden die von Vagrant verwendeten Systemressourcen freigegeben.
Das nächste Mal, wenn Sie vagrant up
, muss die Maschine neu importiert und neu bereitgestellt werden. Dies ähnelt dem Formatieren einer Festplatte auf einem System, dann neues Laden eines neuen Bildes .