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

Erstellen Sie schnell Images virtueller Maschinen mit Virt-Builder

Virt-Builder ist ein Befehlszeilentool zum einfachen und schnellen Erstellen einer Vielzahl von Images virtueller Maschinen für die lokale oder Cloud-Nutzung. Es hat auch viele Optionen, um die Bilder anzupassen. Sie können neue Anwendungen auf dem VM-Image installieren, den Hostnamen festlegen, das Root-Passwort festlegen, einen Befehl oder ein Skript ausführen, wenn die Gast-VM zum ersten Mal startet, Dateien im Disk-Image hinzufügen oder bearbeiten und vieles mehr. Alle diese Aufgaben können über die Befehlszeile ausgeführt werden und erfordern keine Root-Berechtigungen.

Virt-Builder lädt die sauber vorbereiteten, digital signierten Betriebssystemvorlagen herunter, sodass Sie das Betriebssystem nicht manuell installieren müssen. Dazu müssen Sie nur den Virt-Manager verwenden GUI oder Virt-install Befehlszeilentool, um die VMs sofort mit den vordefinierten Vorlagen zu starten. Virt-Builder bietet minimale Betriebssystemvorlagen für beliebte Linux- und Unix-Varianten. Sie können natürlich auch Ihre eigene Vorlage erstellen.

Virt-Builder unter Linux installieren

Virt-builder ist Teil der Libguestfs-Bibliothek, stellen Sie also sicher, dass Sie es wie in der folgenden Anleitung beschrieben installiert haben.

  • Auf Disk-Images virtueller Maschinen mit Libguestfs zugreifen und sie ändern

Images virtueller Maschinen mit Virt-Builder erstellen

Das Erstellen von Images virtueller Maschinen mit Virt-builder ist ziemlich einfach und unkompliziert.

Verfügbare Vorlagen für virtuelle Maschinen auflisten

Listen Sie zunächst die verfügbaren Betriebssystemvorlagen auf. Führen Sie dazu Folgendes aus:

$ virt-builder --list

Zum Zeitpunkt der Erstellung dieses Leitfadens waren die folgenden Vorlagen verfügbar:

centos-6 x86_64 CentOS 6.6centos-7.0 x86_64 CentOS 7.0centos-7.1 x86_64 CentOS 7.1centos-7.2 aarch64 CentOS 7.2 (aarch64)centos-7.2 x86_64 CentOS 7.2centos-7.3 x86_64 CentOS 7.3centos-7.4 x86_64 CentOS 7,5 x86_64 Centos 7.5 Centos-7,6 x86_64 Centos 7.6 Centos-7,7 x86_64 Centos 7.7Centos-7,8 x86_64 Centos 7.8Centos-8.0 x86_64 Centos 8.0centos-8.2 x864. 0.3.5debian-10 x86_64 Debian 10 (Buster)debian-6 x86_64 Debian 6 (Squeeze)debian-7 sparc64 Debian 7 (Wheezy) (sparc64)debian-7 x86_64 Debian 7 (Wheezy)debian-8 x86_64 Debian 8 (Jessie) debian-9 x86_64 Debian 9 (stretch)fedora-26 aarch64 Fedora® 26 Server (aarch64)fedora-26 armv7l Fedora® 26 Server (armv7l)fedora-26 i686 Fedora® 26 Server (i686)fedora-26 ppc64 Fedora® 26 Server (ppc64) fedora-26 ppc64le Fedora® 26-Server (ppc64le)fedora-26 x86_64 Fedora® 26-Server )fedora-27 ppc64 Fedora® 27 Server (ppc64)fedora-27 ppc64le Fedora® 27 Server (ppc64le)fedora-27 x86_64 Fedora® 27 Serverfedora-28 i686 Fedora® 28 Server (i686)fedora-28 x86_64 Fedora® 28 Serverfedora- 29 aarch64 Fedora® 29 Server (aarch64)fedora-29 i686 Fedora® 29 Server (i686) fedora-29 ppc64le Fedora® 29-Server (ppc64le)fedora-29 x86_64 Fedora® 29-Server x86_64 Fedora® 31 Serverfedora-32 x86_64 Fedora® 32 Serverfreebsd-11.1 x86_64 FreeBSD 11.1scientificlinux-6 x86_64 Scientific Linux-10.04 6.5ubuntu x86_64 Ubuntu 10.04 (Lucid) ubuntu-12,04 x86_64 Ubuntu 12.04 (Precise) ubuntu-14,04 x86_64 Ubuntu 14.04 (Trusty )ubuntu-16.04 x86_64 Ubuntu 16.04 (Xenial)ubuntu-18.04 x86_64 Ubuntu 18.04 (bionic)fedora-18 x86_64 Fedora® 18fedora-19 x86_64 Fedora® 19fedora-20 x86_64 Fedora® 20fedora-20 x86_64 Fedora® 20fedora-21 (aarch® 64 Serverfora) 21 armv7l Fedora® 21 Server (armv7l)fedora-21 ppc64 Fedora® 21 Server (ppc64)fedora-21 ppc64le Fedora® 21 Server (ppc64le)fedora-21 x86_64 Fedora® 21 Serverfedora-22 aarch64 Fedora® 22 Server (aarch64)fedora- 22 armv7l Fedora® 22 Server (armv7l)fedora-22 i686 Fedora® 22 Server (i686)fedora-22 x86_64 Fedora® 22 Serverfedora-23 aarch64 Fedora® 23 Server (aarch64)fedora-23 armv7l Fedora® 23 Server (armv7l)fedora -23 i686 Fedora® 23 Server (i686)fedora-23 ppc64 Fedora® 23 Server (ppc64)fedora-23 ppc64le Fedora® 23 Server (ppc64le)fedora-23 x86_64 Fedora® 23 Serverfedora-24 aarch64 Fedora® 24 Server (aarch64) fedora-24 armv7l Fedora® 24 Server (armv7l)fedora-24 i686 Fedora® 24 S Server (i686)fedora-24 x86_64 Fedora® 24 Serverfedora-25 aarch64 Fedora® 25 Server (aarch64)fedora-25 armv7l Fedora® 25 Server (armv7l)fedora-25 i686 Fedora® 25 Server (i686)fedora-25 ppc64 Fedora® 25 Server (ppc64)fedora-25 ppc64le Fedora® 25 Server (ppc64le)fedora-25 x86_64 Fedora® 25 Serveropensuse-13.1 x86_64 openSUSE 13.1opensuse-13.2 x86_64 openSUSE 13.2opensuse-42.1 x86_64 openSUSE Leap x 42.1 vor>  

Verfügbare virtuelle Maschinen mit Virt-Builder auflisten

Wie Sie sehen können, sind mehrere Betriebssystemvorlagen verfügbar.

Bevor Sie ein Image einer virtuellen Maschine erstellen, sollten Sie sich die Installationshinweise des Gastbetriebssystems ansehen, um zu erfahren, was darin enthalten ist.

Um beispielsweise die Installationshinweise von Debian 10 anzuzeigen, führen Sie Folgendes aus:

$ virt-builder --notes debian-10

Beispielausgabe:

Debian 10 (Buster) Dies ist eine minimale Debian-Installation. Dieses Image ist so minimal, dass es nur einen SSH-Server enthält. Dieses Image enthält keine SSH-Hostschlüssel. Verwenden Sie zum Neugenerieren:--firstboot-command "dpkg-reconfigure openssh-server" dasselbe Verzeichnis.

Erstellen Sie ein Image einer virtuellen Maschine

Ich wollte die Betriebssystemvorlagen in ein bestimmtes Verzeichnis herunterladen, also habe ich dieses Verzeichnis erstellt:

$ mkdir virtbuilder$ cd virtbuilder/

Lassen Sie uns die virtuelle Debian 10-Maschine mit folgendem Befehl erstellen:

$ virt-builder debian-10

Beispielausgabe:

[ 4.8] Herunterladen:http://builder.libguestfs.org/debian-10.xz############################ ################################################## ######## 100.0%[ 83.2] Planen, wie dieses Image erstellt werden soll[ 83.2] Dekomprimieren[ 101.2] Öffnen der neuen Festplatte[ 119.8] Setzen eines zufälligen Seedvirt-Builders:Warnung:Random Seed konnte dafür nicht gesetzt werden Gasttyp[119.9] Passwörter setzenvirt-builder:Zufälliges Passwort von root auf 66xW1CaIqfM8km2v setzen [ 121.5] Fertigstellung der Ausgabedatei:debian-10.img Ausgabegröße:6.0G Ausgabeformat:raw Insgesamt nutzbarer Speicherplatz:5,8 GB Freier Speicherplatz:4,9 GB (84 %)

Erstellen Sie Images virtueller Maschinen mit virt-builder unter Linux

Wie Sie sehen können, hat dieser Befehl das minimale Debian 10-Image erstellt. Es wird keine Benutzerkonten haben. Es wird nur ein zufälliges Root-Passwort und das Nötigste an installierter Software haben.

Der Ausgabename des Bildes sollte mit dem Vorlagennamen übereinstimmen. Sie können es mit dem -o nach Belieben ändern Möglichkeit:

$ virt-builder debian-10 -o ostechnix.img

Standardmäßig ist das Bildformat img . Sie können es in ein anderes Format konvertieren, zum Beispiel Qcow2, wie unten:

$ virt-builder debian-10 --format qcow2

Standardmäßig erstellt Virt-Builder das Image genauso wie die Architektur des Host-Betriebssystems. Wenn Ihr Host-Betriebssystem beispielsweise 64-Bit ist, wird es dann eine 64-Bit-VM erstellen. Sie können dies mit --arch auf 32-Bit (falls verfügbar) ändern Option.

$ virt-builder debian-10 --arch i686

Möchten Sie ein Bild in benutzerdefinierter Größe erstellen? Es ist auch möglich. Der folgende Befehl erstellt eine VM mit einer Größe von 50 GB:

$ virt-builder debian-10 --size 50G

Die Größe des Gastbetriebssystems wird automatisch mit virt-resize angepasst Befehl, wie er in die Ausgabe kopiert wird.

Root-Passwort festlegen

Wie ich bereits erwähnt habe, wird dem Root-Benutzerkonto beim Erstellen des Images ein zufälliges Passwort zugewiesen. Wenn Sie ein bestimmtes Passwort für den Root-Benutzer festlegen möchten, verwenden Sie --root-password Option wie unten:

$ virt-builder centos-8.2 --format qcow2 --root-password password:centos 

Beispielausgabe:

[ 5.1] Herunterladen:http://builder.libguestfs.org/centos-8.2.xz ######################### ################################################## ######## 100,0 %[ 249.2] Planen, wie dieses Image erstellt werden soll[ 249.2] Dekomprimieren[ 271.3] Konvertieren von Raw in qcow2[ 281.1] Öffnen der neuen Festplatte[ 319.9] Setzen eines zufälligen Seeds[ 320.4] Setzen von Passwörtern[ 323.0] Abschluss Ausgabedatei:centos-8.2.qcow2 Ausgabegröße:6,0 GB Ausgabeformat:qcow2 Insgesamt nutzbarer Speicherplatz:5,3 GB Freier Speicherplatz:4,0 GB (74 %)

Der obige Befehl erstellt ein CentOS 8.2-Image und weist dem Root-Benutzer ein Passwort als "centos" zu .

Sie können das Passwort auch aus einer Textdatei festlegen:

$ virt-builder centos-8.2 --root-password file:~/ostechnix.txt 

Um das Root-Passwort zu deaktivieren, führen Sie Folgendes aus:

$ virt-builder centos-8.2 --root-password deaktiviert 

Root-Konto sperren:

$ virt-builder centos-8.2 --root-Passwort gesperrt 

Root-Konto sperren und Root-Passwort deaktivieren:

$ virt-builder centos-8.2 --root-password locked:disabled 

Um das Root-Passwort zuzuweisen, aber das Root-Konto zu sperren, verwenden Sie die folgenden Optionen:

--root-Passwort gesperrt:Datei:DATEINAME--root-Passwort gesperrt:Passwort:PASSWORT

Wir können das Root-Passwort verwenden, nachdem wir den Root-Benutzer mit "passwd -u" entsperrt haben Befehl.

Benutzer erstellen

Führen Sie zum Erstellen von Benutzerkonten beim Erstellen eines Images einer virtuellen Maschine Folgendes aus:

$ virt-builder centos-8.2 --firstboot-command 'useradd -m -p "" sk; ändern -d 0 sk'

Der obige Befehl erstellt einen Benutzer namens "sk" ohne Passwort und zwingt ihn, bei seiner ersten Anmeldung ein Passwort festzulegen.

Hostnamen festlegen

So legen Sie den Hostnamen für die VM fest:

$ virt-builder centos-8.2 --hostname virt.ostechnix.local

Beispielausgabe:

[ 4.7] Herunterladen:http://builder.libguestfs.org/centos-8.2.xz[ 7.2] Planen, wie dieses Image erstellt werden soll[ 7.2] Dekomprimieren[ 31.0] Öffnen der neuen Festplatte[ 41.9] Setzen eines zufälligen Seeds [ 42.0] Festlegen des Hostnamens:virt.ostechnix.local [ 42.1] Festlegen von Passwörternvirt-builder:Festlegen eines zufälligen Passworts von root auf MRn7fj1GSaeCAHQx[ 44.4] Abschluss Ausgabedatei:centos-8.2.img Ausgabegröße:6,0 GB Ausgabeformat:raw Insgesamt nutzbarer Speicherplatz:5,3 GB Freier Speicherplatz:4,0 GB (74 %)

Software auf VM-Image installieren

Um Pakete auf einer VM zu installieren, führen Sie Folgendes aus:

$ virt-builder debian-10 --install vim

Beispielausgabe:

[ 5.8] Herunterladen:http://builder.libguestfs.org/debian-10.xz[ 7.4] Planen, wie dieses Image erstellt werden soll[ 7.4] Dekomprimieren[ 25.3] Öffnen der neuen Festplatte[ 29.7] Setzen eines zufälligen Seedvirt -builder:Warnung:Random Seed konnte für diesen Gasttyp nicht gesetzt werden[ 29.8] Pakete installieren:vim [ 93.2] Passwörter setzenvirt-builder:Zufälliges Passwort von root auf 45Hj5yxh8vRqLDcu setzen[ 94.9] Abschluss Ausgabedatei:debian-10.img Ausgabegröße:6,0 GB Ausgabeformat:raw Insgesamt nutzbarer Speicherplatz:5,8 GB Freier Speicherplatz:4,8 GB (82 %)

Um mehrere Pakete zu installieren, erwähnen Sie sie in Anführungszeichen, mit Komma-getrennt wie unten:

$ virt-builder debian-10 --install "apache2,htop"

Aktualisieren Sie alle Pakete in der VM:

$ virt-builder centos-8.2 --update

Wenn Ihre VM SELinux verwendet, müssen Sie nach der Installation oder Aktualisierung von Paketen eine SELinux-Umbenennung durchführen:

$ virt-builder centos-8.2 --update --selinux-relabel

VM-Images anpassen

Virt-Builder hat viele Optionen, um ein Bild anzupassen. Beispielsweise können Sie einen bestimmten Befehl/ein bestimmtes Skript ausführen, wenn die VM zum ersten Mal mit dem Befehl startet:

$ virt-builder debian-10 --firstboot-command 'apt -y update'

Führen Sie zum Hinzufügen einer Zeile in der VM Folgendes aus:

$ virt-builder centos-8.2 --append-line '/etc/hosts:192.168.225.1 server.ostechnix.local'

Caching-Vorlagen

Standardmäßig werden alle Vorlagen zum ersten Mal aus dem Netzwerk heruntergeladen. Da die Größe der Vorlagen groß ist, werden die heruntergeladenen Vorlagen im Home-Verzeichnis des Benutzers zwischengespeichert.

Mit dem folgenden Befehl können Sie die Details des Cache-Verzeichnisses und die derzeit zwischengespeicherten Vorlagen drucken:

$ virt-builder --print-cache

Beispielausgabe:

Cache-Verzeichnis:/home/sk/.cache/virt-builder[...]centos-7.8 x86_64 nocentos-8.0 x86_64 nocentos-8.2 x86_64 zwischengespeichert cirros-0.3.1 x86_64 nocirros-0.3.5 x86_64 nodebian-10 x86_64 zwischengespeichert debian-6 x86_64 nodebian-7 sparc64 no[...]

Sie können dies auch überprüfen, indem Sie manuell im Cache-Ordner nachsehen:

$ ls $HOME/.cache/virt-builder centos-8.2.x86_64.1 debian-10.x86_64.1

Um alle verfügbaren Vorlagen in Ihren lokalen Cache-Ordner herunterzuladen, führen Sie Folgendes aus:

$ virt-builder --cache-all-templates

Wenn Sie die Vorlage nicht zwischenspeichern möchten, während Sie das Bild erstellen, verwenden Sie --no-cache Option.

Um alle zwischengespeicherten Vorlagen zu löschen, führen Sie Folgendes aus:

$ virt-builder --delete-cache [ 0.0] Löschen:/home/sk/.cache/virt-builder

Disk-Images in den Hypervisor importieren

Nun, Sie haben Ihr gewünschtes Betriebssystem heruntergeladen und nach Ihren Wünschen angepasst. Was jetzt? Importieren Sie einfach das Image und führen Sie eine VM mit dem neu erstellten Disk-Image mit einem Hypervisor aus. Wir haben bereits eine Schritt-für-Schritt-Anleitung zum Erstellen einer virtuellen KVM-Maschine mit dem Qcow2-Image geschrieben. Diese Anleitung wurde speziell für Qcow2 geschrieben, sie gilt jedoch auch für den Import von .img Disk-Images auch formatieren.

  • Erstellen Sie eine virtuelle KVM-Maschine mit dem Qcow2-Image unter Linux

Virt-Builder hat Hunderte von Befehlen und Optionen. Ich habe hier nur die grundlegenden Befehle behandelt. Weitere Einzelheiten finden Sie im Handbuch Alter.

$ man virt-builder

Vorgestelltes Foto von Igor Starkov von Pexels .


Linux
  1. Führen Sie eine virtuelle Linux-Maschine in Podman aus

  2. Virtualisierung auf dem PC, erklärt für Einsteiger mit praktischen Anwendungsfällen

  3. Virtuelle Maschine mit CentOS 5 32-Bit-Betriebssystem adressiert keinen physischen Speicher von mehr als 3 GB

  4. Wöchentliche virtuelle Maschinen mit Build-Skripts

  5. Ausführen von ArcGIS Desktop in einer virtuellen Maschine?

So retten Sie virtuelle Maschinen mit Virt-Rescue

So erstellen Sie eine virtuelle Maschine mit Vagrant und VirtualBox

Holen Sie sich vorkonfigurierte virtuelle Images von Linux-Distributionen bei OSBoxes [um Linux schnell und einfach in virtuellen Maschinen einzurichten]

Wie erstelle ich eine neue virtuelle Maschine auf Proxmox?

So stellen Sie die SuiteCRM Customer Relationship Management-Plattform schnell als virtuelle Maschine bereit

Wie führe ich eine neue Version von AIX in einer virtuellen Maschine mit einem Linux-Host aus?