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

8 Linux-virsh-Unterbefehle zum Verwalten von VMs auf der Befehlszeile

Die virtuelle Shell oder virsh ist ein flexibles Befehlszeilendienstprogramm zum Verwalten virtueller Maschinen (VMs), die von libvirt gesteuert werden, einem Toolkit und einer API zum Verwalten von Virtualisierungsplattformen. Es ist das Standardverwaltungstool für Linux-Kernel-basierte virtuelle Maschinen (KVMs) und unterstützt auch Xen, VMware und andere Plattformen.

Die virsh Mit dem Befehl können Sie VMs interaktiv oder im Batch verwalten. Es ist auch hilfreich für die Steuerung von VMs über die Linux-Shell und lässt sich in Skripts oder Automatisierungstools integrieren. Durch die Verwendung von virsh können Sie mithilfe von Secure Shell (SSH) schnell eine Verbindung zu einem Server herstellen und Vorgänge auf Ihren VMs ohne Zugriff auf eine grafische Benutzeroberfläche ausführen.

Wenn Sie virsh ausführen ohne Optionen versucht es, sich mit einem lokalen Hypervisor zu verbinden. Für Linux verweist die Standardverbindung auf ein lokales QEMU-System, um lokale KVM-Rechner zu verwalten. Sie können auch eine Verbindung zu einem entfernten Hypervisor herstellen, indem Sie die Option -c verwenden oder --connect und Angabe des Uniform Resource Identifier (URI) des Remote-Hypervisors mithilfe der libvirt-Syntax. Weitere Informationen finden Sie in der URI-Spezifikation von libvirt.

Standardmäßig virsh bietet Hunderte von Unterbefehlen und Optionen, mit denen Sie jeden Aspekt Ihrer Virtualisierungsplattform oder VMs verwalten können. In diesem Artikel teile ich die acht virsh  Unterbefehle, die ich am häufigsten verwende. Aufgrund der Art der täglichen Arbeit gelten die meisten dieser Unterbefehle direkt für VMs (oder Domänen in der libvirt-Terminologie), sondern virsh verfügt auch über Befehle zum Verwalten der Plattform selbst, z. B. zum Hinzufügen von Speicherpools, Netzwerken und mehr.

virsh-Liste

virsh list ist ein grundlegender Befehl, der alle laufenden Domänen (VMs) auflistet. Sie können auch alle konfigurierten VMs auflisten, indem Sie --all hinzufügen Möglichkeit. Dies ist nützlich, wenn Sie alle im Ziel-Hypervisor konfigurierten VMs sehen möchten, die Sie für nachfolgende Befehle verwenden können. So listen Sie beispielsweise alle verfügbaren virtuellen Maschinen auf einem lokalen Linux-KVM-Hypervisor auf:

# virsh list --all
 Id   Name          State
------------------------------
 3    rh8-vm01      running
 -    crc           shut off
 -    rh8-tower01   shut off

Sie können die ID oder den Domänennamen als Eingabe für nachfolgende Befehle verwenden.

virsh starten / neu starten / herunterfahren

Obwohl sie unterschiedlich sind, habe ich start gruppiert , reboot , und shutdown Unterbefehle, da sie denselben grundlegenden Vorgang zur Verwaltung des Energiezustands der VM ausführen.

Zum Herunterfahren der VM rh8-vm01 (aus der list obigen Befehl):

# virsh shutdown rh8-vm01 
Domain 'rh8-vm01' is being shutdown

# virsh list
 Id   Name   State
--------------------

Mit start können Sie es wieder starten Unterbefehl:

# virsh start rh8-vm01 
Domain 'rh8-vm01' started

# virsh list
 Id   Name       State
--------------------------
 4    rh8-vm01   running

Mithilfe dieser Unterbefehle können Sie eine VM schnell starten, neu starten oder herunterfahren, ohne eine umfangreiche grafische Anwendung starten zu müssen.

[ Möglicherweise möchten Sie auch erfahren, wie Sie sshd_config mit einem Bash-Skript bearbeiten. ]

virsh dumpxml

Die dumpxml Der Unterbefehl gibt die XML-Konfiguration für eine bestimmte Domäne aus. Sie können es verwenden, um die Konfiguration in eine Datei zu exportieren, um Änderungen an einer vorhandenen VM vorzunehmen, oder es als Vorlage verwenden, um eine andere VM mit einer ähnlichen Konfiguration zu erstellen. Standardmäßig wird die Konfiguration in STDOUT abgelegt , leiten Sie es also mithilfe der Shell-Umleitungsoperatoren > in eine Datei um in einer Datei speichern:

# virsh dumpxml rh8-vm01                                                   
<domain type='kvm' id='4'>                                                                    
  <name>rh8-vm01</name>                                                                       
  <uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
  <metadata>                                                                                  
    <libosinfo:libosinfo xmlns:libosinfo="http://libosinfo.org/xmlns/libvirt/domain/1.0">     
      <libosinfo:os id="http://redhat.com/rhel/8.4"/>                                         
    </libosinfo:libosinfo>                                                                    
  </metadata>                                                                                 
  <memory unit='KiB'>4194304</memory>                                                         
  <currentMemory unit='KiB'>4194304</currentMemory>    
  <vcpu placement='static'>2</vcpu>

... TRUNCATED OUTPUT ...
</domain>

Sie können die XML-Ausgabe in Skripten und Automatisierungstools verwenden, um das Erstellen von VMs zu automatisieren.

virsh domifaddr

Die domifaddr Der Unterbefehl listet alle IP-Adressen auf, die für alle virtuellen Schnittstellen in einer bestimmten VM konfiguriert sind. Es ist nützlich, wenn die VM dynamische IP-Adressen verwendet, da Sie damit die zugewiesene IP-Adresse sehen und eine Verbindung zur VM herstellen können:

# virsh domifaddr rh8-vm01 
 Name       MAC address          Protocol     Address
-------------------------------------------------------------------------------
 vnet6      52:54:00:c8:17:6e    ipv4         192.168.122.19/24
 vnet7      52:54:00:04:4d:ac    ipv4         192.168.64.210/24

Standardmäßig listet es die von einem DHCP-Server geleaste IP-Adresse auf. Wenn der Hypervisor diese Informationen nicht bereitstellt, können Sie auch die Option --source agent verwenden um das Gastbetriebssystem (OS) direkt über den Virtualisierungsagenten abzufragen. Dazu ist ein im Gastbetriebssystem installierter Virtualisierungsagent erforderlich.

virsh bearbeiten

Die edit Unterbefehl öffnet die aktuelle XML-Konfiguration in Ihrem Standard $EDITOR , sodass Sie Live-Änderungen in einer VM vornehmen können:

# virsh edit rh8-vm01
<domain type='kvm'>
  <name>rh8-vm01</name>
  <uuid>53b92c48-fce3-4464-95bf-6f442e988c94</uuid>
  <metadata>

... TRUNCATED OUTPUT ...
</domain>

Nachdem Sie Ihre Änderungen vorgenommen haben, speichern Sie die Datei, um sie anzuwenden. Einige Änderungen werden möglicherweise erst nach einem Neustart wirksam.

virsh net-edit

Die net-edit Mit dem Unterbefehl können Sie Live-Änderungen an einer virtuellen Netzwerkkonfiguration vornehmen. Es ist hilfreich, um Optionen für ein virtuelles Netzwerk zu ändern, z. B. eine bestimmte MAC-Adresse einer IP-Adresse zuzuordnen, indem standardmäßig libvirt verwendet wird DHCP-Konfiguration. Es ist ein fortgeschrittenerer Befehl, den ich regelmäßig verwende. Wie das edit Unterbefehl öffnet er die Konfigurationsdatei in Ihrem Standard $EDITOR um Änderungen vorzunehmen. Speichern Sie die Datei, um die Änderungen zu übernehmen:

# virsh net-edit --network hostonly
<network>
  <name>hostonly</name>
  <uuid>eddd03ff-5825-42ef-bc99-968bddf773c2</uuid>
  <bridge name='virbr1' stp='on' delay='0'/>
  <mac address='52:54:00:67:75:b1'/>
  <domain name='hostonly'/>
  <ip address='192.168.64.1' netmask='255.255.255.0'>
    <dhcp>
      <range start='192.168.64.128' end='192.168.64.254'/>
    </dhcp>
  </ip>
</network>

Sie können auch andere netzwerkbezogene Unterbefehle verwenden, die mit net- beginnen um verschiedene Aspekte der virtuellen Hypervisor-Netzwerke zu verwalten.

[ Jetzt herunterladen:Eine Anleitung für Systemadministratoren zum Bash-Scripting. ]

Was kommt als nächstes?

virsh ist ein leistungsstarkes und flexibles Dienstprogramm, mit dem Sie jeden Aspekt der Linux-Virtualisierung und anderer Plattformen verwalten können. Weitere Informationen dazu finden Sie in den Manpages oder in der Online-Dokumentation.


Linux
  1. Eine Anleitung zum Linux-Terminal für Anfänger

  2. Generieren Sie Passwörter auf der Linux-Befehlszeile

  3. Verwenden der Kraft in der Linux-Befehlszeile

  4. Haben Sie eine Kuh an der Linux-Befehlszeile

  5. Boxen Sie sich auf der Linux-Befehlszeile ein

Tipps zur Verwendung des Top-Befehls unter Linux

3 Passwort-Manager für die Linux-Kommandozeile

Meistern Sie die Linux-Befehlszeile

So suchen Sie nach Dateien über die Linux-Befehlszeile

Ripgrep – Das schnellste Kommandozeilen-Suchtool für Linux

Vier Webbrowser für die Linux-Befehlszeile