Kernel-based Virtual Machine (KVM) è un modulo di virtualizzazione per il kernel Linux che lo trasforma in un hypervisor. Come posso installare KVM con rete in bridge, configurare il sistema operativo guest come tecnologia di virtualizzazione back-end per il server Debain Linux 9.x/10.x non grafico?
È possibile utilizzare KVM per eseguire più sistemi operativi come Windows, *BSD, distribuzione Linux utilizzando macchine virtuali. Ogni macchina virtuale ha il suo disco privato, scheda grafica, scheda di rete e altro.
Passaggi per installare il server KVM sul server Debian Linux 9.x/10.x
Il server host si trova nel data center remoto ed è un server headless.
Tutti i comandi in questo tutorial sono stati digitati sulla sessione basata su ssh.
È necessario un client vnc per installare il sistema operativo guest.
In questo tutorial imparerai come installare il software KVM sul server Debian Linux 9.x e utilizzare KVM per configurare la prima VM guest.
Seguire i passaggi di installazione di KVM su server headless Debian Linux 9.x/10.x
Consenti all’utente normale di gestire la macchina virtuale
Se vuoi un utente normale/regolare può gestire le macchine virtuali. Aggiungi l’utente vivek a libvirt e libvirt-qemu usando il comando usermod: $ sudo adduser vivek libvirt $ sudo adduser vivek libvirt-qemu Ricarica l’appartenenza al gruppo con l’aiuto del comando newgrp: $ newgrp libvirt $ newgrp libvirt-qemu Verifica la tua appartenenza al gruppo con il comando id: $ id Si prega di notare che è necessario utilizzare il seguente comando per connettersi al server KVM: $ virsh --connect qemu:///system $ virsh --connect qemu:///system command $ virsh --connect qemu:///system list --all
Passaggio 2: verifica l’installazione di kvm su Debain
Esegui il seguente comando egrep per verificare che Intel VMX o AMD SVM sia supportato sulla tua CPU: $ egrep --color 'vmx|svm' /proc/cpuinfo Uscite di esempio:
Passaggio 3: configurare il collegamento in rete su Debian
Creerò l’interfaccia bridge br0 come connessione di rete nella configurazione dei guest VM per l’interfaccia eth0: $ sudo vi /etc/network/interfaces.d/br0 Aggiungi quanto segue:
## make sure all config related to eth0 deleted ##
auto br0
iface br0 inet static
address 192.168.2.23 ## set up/netmask/broadcast/gateway as per your setup
broadcast 192.168.2.255
netmask 255.255.255.0
gateway 192.168.2.254
bridge_ports eth0 # replace eth0 with your actual interface name
bridge_stp off # disable Spanning Tree Protocol
bridge_waitport 0 # no delay before a port becomes available
bridge_fd 0 # no forwarding delay
Riavvia il servizio di rete su Linux: $ sudo systemctl restart network-manager Per vedere le impostazioni di rete correnti per KVM, eseguire: $ sudo virsh net-list --all Uscite di esempio:
Name State Autostart Persistent
----------------------------------------------------------
default inactive no yes
Solo guide per i sostenitori di Patreon ????
Nessuna pubblicità e tracciamento
Guide approfondite per sviluppatori e amministratori di sistema su Opensourceflare✨
Unisciti al mio Patreon per supportare i creatori di contenuti indipendenti e iniziare a leggere le ultime guide:
Aderire Patreon ?
È necessario configurare un dominio guest KVM su una rete bridge. Quindi crea un file chiamato bridge.xml come segue un editor di testo come il comando vi: $ sudo vi /root/bridged.xml Aggiungi la seguente configurazione:
Salva e chiudi il file in vi/vim. $ sudo virsh net-define --file /root/bridged.xml $ sudo virsh net-autostart br0 $ sudo virsh net-start br0
Passaggio 4: crea la tua prima macchina virtuale utilizzando un programma di installazione di immagini ISO
Creerò una macchina virtuale CentOS 7.x. Innanzitutto, prendi l’ultima immagine ISO di CentOS 7.x: $ cd /var/lib/libvirt/boot/ $ sudo wget https://mirrors.kernel.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1708.iso
Crea una macchina virtuale CentOS 7
In questo esempio, sto creando una macchina virtuale CentOS 7.x con 2 GB di RAM, 2 core CPU, 1 scheda di rete e 40 GB di spazio su disco, inserisci: $ sudo virt-install --virt-type=kvm --name centos7 --ram 2048 --vcpus=2 --os-variant=rhel7 --virt-type=kvm --hvm --cdrom=/var/lib/libvirt/boot/CentOS-7-x86_64-DVD-1708.iso --network=bridge=br0,model=virtio --graphics vnc --disk path=/var/lib/libvirt/images/centos7.qcow2,size=40,bus=virtio,format=qcow2 Per configurare il login vnc da un altro terminale su ssh e digitare: $ sudo virsh dumpxml centos7 | grep vnc <graphics type="vnc" port="5901" autoport="yes" listen='127.0.0.1'> Puoi anche usare il seguente comando: $ sudo virsh vncdisplay centos7 Annotare il valore della porta (es. 5901). È necessario utilizzare un client SSH per configurare il tunnel e un client VNC per accedere al server vnc remoto. Digita il seguente comando di inoltro alla porta SSH dal tuo client/desktop: $ ssh vivek@server1.cyberciti.biz -L 5901:127.0.0.1:5901 Una volta stabilito il tunnel ssh, puoi puntare il tuo client VNC al tuo indirizzo 127.0.0.1 (localhost) e alla porta 5901 come segue:
Fig.01: Client VNC per completare l’installazione di CentOS 7.x
Dovresti vedere la schermata di installazione guest di CentOS Linux 7 come segue:
Fig.02: Installazione di CentOS 7.x su VM basata su KVM
Ora segui le istruzioni sullo schermo e installa CentOS 7. Una volta installato, vai avanti e fai clic sul pulsante di riavvio. Il server remoto ha chiuso la connessione al nostro client VNC. È possibile riconnettersi tramite client KVM per configurare il resto del server, inclusa la sessione basata su SSH o il firewall.
Passaggio 5: utilizzare virt-builder per creare VM
Il metodo sopra (virt-install) funziona bene, ma se hai bisogno di creare rapidamente nuove macchine virtuali, prova virt-builder.
Come elencare le macchine virtuali disponibili
$ virt-builder --list | more È possibile utilizzare il comando grep per filtrare solo le VM basate su arch x86_64: $ virt-builder --list | grep x86_64 Uscite di esempio:
Per vedere note aggiuntive per qualsiasi sistema operativo: $ virt-builder --notes ubuntu-16.04 $ virt-builder --notes debian-9 Uscite di esempio:
Debian 9(stretch)
This is a minimal Debian install.
This image does not contain SSH host keys. To regenerate them use:
--firstboot-command "dpkg-reconfigure openssh-server"
This template was generated by a script in the libguestfs source tree:
builder/templates/make-template.ml
Associated files used to prepare this template can be found in the
same directory.
Crea macchina virtuale Debian 9.x
Crea Debian 9 VM con 10 GB di spazio su disco, 2 GB di ram, 2 vCPU e password casuale per l’account root, esegui: $ sudo virt-builder debian-9 --size=10G --format qcow2 -o /var/lib/libvirt/images/debian9-vm1.qcow2 --hostname debain9-vm1 --network --timezone Asia/Kolkata Infine importa l’immagine con il comando virt-install: $ sudo virt-install --import --name debian9-vm1 --ram 2048 --vcpu 2 --disk path=/var/lib/libvirt/images/debian9-vm1.qcow2,format=qcow2 --os-variant debian9 --network=bridge=br0,model=virtio --noautoconsole Uscite di esempio:
Puoi accedere alla tua VM usando la password x0E4iZ8sHjA6ekb6 per l’account root: $ sudo virsh list --all $ virsh console debian9-vm1 Devi disabilitare l’account root per la sessione ssh e creare chiavi ssh per la tua VM. Accedi come sopra: # dpkg-reconfigure openssh-server # useradd -r -m -d /home/vivek -s /bin/bash vivek # passwd vivek # systemctl enable ssh ### [ Disable root user login when using ssh ] ### # echo 'PermitRootLogin no' >> /etc/ssh/sshd_config # systemctl restart ssh # ip a s Verifica di poter accedere utilizzando un indirizzo IP per l’utente vivek e usa ‘su -‘ per diventare un utente root: $ ssh vivek@192.168.2.132 $ su -
Comandi utili
Vediamo alcuni comandi utili.
Trova l’elenco delle varianti del sistema operativo accettate
$ osinfo-query os | less $ osinfo-query os | grep debian $ osinfo-query os | grep freebsd
Elenca un vms/domini in esecuzione
$ sudo virsh list
Chiudi un vm/dominio chiamato debian9-vm1
$ sudo virsh shutdown debian9-vm1
Avvia un vm/dominio chiamato debian9-vm1
$ sudo virsh start debian9-vm1
Sospendi un vm/dominio chiamato debian9-vm1
$ sudo virsh suspend debian9-vm1
Riavvia (riavvio morbido e sicuro) un vm/dominio chiamato debian9-vm1
$ sudo virsh reboot debian9-vm1
Ripristina (hard reset/non sicuro) un vm/dominio chiamato debian9-vm1
$ sudo virsh reset debian9-vm1
Elimina/rimuovi un vm/dominio chiamato debian9-vm1
$ sudo virsh undefine debian9-vm1 $ sudo virsh destroy debian9-vm1 Per vedere un elenco completo del tipo di comando virsh $ virsh help | less $ virsh help | grep reboot
ANNUNCIO
Ti e piaciuto questo articolo?
Supporta il mio lavoro, facendo una donazione!
Questo sito utilizza i cookie per migliorare servizi ed esperienza dei lettori. Se decidi di continuare la navigazione senza blocchi premi su Accetto, oppure continua tranquillamente la navigazione, nessun dato sulla tua navigazione verrà raccolto.
Quando visiti un sito Web, esso può archiviare o recuperare informazioni sul tuo browser, principalmente sotto forma di cookies. Controlla qui i tuoi servizi di cookie personali.