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

Vagrant-Tutorial – Erste Schritte mit Vagrant unter Linux

In diesem Vagrant-Tutorial erfahren wir mehr über Vagrant, Vagrant-Boxen, Vagrant-Dateien, Bereitstellungstools, die Installation von Vagrant auf Linux-Betriebssystemen und schließlich einige grundlegende Vagrant-Befehle zum Erstellen und Verwalten virtueller Maschinen über die Befehlszeile.

1. Einführung in Vagrant

Landstreicher ist eine Open-Source-Software zum Erstellen und Verwalten virtueller Softwareentwicklungsumgebungen. Es bietet eine saubere, einfach zu konfigurierende, reproduzierbare und portable Entwicklungsumgebung. Mit anderen Worten, Vagrant ermöglicht es uns, einfach und schnell eine universelle Softwareentwicklungsumgebung bereitzustellen, die überall eingesetzt werden kann. Vagrant eliminiert einfach die Ausrede „funktioniert auf meiner Maschine“. Denn alle arbeiten in der gleichen Umgebung mit der gleichen Konfiguration. Es spielt keine Rolle, welches Betriebssystem sie verwenden.

Vagrant wird häufig verwendet, um eine identische und kollaborative Arbeitsumgebung für Entwickler einzurichten, um an einem gemeinsamen Projekt zu arbeiten. Es isoliert alle erforderlichen Abhängigkeiten und ihre Konfigurationseinstellungen in einer einzigen, verfügbaren Umgebung. Wenn die anderen Entwickler eine Entwicklungsumgebung mit derselben Konfigurationsdatei erstellen, erhalten sie dieselbe Umgebung mit denselben Einstellungen.

Vagrant ist eine plattformübergreifende Anwendung, die in Ruby geschrieben ist Sprache. Es unterstützt GNU/Linux, Mac OS und Microsoft Windows. Es wird von Hashicorp entwickelt und veröffentlicht unter MIT Lizenz.

1.1. Vagabundenboxen

Die "Box" ist ein Format und eine Erweiterung für Vagrant-Umgebungen. Die Vagabundenboxen sind nur die Basisbilder. Sie können ein Virtualbox-Image oder VMware-Image oder das Image eines Cloud-Anbieters wie Amazon Machine Image (AMI) sein. Wir können die Vagrant-Boxen auf beliebige andere Systeme kopieren und eine exakte Nachbildung der aktuellen Entwicklung einrichten.

In Vagrant Cloud stehen viele vorkonfigurierte Vagrant-Boxen zum Download bereit öffentliches Repositorium. Wenn Sie keine vorkonfigurierten Boxen verwenden möchten, erstellen Sie einfach eine nach Ihren Wünschen und verteilen Sie sie über dieses Repository an alle.

1.2. Vagrantfile

Die Betriebssystem- und Softwarevoraussetzungen sind in einer Konfigurationsdatei namens „vagrantfile“ definiert. Diese Datei wird zusammen mit den Vagrant-Boxen verteilt. Wenn Sie eine VM mit Vagrant initialisieren, liest es diese Datei und richtet Ihre Entwicklungsumgebung entsprechend ein. Der eigentliche Zweck einer Vagrant-Datei besteht also darin, den Typ der virtuellen Maschine und die Konfiguration und Bereitstellung der VMs zu beschreiben.

Die folgenden Details sind in einer typischen Vagrant-Datei definiert:

  • Betriebssystemversion z.B. Ubuntu Bionic.
  • Aktivieren/deaktivieren Sie die automatische Suche nach Box-Updates.
  • Netzwerkkonfiguration;
    • Portweiterleitung,
    • ein privates Netzwerk konfigurieren (nur Host-Zugriff auf die Maschine),
    • Öffentliches Netzwerk konfigurieren (überbrücktes Netzwerk).
  • Ordner für Gast-VM freigeben.
  • Bevorzugten Anbieter festlegen z.B. virtualbox, kvm.
  • Definiere die Gesamtmenge an Arbeitsspeicher für die VM.
  • Ermöglichen Sie die Bereitstellung mit Shell-Skript oder Konfigurationsverwaltungstools wie Ansible.

1.3. Bereitstellungstools

Vagrant ist keine eigenständige Virtualisierungsplattform wie KVM oder Virtualbox. Es ist nur ein Wrapper und ein Front-End, das sich zwischen einer Virtualisierungssoftware und einer virtuellen Maschine befindet. Vagrant verwendet verschiedene Dienstanbieter und Bereitstellungstools, um die Entwicklungsumgebungen zu erstellen und zu verwalten.

Die virtuellen Maschinen bauen auf gängigen Virtualisierungsanwendungen wie VirtualBox, KVM, Docker, VMware usw. und Cloud-Service-Anbietern wie AWS, Azure, GCE und vielen mehr auf. Die vollständige Liste der unterstützten Anbieter können Sie hier einsehen . Vagrant wird standardmäßig mit Unterstützung für VirtualBox, Hyper-V und Docker ausgeliefert. VirtualBox ist der Standardanbieter für Vagrant.

Sobald die virtuelle Maschine erstellt ist, können wir die Software darauf mit einfachen Shell-Skripten und branchenüblichen Konfigurationsverwaltungstools wie Ansible, CFEngine, Chef, Docker, Podman, Puppet und Salt usw. installieren. Die Benutzer können auch die Konfiguration anpassen von virtuelle Umgebungen gemäß ihren Anforderungen mithilfe der Bereitstellungstools.

Kurz gesagt, die Provider (z. B. VirtualBox, AWS) werden verwendet, um eine virtuelle Umgebung zu erstellen, und die Provisioner (z. B. Ansible, Puppet) werden verwendet, um die virtuellen Umgebungen anzupassen.

2. Installieren Sie Vagrant unter Linux

Die Installation von Vagrant ist unglaublich einfach und unkompliziert. Laden Sie einfach die neueste Version von der Vagrant-Downloadseite herunter und installieren Sie sie mit dem Standardverfahren für Ihre Betriebssysteme. Informationen zur Installation von Vagrant auf verschiedenen Linux-Plattformen finden Sie unter folgendem Link.

  • So installieren Sie Vagrant unter Linux

3. Vagrant-Tutorial – Grundlegende Vagrant-Befehle zum Erstellen und Verwalten virtueller Maschinen

Hier habe ich nur Beispiele für die grundlegenden Vagrant-Befehle gegeben, die wir zum Einrichten und Verwalten einer virtualisierten Entwicklung benötigen. Um die vollständige Verwendung von Vagrant zu erfahren, lesen Sie die offizielle Dokumentation am Ende.

3.1. Vagrant-Projektverzeichnis erstellen

Zuerst müssen wir ein Projektverzeichnis erstellen.

Ich werde ein Verzeichnis namens myvagrants erstellen für meine virtuelle Umgebung:

$ mkdir myvagrants

Cd in dieses Verzeichnis, um virtuelle Maschinen zu erstellen und zu speichern:

$ cd myvagrants

3.2. Vagrant-Umgebung initialisieren

Initialisieren Sie die Vagrant-Umgebung mit dem folgenden Befehl:

$ vagrant init hashicorp/bionic64

Beispielausgabe:

A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.

Der obige Befehl initialisiert das aktuelle Verzeichnis als Standard-Vagrant-Umgebung und erstellt eine Basis-Vagrant-Datei.

Sie können den Inhalt der neu erstellten Vagrantfile mit cat anzeigen Befehl und kennen Sie die Details der virtuellen Maschine, die Sie erstellen werden:

$ cat Vagrantfile | less

Wenn Sie die VM in den folgenden Schritten starten, lädt sie die von HashiCorp veröffentlichte Ubuntu Bionic Box herunter. Das Vagrant-Team empfiehlt außerdem die Verwendung der Bento-Boxen . Sie sind Open Source und wurden für beliebte Anbieter wie Virtualbox, VMWare und Parallels entwickelt. HashiCorp und Bento sind die einzigen beiden offiziell empfohlenen Box-Sets.

3.3. Virtuelle Maschine starten

Erstellen und starten Sie nun die virtuelle Maschine gemäß der Vagrant-Datei (die wir im vorherigen Schritt erstellt haben) mit dem Befehl:

$ vagrant up

Beispielausgabe:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'hashicorp/bionic64' could not be found. Attempting to find and install...
    default: Box Provider: virtualbox
    default: Box Version: >= 0
==> default: Loading metadata for box 'hashicorp/bionic64'
    default: URL: https://vagrantcloud.com/hashicorp/bionic64
==> default: Adding box 'hashicorp/bionic64' (v1.0.282) for provider: virtualbox
    default: Downloading: https://vagrantcloud.com/hashicorp/boxes/bionic64/versions/1.0.282/providers/virtualbox.box
Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> default: Successfully added box 'hashicorp/bionic64' (v1.0.282) for 'virtualbox'!
==> default: Importing base box 'hashicorp/bionic64'...
==> default: Matching MAC address for NAT networking...
==> default: Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date...
==> default: Setting the name of the VM: myvagrants_default_1597837509450_67666
Vagrant is currently configured to create VirtualBox synced folders with
the `SharedFoldersEnableSymlinksCreate` option enabled. If the Vagrant
guest is not trusted, you may want to disable this option. For more
information on this option, please refer to the VirtualBox manual:

  https://www.virtualbox.org/manual/ch04.html#sharedfolders

This option can be disabled globally with an environment variable:

  VAGRANT_DISABLE_VBOXSYMLINKCREATE=1

or on a per folder basis within the Vagrantfile:

  config.vm.synced_folder '/host/path', '/guest/path', SharedFoldersEnableSymlinksCreate: false
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 22 (guest) => 2222 (host) (adapter 1)
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
    default: Warning: Connection reset. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: Warning: Remote connection disconnect. Retrying...
    default: 
    default: Vagrant insecure key detected. Vagrant will automatically replace
    default: this with a newly generated keypair for better security.
    default: 
    default: Inserting generated public key within guest...
    default: Removing insecure key from the guest if it's present...
    default: Key inserted! Disconnecting and reconnecting using new SSH key...
==> default: Machine booted and ready!
==> default: Checking for guest additions in VM...
    default: The guest additions on this VM do not match the installed version of
    default: VirtualBox! In most cases this is fine, but in rare cases it can
    default: prevent things such as shared folders from working properly. If you see
    default: shared folder errors, please make sure the guest additions within the
    default: virtual machine match the version of VirtualBox you have installed on
    default: your host and reload your VM.
    default: 
    default: Guest Additions Version: 6.0.10
    default: VirtualBox Version: 6.1
==> default: Mounting shared folders...
    default: /vagrant => /home/sk/myvagrants

Der obige Befehl lädt die Ubuntu Bionic Box aus der Vagrant-Cloud herunter und erstellt eine neue virtuelle Maschine namens "myvagrants_default_1597837509450_67666" , fügen Sie es der Virtualbox hinzu und starten Sie die VM automatisch.

Sie sehen keine Benachrichtigungen, obwohl die VM ausgeführt wird. Um zu überprüfen, ob die VM ausgeführt wird, öffnen Sie die Virtualisierungsanwendung (z. B. VirtualBox oder Virt-Manager) und prüfen Sie, ob die VM ausgeführt wird oder nicht.

Da Vagrant Virtualbox als Standardanbieter verwendet, kann ich die laufende VM im Virtualbox-Manager sehen.

Wie Sie sehen können, läuft Ubuntu Bionic VM in Virtualbox.

Wenn Sie einen anderen Anbieter verwenden, zum Beispiel Virt-Manager, öffnen Sie ihn und prüfen Sie, ob die Vagrant-Maschine läuft.

3.4. Zugriff auf virtuelle Maschinen

Sie können die ausgeführten VMs über SSH verbinden und darauf zugreifen.

Um mit dem Befehl SSH in die laufende Vagrant-Box zu gelangen, führen Sie Folgendes aus:

$ vagrant ssh

Beispielausgabe:

Welcome to Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-58-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Wed Aug 24 11:56:42 UTC 2020

  System load:  0.08              Processes:           88
  Usage of /:   2.5% of 61.80GB   Users logged in:     0
  Memory usage: 11%               IP address for eth0: 10.0.2.15
  Swap usage:   0%

 * Are you ready for Kubernetes 1.19? It's nearly here! Try RC3 with
   sudo snap install microk8s --channel=1.19/candidate --classic

   https://microk8s.io/ has docs and details.

0 packages can be updated.
0 updates are security updates.


[email protected]:~$ 

3.5. Lokale und Gastdateien synchronisieren

Vagrant unterstützt die Dateisynchronisierung sofort. Standardmäßig teilt Vagrant Ihr Projektverzeichnis (dasjenige, das die Vagrant-Datei enthält. In meinem Fall ist es ~/myvagrants .) an /vagrant Verzeichnis in Ihrer virtuellen Gastmaschine.

Sie können dies überprüfen, indem Sie den Inhalt von /vagrant auflisten Verzeichnis in Ihrer virtuellen Maschine:

[email protected]:~$ ls /vagrant/
Vagrantfile

Bitte beachten Sie, dass die Vagrant-Datei, die Sie in der virtuellen Maschine sehen, tatsächlich die gleiche Vagrant-Datei ist, die sich auf Ihrer tatsächlichen Host-Maschine befindet.

Um zu testen, ob die Synchronisierung tatsächlich funktioniert, erstellen Sie eine Beispieldatei in /vagrant Verzeichnis auf Ihrem Gastcomputer:

[email protected]:~$ touch /vagrant/test.txt

Beenden Sie die SSH-Sitzung Ihrer VM:

[email protected]:~$ logout

Überprüfen Sie nun Ihr lokales Projektverzeichnis in Ihrem Hostsystem. Sie werden sehen, dass die gleiche Datei auch auf dem Host-Rechner erstellt wird.

[email protected]:~/myvagrants$ ls
test.txt Vagrantfile

3.6. Status der virtuellen Maschinen anzeigen

Um den Status einer virtuellen Maschine in einer virtuellen Umgebung anzuzeigen, führen Sie Folgendes aus:

$ vagrant status

Beispielausgabe:

Current machine states:

default                   running (virtualbox)

The VM is running. To stop this VM, you can run `vagrant halt` to
shut it down forcefully, or you can run `vagrant suspend` to simply
suspend the virtual machine. In either case, to restart it again,
simply run `vagrant up`.

Wie Sie oben sehen, habe ich nur eine VM und sie läuft jetzt.

Wenn die VM ausgeschaltet ist, erhalten Sie die folgende Ausgabe:

Current machine states:

default                   poweroff (virtualbox)

The VM is powered off. To restart the VM, simply run `vagrant up`
aus

3.7. Status aller virtuellen Umgebungen anzeigen

Wir können die Informationen über alle bekannten virtuellen Umgebungen auf unserem System mit dem folgenden Befehl anzeigen:

$ vagrant global-status

Beispielausgabe:

id       name    provider   state    directory                           
-------------------------------------------------------------------------
2086482  default virtualbox poweroff /home/sk/myvagrants                 
 
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date (use "vagrant global-status --prune" to prune invalid
entries). To interact with any of the machines, you can go to that
directory and run Vagrant, or you can use the ID directly with
Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

Der obige Befehl listet die VM-ID, den Namen, den Anbieter, den Status der VM und das Verzeichnis der virtuellen Umgebung auf.

Manchmal wird die Ausgabe möglicherweise zwischengespeichert und ist möglicherweise nicht korrekt. Führen Sie also den folgenden Befehl aus, um die ungültigen Einträge zu entfernen und den aktuellen Status der virtuellen Umgebung abzurufen:

$ vagrant global-status --prune

3.8. Virtuelle Maschinen anhalten

Führen Sie zum Anhalten einer laufenden VM Folgendes aus:

$ vagrant suspend

Beispielausgabe:

==> default: Saving VM state and suspending execution…

3.9. Virtuelle Maschinen fortsetzen

Um eine angehaltene VM in der aktuellen virtuellen Umgebung fortzusetzen, führen Sie Folgendes aus:

$ vagrant resume

Beispielausgabe:

==> default: Resuming suspended VM...
==> default: Booting VM...
==> default: Waiting for machine to boot. This may take a few minutes...
    default: SSH address: 127.0.0.1:2222
    default: SSH username: vagrant
    default: SSH auth method: private key
==> default: Machine booted and ready!
==> default: Machine already provisioned. Run `vagrant provision` or use the `--provision`
==> default: flag to force provisioning. Provisioners marked to run always will still run.

3.10. Starten Sie virtuelle Maschinen neu

So starten Sie eine laufende VM neu:

$ vagrant reload

Dieser Befehl fährt die VM ordnungsgemäß herunter und startet sie neu.

3.11. Virtuelle Maschinen anhalten/herunterfahren

Gehen Sie wie folgt vor, um eine laufende VM anzuhalten oder herunterzufahren:

$ vagrant halt

3.12. Virtuelle Maschinen löschen

Um alle Ablaufverfolgungen einer VM zu stoppen und zu löschen, führen Sie Folgendes aus:

$ vagrant destroy

Geben Sie y ein und drücken Sie ENTER, um die virtuelle Maschine zu löschen.

Wenn Sie die VM ohne Bestätigung löschen möchten, führen Sie Folgendes aus:

$ vagrant destroy -f

3.13. Virtuelle Maschinen zurücksetzen

Manchmal möchten Sie Ihre virtuelle Maschine möglicherweise auf ihren ursprünglichen Zustand zurücksetzen, ohne die Box tatsächlich zu löschen. Dies kann hilfreich sein, um eine saubere virtuelle Umgebung bereitzustellen, ohne immer wieder eine Vagrant-Box herunterladen zu müssen.

Um eine virtuelle Maschine in ihren ursprünglichen Zustand zurückzusetzen, tun Sie einfach:

$ vagrant destroy
$ vagrant up

Der erste Befehl fährt die laufende virtuelle Maschine herunter und löscht alle ihr zugeordneten Ressourcen. Und der zweite Befehl erstellt eine neue, frische virtuelle Maschine unter Verwendung der vorhandenen Vagrant-Box.

Weitere Einzelheiten finden Sie unter folgendem Link:

  • So setzen Sie die Vagrant Virtual Machine auf den ursprünglichen Zustand zurück

3.14. Führen Sie Vagrant-Befehle von jedem Verzeichnis aus

Normalerweise starten, stoppen, laden und löschen wir eine Vagrant-Maschine aus dem Verzeichnis ihres Projekts, richtig? Ja! Wir können jedoch Vagrant-Befehle von jedem Verzeichnis aus ausführen, indem wir die ID des Vagrant-Rechners verwenden.

Führen Sie den folgenden Befehl aus, um die ID des Vagrant-Computers zu finden:

$ vagrant global-status

Beispielausgabe:

id       name    provider state   directory                           
----------------------------------------------------------------------
ddc1a10  default libvirt shutoff /home/sk/Vagrant/Ubuntu2004         
f4904ad  default libvirt shutoff /home/sk/Vagrant/Archlinux          
831f9c0  default libvirt shutoff /home/sk/Vagrant/Gentoo             
3587422  default libvirt shutoff /home/sk/Vagrant/Rhel8              
b2279ad  default libvirt shutoff /home/sk/Vagrant/Almalinux8         
 
The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date (use "vagrant global-status --prune" to prune invalid
entries). To interact with any of the machines, you can go to that
directory and run Vagrant, or you can use the ID directly with
Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

Wie Sie in der obigen Ausgabe sehen, vagrant global-status zeigt die Details aller bekannten virtuellen Umgebungen in meinem System an. Die erste Spalte in der obigen Ausgabe zeigt die ID jeder Vagrant-Maschine.

Sie können die ID direkt mit Vagrant-Befehlen aus jedem Verzeichnis verwenden. Um beispielsweise eine Vagrant-Maschine aus einem beliebigen Verzeichnis zu starten, können wir einfach Folgendes verwenden:

$ vagrant up b2279ad

Dadurch wird die vagabundierende Maschine mit der ID b2279ad gestartet .

Ebenso können wir auch andere Vagrant-Befehle verwenden.

$ vagrant status b2279ad
$ vagrant ssh b2279ad
$ vagrant halt b2279ad
$ vagrant destroy b2279ad

3.15. Vagrant-Boxen auflisten

Führen Sie Folgendes aus, um alle verfügbaren Boxen aufzulisten, die mit Vagrant installiert wurden:

$ vagrant box list

Beispielausgabe:

hashicorp/bionic64 (virtualbox, 1.0.282)

Wenn Sie einige zusätzliche Boxdetails wie Autorenname, Website, Repository, Beschreibung usw. anzeigen möchten, verwenden Sie -i Flagge:

$ vagrant box list -i

Beispielausgabe:

generic/alpine38    (virtualbox, 3.1.16)
  - Author: Ladar Levison
  - Website: https://roboxes.org/
  - Artifacts: https://vagrantcloud.com/generic/
  - Repository: https://github.com/lavabit/robox/
  - Description: Basic virtual machine images, for a variety of operating systems/hypervisors, and ready to serve as base bxoes.

3.16. Überprüfen Sie, ob eine Vagrant-Box veraltet ist

Um zu überprüfen, ob die Box, die Sie in Ihrer Vagrant-Umgebung verwenden, veraltet ist, gehen Sie zum Verzeichnis der Vagrant-Umgebung, d. h. des Projekts,

$ cd myvagrants/

und führe aus:

$ vagrant box outdated
Checking if box 'hashicorp/bionic64' version '1.0.282' is up to date…

3.17. Vagrant-Boxen aktualisieren

Wenn veraltete Boxen vorhanden sind, können Sie diese wie folgt aktualisieren:

$ vagrant box update

Beispielausgabe:

==> default: Checking for updates to 'hashicorp/bionic64'
default: Latest installed version: 1.0.282
default: Version constraints:
default: Provider: virtualbox
==> default: Box 'hashicorp/bionic64' (v1.0.282) is running the latest version.

3.18. Vagrant-Boxen herunterladen

Die vagrant init Der Befehl initialisiert und startet die Vagrant-Umgebung, indem er die entsprechende Vagrant-Box herunterlädt, die in der Vagrant-Datei definiert ist.

Sie können die Vagrant-Box auch manuell herunterladen und ihre Vagrant-Datei bearbeiten und dann starten.

Um eine Vagrant-Box herunterzuladen, führen Sie Folgendes aus:

$ vagrant box add bento/debian-10.5

Der obige Befehl lädt die von Bento veröffentlichte Debian 10.5-Versionsbox herunter. Sie werden aufgefordert, den Anbieter (z. B. virtualbox oder vmware) auszuwählen, den Sie gerade verwenden. Wählen Sie einfach eine aus und drücken Sie die EINGABETASTE, um die Box herunterzuladen.

Beispielausgabe:

==> box: Loading metadata for box 'bento/debian-10.5'
    box: URL: https://vagrantcloud.com/bento/debian-10.5
This box can work with multiple providers! The providers that it
can work with are listed below. Please review the list and choose
the provider you will be working with.

1) parallels
2) virtualbox
3) vmware_desktop

Enter your choice: 2
==> box: Adding box 'bento/debian-10.5' (v202008.16.0) for provider: virtualbox
    box: Downloading: https://vagrantcloud.com/bento/boxes/debian-10.5/versions/202008.16.0/providers/virtualbox.box
Download redirected to host: vagrantcloud-files-production.s3.amazonaws.com
==> box: Successfully added box 'bento/debian-10.5' (v202008.16.0) for 'virtualbox'

Sie können dies überprüfen, indem Sie die verfügbaren Felder auflisten:

$ vagrant box list

Beispielausgabe:

bento/debian-10.5 (virtualbox, 202008.16.0)
hashicorp/bionic64 (virtualbox, 1.0.282)

Alle heruntergeladenen Vagrant-Boxen sind unter ~/.vagrant.d/boxes verfügbar Verzeichnis in Ihrem Hostsystem.

3.19. Sehen Sie sich die Größe der Vagrant-Boxen an

Wie im vorherigen Abschnitt erwähnt, werden die heruntergeladenen Vagrant-Boxen in ~/.vagrant.d/boxes gespeichert Verzeichnis.

Sie können die Liste aller heruntergeladenen Boxen in diesem Verzeichnis mit dem Befehl anzeigen:

$ ls ~/.vagrant.d/boxes
almalinux-VAGRANTSLASH-8          generic-VAGRANTSLASH-debian10
archlinux-VAGRANTSLASH-archlinux  generic-VAGRANTSLASH-gentoo
centos-VAGRANTSLASH-8             generic-VAGRANTSLASH-rhel8

Um die Größe der einzelnen Vagrant-Kartons zu ermitteln, verwenden Sie du Befehl mit -h Flagge wie unten:

589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453/libvirt
589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux/20210601.24453
589M	/home/sk/.vagrant.d/boxes/archlinux-VAGRANTSLASH-archlinux
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2/libvirt
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8/3.3.2
1.1G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-rhel8
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24/libvirt
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo/3.2.24
1.6G	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-gentoo
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0/libvirt
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8/2011.0
1.6G	/home/sk/.vagrant.d/boxes/centos-VAGRANTSLASH-8
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4/libvirt
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10/3.3.4
998M	/home/sk/.vagrant.d/boxes/generic-VAGRANTSLASH-debian10
628M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724/libvirt
628M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8/8.4.20210724
629M	/home/sk/.vagrant.d/boxes/almalinux-VAGRANTSLASH-8
6.4G	/home/sk/.vagrant.d/boxes

Um die Gesamtnutzung der Zusammenfassung anzuzeigen, führen Sie Folgendes aus:

$ du -sh ~/.vagrant.d/boxes
6.4G	/home/sk/.vagrant.d/boxes

3.20. Heruntergeladene .box-Datei zu Vagrant hinzufügen

Viele Linux-Distributionen werden über vorkonfigurierte Vagrant-Boxen vertrieben. So kann man sich schnell die Vagrant-Box schnappen und mit der jeweiligen Virtualisierungsanwendung ausführen. Weitere Einzelheiten finden Sie in der folgenden Anleitung:

  • Wie man eine heruntergeladene .box-Datei zu Vagrant in Linux hinzufügt

3.21. Erstellen Sie eine virtuelle Maschine mit der Vagrant-Box

Um eine neue VM mit der neu heruntergeladenen Box zu erstellen, gehen Sie in das Verzeichnis Ihres Projekts und initialisieren Sie die Vagrant-Umgebung mit dem Befehl:

$ vagrant init

Kopf hoch :Vorhandene Vagrant-Datei löschen, bevor eine neue Vagrant-Umgebung initialisiert wird.

Dadurch wird eine neue Vagrant-Datei im aktuellen Verzeichnis erstellt.

Bearbeiten Sie die Vagrant-Datei, aktualisieren Sie die VM-Details und ersetzen Sie die folgende Zeile:

Vagrant.configure("2") do |config|
[...]
config.vm.box = "base"
[...]

mit folgendem:

config.vm.box = "bento/debian-10.5"

Sie können die Version für die neue VM explizit angeben, indem Sie die folgenden Zeilen hinzufügen:

config.vm.box = "bento/debian-10.5"
config.vm.box_version = "1.0"

Sie können sogar die Download-URL angeben:

config.vm.box = "bento/debian-10.5"
config.vm.box_version = "1.0"
config.vm.box_url = "https://app.vagrantup.com/bento/boxes/debian-10.5/"

Erstellen und starten Sie nun die VM basierend auf dieser Vagrantfile mit dem Befehl:

$ vagrant up

Alternativ können Sie den Boxnamen direkt beim Initialisieren der Vagrant-Umgebung angeben. Dies kann nützlich sein, wenn Sie mehr als eine Vagrant-Box haben.

Listen Sie zuerst die verfügbaren Vagrant-Boxen mit dem Befehl auf:

$ vagrant box list 

Beispielausgabe:

Fedora33            (libvirt, 0)
archlinux/archlinux (virtualbox, 20201201.10292)
fedora33            (virtualbox, 0)
generic/alpine38    (virtualbox, 3.1.16)
oraclelinux/7       (virtualbox, 7.9.184)
oraclelinux/8       (libvirt, 8.3.183)

Angenommen, Sie möchten eine virtuelle Maschine aus einer Box namens "generic/alpine38" erstellen. Führen Sie dazu einfach Folgendes aus:

$ vagrant init generic/alpine38

Dieser Befehl erstellt eine neue Vagrant-Datei und initialisiert die Vagrant-Umgebung mit der angegebenen Box-Konfiguration. Keine Notwendigkeit, Vagrantfile manuell zu bearbeiten und die Boxdetails zu aktualisieren.

Als nächstes starten Sie die virtuelle Maschine mit dem Befehl:

$ vagrant up

3.22. Verwenden Sie Vagrant mit dem KVM-Anbieter Libvirt

Wie ich bereits erwähnt habe, verwendet Vagrant standardmäßig Virtualbox, um virtuelle Maschinen auszuführen. Es ist auch möglich, Vagrant anzuweisen, einen anderen Anbieter zu verwenden, beispielsweise Libvirt KVM , um VMs mit vagrant-libvirt auszuführen Plugin. Dieses Plugin fügt den Libvirt-Anbieter zu Vagrant hinzu und ermöglicht es Vagrant, Maschinen über Libvirt zu steuern und bereitzustellen. Um zu erfahren, wie Sie libvirt als Vagrant-Anbieter verwenden, lesen Sie die folgende Anleitung:

  • So verwenden Sie Vagrant mit dem Libvirt KVM-Anbieter

3.23. Konfigurieren Sie das Netzwerk in Vagrant

Um den Netzwerkzugriff zwischen Gastcomputern und dem Hostsystem bereitzustellen, bietet Vagrant die folgenden drei Optionen an:

  1. Portweiterleitung
  2. Privates Netzwerk (Host-Only-Netzwerk)
  3. Öffentliches Netzwerk (überbrücktes Netzwerk)

Jede Option hat ihre eigenen Höhen und Tiefen. Sie können eine oder alle Vagrant-Netzwerkoptionen konfigurieren, wie in der folgenden Anleitung beschrieben:

  • So konfigurieren Sie das Netzwerk in Vagrant

3.24. Finden Sie die IP-Adresse des Vagrant-Computers vom Hostsystem

Um die IP-Adresse eines Vagrant-Rechners zu finden, gehen wir normalerweise per SSH hinein und finden seine IP-Adresse mit ip oder ifconfig Befehle. Wir können die IP-Adresse eines laufenden Vagrant-Rechners auch direkt vom Host abrufen, wie im folgenden Link beschrieben:

  • So finden Sie die IP-Adresse eines Vagrant-Computers vom Host

3.25. Erhöhen Sie den Arbeitsspeicher und die CPU auf dem Vagrant-Computer

Haben Sie Leistungsprobleme mit Ihrem Vagrant-Gerät? Es liegt wahrscheinlich an unzureichendem Arbeitsspeicher oder CPU. Fügen Sie der Vagrant-Maschine einfach mehr RAM und CPU-Kern hinzu, um die Leistung zu verbessern, wie im folgenden Link gezeigt.

  • So erhöhen Sie Speicher und CPU auf einer Vagrant-Maschine

3.26. Entfernen Sie veraltete Vagrant-Boxen

Möglicherweise haben Sie mehrere Versionen von Vagrant-Boxen heruntergeladen und einige davon sind möglicherweise ziemlich veraltet! Wenn sie nicht mehr benötigt werden, können Sie die alten Versionen installierter Vagrant-Boxen sicher löschen, wie im folgenden Link beschrieben.

  • So löschen Sie veraltete Vagrant-Boxen unter Linux

3.27. Vagrant-Boxen endgültig löschen

Um eine vagabundierende Box zu entfernen, zum Beispiel hashicorp/bionic64, führen Sie Folgendes aus:

$ vagrant box remove hashicorp/bionic64

Geben Sie y ein und drücken Sie ENTER Löschen bestätigen:

Box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox' appears
to still be in use by at least one Vagrant environment. Removing
the box could corrupt the environment. We recommend destroying
these environments first:

default (ID: 20864823c72f45568d251070b5ce2661)

Are you sure you want to remove this box? [y/N] y
Removing box 'hashicorp/bionic64' (v1.0.282) with provider 'virtualbox'…

Wenn Sie den Namen der Box nicht kennen, führen Sie einfach den folgenden Befehl aus, um alle installierten Boxen aufzulisten:

$ vagrant box list

Zu diesem Zeitpunkt sollten Sie die Grundlagen der Vagrant-Nutzung gelernt haben. Vagrant ist ein weites Thema und ich werde versuchen, so viel wie möglich in unseren kommenden Artikeln zu behandeln. Bleiben Sie dran!

4. Vagrant-Fehlerbehebung

In diesem Abschnitt werden einige allgemeine Vagrant-Probleme behandelt.

4.1. Vagrant konnte in einem sehr frühen Stadium nicht initialisiert werden

Lässt sich Ihre Vagrant-Maschine nicht starten? Keine Bange! Dies ist eines der häufigsten Vagabunden-Probleme. Dies kann an veralteten Plugins liegen oder das Vagrant HOME-Verzeichnis wurde möglicherweise an einen anderen Ort verschoben. Um dieses Problem zu beheben, lesen Sie die folgende Anleitung:

  • So beheben Sie den Fehler „Vagrant konnte in einem sehr frühen Stadium nicht initialisiert werden“ in Linux

4.2. Zugriff auf Speicherdatei nicht möglich, Zugriff verweigert Fehler in KVM Libvirt

Manchmal kann es vorkommen, dass Sie einen Vagrant-Rechner nicht starten und am Ende einen Fehler wie diesen erhalten - Failed to start domain 'Archlinux_default' error: Cannot access storage file '/home/sk/.local/share/libvirt/images/Archlinux_default.img' (as uid:107, gid:107): Permission denied .

Dieser Fehler tritt normalerweise auf, wenn qemu Der Benutzer hat keine Leseberechtigung für das Libvirt-Speicherverzeichnis. Um dieses Problem zu beheben, lesen Sie die folgende Anleitung:

  • [Gelöst] Zugriff auf Speicherdatei nicht möglich, Zugriff verweigert Fehler in KVM Libvirt

5. Fazit

In diesem umfassenden Leitfaden haben wir gelernt, was Vagrant ist, und die Vagrant-Terminologien wie Vagrant-Boxen, Vagrantfile und Bereitstellungstools. Wir haben auch gelernt, wie man Vagrant auf Linux-Betriebssystemen installiert, und schließlich haben wir einige grundlegende Vagrant-Befehle besprochen, um virtuelle Maschinen über die Befehlszeile in Linux zu erstellen und zu verwalten.

Wenn Sie ein DevOps-Ingenieur sind, ist es sehr nützlich, zu wissen, wie man Vagrant verwendet. Vagrant ist eines der wichtigsten Tools, die Sie auf Ihrem System haben sollten.


Linux
  1. Erste Schritte mit Linux-Firewalls

  2. Erste Schritte mit dem Linux-tac-Befehl

  3. Erste Schritte mit PiFlash:Starten Sie Ihren Raspberry Pi unter Linux

  4. Erste Schritte mit dem Linux-cat-Befehl

  5. Erste Schritte mit SSH unter Linux

Erste Schritte mit dem Linux-Betriebssystem

Docker-Tutorial – Erste Schritte mit Docker unter Linux

Erste Schritte mit Docker Compose unter Linux

Erste Schritte mit VirtualBox unter Linux – Teil 1

Erste Schritte mit Vagrant und VirtualBox – Teil 1

Erste Schritte mit Flutter auf dem Linux-Desktop