GNU/Linux >> Linux Esercitazione >  >> Linux

8 sottocomandi Linux virsh per la gestione delle VM sulla riga di comando

La shell virtuale, o virsh, è un'utilità della riga di comando flessibile per gestire le macchine virtuali (VM) controllate da libvirt, che è un toolkit e un'API per gestire le piattaforme di virtualizzazione. È lo strumento di gestione predefinito per le macchine virtuali (KVM) basate su kernel Linux e supporta anche Xen, VMware e altre piattaforme.

Il virsco Il comando consente di gestire le VM in modo interattivo o in batch. È anche utile per controllare le VM dalla shell Linux e si integra con script o strumenti di automazione. Usando virsh , puoi connetterti rapidamente a un server utilizzando Secure Shell (SSH) ed eseguire operazioni sulle tue VM senza accedere a un'interfaccia grafica.

Quando esegui virsh senza alcuna opzione, tenta di connettersi a un hypervisor locale. Per Linux, la connessione predefinita punta a un sistema QEMU locale per gestire le macchine KVM locali. Puoi anche connetterti a un hypervisor remoto usando l'opzione -c o --connect e specificando l'Uniform Resource Identifier (URI) dell'hypervisor remoto utilizzando la sintassi di libvirt. Per ulteriori informazioni, consultare la specifica URI di libvirt.

Per impostazione predefinita, virsh fornisce centinaia di sottocomandi e opzioni che ti consentono di gestire ogni aspetto della tua piattaforma di virtualizzazione o VM. In questo articolo condividerò gli otto virsh  sottocomandi che uso più spesso. A causa della natura del lavoro quotidiano, la maggior parte di questi sottocomandi si applica direttamente alle macchine virtuali (o domini nella terminologia libvirt) ma virsh ha anche comandi per gestire la piattaforma stessa, come aggiungere storage pool, reti e altro.

lista virsh

lista virtuale è un comando di base che elenca tutti i domini in esecuzione (VM). Puoi anche elencare tutte le VM configurate aggiungendo il --all opzione. Ciò è utile se si desidera visualizzare tutte le macchine virtuali configurate nell'hypervisor di destinazione che è possibile utilizzare sui comandi successivi. Ad esempio, per elencare tutte le macchine virtuali disponibili su un hypervisor KVM Linux locale:

# virsh list --all Id   Name          Stato-------------------------------------------- 3    rh8-vm01      in esecuzione -    crc          spegnimento -    rh8-tower01  spegnimento 

Puoi utilizzare l'ID o il nome di dominio come input per i comandi successivi.

avvio/riavvio/arresto virtuale

Sebbene siano diversi, ho raggruppato il inizio , riavvia e spegnimento sottocomandi perché eseguono la stessa operazione di base della gestione dello stato di alimentazione della VM.

Per spegnere la VM rh8-vm01 (dalla elenco comando sopra):

# arresto virsh rh8-vm01 Il dominio 'rh8-vm01' è in fase di arresto# elenco virsh Id   Nome   Stato-------------------- 

Puoi riavviarlo usando il start sottocomando:

# virsh start rh8-vm01 Dominio 'rh8-vm01' iniziato# elenco virsh Id   Nome       Stato-------------------------------------- - 4    rh8-vm01   in esecuzione 

Utilizzando questi sottocomandi, puoi avviare, riavviare o arrestare rapidamente una VM senza dover avviare un'applicazione grafica pesante.

[ Potresti anche essere interessato a imparare come modificare sshd_config usando uno script Bash. ]

virsh dumpxml

Il dumpxml il sottocomando esegue il dump della configurazione XML per un determinato dominio. Puoi usarlo per esportare la configurazione in un file per apportare modifiche a una macchina virtuale esistente o usarlo come modello per creare un'altra macchina virtuale con una configurazione simile. Per impostazione predefinita, scarica la configurazione su STDOUT , quindi reindirizzalo a un file usando gli operatori di reindirizzamento della shell > per salvare in un file:

;> 4194304 4194304 2 ... USCITA troncata ...

Puoi utilizzare l'output XML negli script e negli strumenti di automazione per automatizzare la creazione di macchine virtuali.

dominio virtuale

Il domifaddr il sottocomando elenca tutti gli indirizzi IP configurati per tutte le interfacce virtuali in una determinata macchina virtuale. È utile se la VM utilizza indirizzi IP dinamici, in quanto consente di vedere l'indirizzo IP assegnato e di connettersi alla VM:

# virsh domifaddr rh8-vm01  Nome       Indirizzo MAC          Protocollo     Indirizzo-------------------------------- ---------------------------------------------- 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 

Per impostazione predefinita, elenca l'indirizzo IP affittato da un server DHCP. Se l'hypervisor non fornisce queste informazioni, puoi anche utilizzare l'opzione --source agent per interrogare il sistema operativo guest (OS) direttamente tramite l'agente di virtualizzazione. Ciò richiede un agente di virtualizzazione installato nel sistema operativo guest.

Modifica virtuale

La modifica il sottocomando apre la configurazione XML corrente nel tuo $EDITOR predefinito , che ti consente di apportare modifiche in tempo reale in una VM:

# virsh edit rh8-vm01  rh8-vm01  53b92c48-fce3-4464-95bf-6f442e988c94  . .. USCITA troncata ... 

Dopo aver apportato le modifiche, salva il file per applicarle. Alcune modifiche potrebbero avere effetto solo dopo un riavvio.

Modifica rete virtuale

La modifica in rete il sottocomando consente di apportare modifiche in tempo reale a una configurazione di rete virtuale. È utile per modificare le opzioni su una rete virtuale, come associare un determinato indirizzo MAC a un indirizzo IP utilizzando libvirt standard Configurazione DHCP. È un comando più avanzato che uso regolarmente. Come la modifica sottocomando, apre il file di configurazione nel tuo $EDITOR predefinito per apportare modifiche. Salva il file per applicare le modifiche:

# virsh net-edit --network hostonly  hostonly  eddd03ff-5825-42ef-bc99-968bddf773c2            
          
  
 

Puoi anche utilizzare altri sottocomandi relativi alla rete che iniziano con net- per gestire diversi aspetti delle reti virtuali dell'hypervisor.

[ Scarica ora:una guida per l'amministratore di sistema allo scripting Bash. ]

Cosa c'è dopo?

virsh è un'utilità potente e flessibile che ti consente di gestire ogni aspetto della virtualizzazione Linux e di altre piattaforme. Per maggiori informazioni a riguardo, consulta le pagine man o controlla la sua documentazione online.


Linux
  1. Una guida al terminale Linux per principianti

  2. Genera password sulla riga di comando di Linux

  3. Usando la forza sulla riga di comando di Linux

  4. Avere una mucca sulla riga di comando di Linux

  5. Entra nella riga di comando di Linux

Suggerimenti per l'utilizzo del comando top in Linux

3 gestori di password per la riga di comando di Linux

Padroneggia la riga di comando di Linux

Come cercare file dalla riga di comando di Linux

Ripgrep – Lo strumento di ricerca da riga di comando più veloce per Linux

Quattro browser Web per la riga di comando di Linux