Nota:
- Este tutorial está disponible en un entorno de laboratorio gratuito proporcionado por Oracle.
- Utiliza valores de ejemplo para las credenciales, el arrendamiento y los compartimentos de Oracle Cloud Infrastructure. Al finalizar la práctica, sustituya estos valores por valores específicos de su entorno en la nube.
Creación de máquinas virtuales con KVM en Oracle Linux
Introducción
La máquina virtual basada en núcleo (KVM) es un hipervisor de código abierto type-1 (bare-metal). Esta funcionalidad permite que un sistema host, como Oracle Linux 8, aloje varias máquinas virtuales (VM) o invitados cuando se ejecuta en hardware admitido.
En este tutorial se desplegará Oracle Linux Kernel Virtualization Manager (KVM) para crear una máquina virtual.
Objetivos
- Desplegar KVM
- Desplegar Cockpit para máquinas virtuales
- Crear Máquina Virtual a partir de una ISO
- Crear máquina virtual con imágenes de Oracle Cloud
Requisitos
Cualquier sistema Oracle Linux 8 o posterior con las siguientes configuraciones:
- un usuario no raíz con permisos sudo
Validar entorno admite virtualización
Nota: Al utilizar el entorno de prácticas gratuitas, consulte Aspectos básicos de las prácticas de Oracle Linux para obtener información sobre la conexión y otras instrucciones de uso.
-
Si aún no está conectado, abra un terminal y conéctese mediante ssh a su instancia.
ssh oracle@<ip_address_of_instance>
-
Ejecute el siguiente comando para determinar el tipo de CPU.
grep -e 'vendor_id' /proc/cpuinfo
Resultado de ejemplo:
[oracle@ol-node01 ~]$ grep -e 'vendor_id' /proc/cpuinfo vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel vendor_id : GenuineIntel
Este sistema está basado en Intel, que se muestra en la salida de GenuineIntel.
-
Para sistemas Intel, escriba el siguiente comando.
grep -e 'vmx' /proc/cpuinfo
La existencia del indicador vmx en la salida del comando indica que este sistema admite la virtualización.
-
Compruebe los módulos KVM cargados.
lsmod | grep kvm
Resultado de ejemplo:
[oracle@ol-node01 ~]$ lsmod |grep kvm kvm_intel 262144 0 kvm 696320 1 kvm_intel irqbypass 16384 1 kvm
La salida muestra el módulo de núcleo de KVM y el módulo de procesador kvm_intel en función del hardware de este sistema. Estos módulos se deben cargar por defecto en sistemas Linux modernos.
Instalar e iniciar KVM
-
Instale los paquetes de software asociados con el módulo de virtualización de Oracle Linux.
sudo dnf module install virt -y
Este comando instala la recopilación de paquetes de virtualización, que incluyen libvirt, qemu-kvm y otras dependencias.
-
Instale
virt-install
yvirt-viewer
.sudo dnf install virt-install virt-viewer -y
De esta forma, se completa la instalación del conjunto de paquetes necesario.
-
Valide que la máquina host esté lista y configurada para ejecutar máquinas virtuales libvirt.
virt-host-validate
Resultado de ejemplo:
[oracle@ol-node01 ~]$ virt-host-validate QEMU: Checking for hardware virtualization : PASS QEMU: Checking if device /dev/kvm exists : PASS QEMU: Checking if device /dev/kvm is accessible : PASS QEMU: Checking if device /dev/vhost-net exists : PASS QEMU: Checking if device /dev/net/tun exists : PASS QEMU: Checking for cgroup 'cpu' controller support : PASS QEMU: Checking for cgroup 'cpuacct' controller support : PASS QEMU: Checking for cgroup 'cpuset' controller support : PASS QEMU: Checking for cgroup 'memory' controller support : PASS QEMU: Checking for cgroup 'devices' controller support : PASS QEMU: Checking for cgroup 'blkio' controller support : PASS QEMU: Checking for device assignment IOMMU support : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform) QEMU: Checking for secure guest support : WARN (Unknown if this platform has Secure Guest support)
Si todos comprueban PASS, el sistema está preparado para las máquinas virtuales creadas. Si alguna comprobación falla, siga la instrucción para corregir el problema. Si alguna comprobación devuelve el valor de WARN, considere seguir las instrucciones para mejorar las capacidades de virtualización.
-
Inicie el daemon
libvirtd
y actívelo para que se inicie automáticamente en cada inicio. A continuación, compruebe su estado para confirmar que está activo y en ejecución.sudo systemctl enable --now libvirtd.service sudo systemctl status libvirtd.service
Resultado de ejemplo:
[oracle@ol-node01 ~]$ sudo systemctl enable --now libvirtd.service [oracle@ol-node01 ~]$ sudo systemctl status libvirtd.service * libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor pr> Active: active (running) since Mon 2022-06-13 21:28:19 GMT; 8s ago Docs: man:libvirtd(8) https://libvirt.org ...
La salida indica que el servicio está activado y en ejecución.
Configuración de la consola web de Cockpit para gestionar KVM en Oracle Linux
-
Instale la extensión cockpit-machines para gestionar máquinas virtuales basadas en Libvirt.
sudo dnf install cockpit cockpit-machines –y
-
Inicie el socket de la cabina y actívelo para que se inicie automáticamente al iniciar el sistema.
sudo systemctl enable --now cockpit.socket sudo systemctl status cockpit.socket
Resultado de ejemplo:
[oracle@ol-node01 ~]$ sudo systemctl enable --now cockpit.socket Created symlink /etc/systemd/system/sockets.target.wants/cockpit.socket -> /usr/lib/systemd/system/cockpit.socket. [oracle@ol-node01 ~]$ sudo systemctl status cockpit.socket * cockpit.socket - Cockpit Web Service Socket Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor pres> Active: active (listening) since Mon 2022-06-13 21:39:24 GMT; 10s ago Docs: man:cockpit-ws(8) Listen: [::]:9090 (Stream) ...
La salida indica que el servicio está activado y recibe.
-
Para acceder a este sitio de forma remota, active el puerto de firewall para el servicio de cabina y vuelva a cargar la configuración de firewall para aplicar los nuevos cambios.
sudo firewall-cmd --add-service=cockpit --permanent sudo firewall-cmd --reload
Nota: Ejecute este siguiente comando desde un 2o terminal en el escritorio lunabox.
-
Abra un 2o terminal en el escritorio lunabox e introduzca el siguiente comando para crear un puerto local hacia adelante para Cockpit mediante ssh.
ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
-
Abra un explorador web en el escritorio y vaya a https://localhost:9090.
La consola web de Cockpit utiliza un certificado autofirmado para activar HTTPS.
Haga clic en Avanzado y acepte la conexión cuando obtenga una advertencia del explorador.
-
Conéctese como usuario
oracle
con la contraseñaoracle
.Aparece el panel de control de Cockpit.
-
Haga clic en el botón "Limited Access" para obtener privilegios administrativos.
-
Cierre la ventana de acceso administrativo.
Crear Máquina Virtual a partir de una ISO
-
Haga clic en la opción "Máquinas virtuales" en el panel de navegación de la izquierda.
-
Haga clic en el botón "Create VM".
-
Proporcione la siguiente información:
Name: OL-demo Connection: System Installation type: URL (ISO image or distro install tree) Installation source: https://yum.oracle.com/ISOS/OracleLinux/OL8/u6/x86_64/OracleLinux-R8-U6-x86_64-dvd.iso Operating system: Oracle Linux 8.6 Storage: Create new volume Size: 20 GiB Memory: 16 GiB Immediately start VM: check
-
Haga clic en "Crear" para comenzar.
-
En la lista de máquinas virtuales, haga clic en el enlace OL-demo.
-
Desplácese hacia abajo para ver la consola de VNC.
Si es lo suficientemente rápido, verá un menú con las opciones para instalar Oracle Linux o probar este medio e instalar. La opción Test se seleccionará por defecto después de unos segundos. El instalador validará el contenido del medio y, a continuación, iniciará el instalador.
-
Una vez que se inicia el instalador, aparece la pantalla de bienvenida a Oracle Linux. Para comenzar la instalación, seleccione el idioma del proceso de instalación.
Esta práctica no continúa con el proceso de instalación.
Nota: Puede ver un vídeo gratuito que muestre el proceso de instalación de Oracle Linux en este enlace de vídeo: Instalación de Oracle Linux 8
-
Cierre el explorador web haciendo clic en la "X" en la esquina superior derecha de la ventana.
Crear máquina virtual con imágenes de Oracle Cloud
Nota: Asegúrese de introducir los siguientes comandos desde la ventana de terminal de la instancia en la nube (ol-node01).
-
Cambie a la ubicación de almacenamiento de imágenes de KVM.
cd /var/lib/libvirt/images
-
Descargue la plantilla de máquina virtual de Oracle Linux.
sudo curl -O https://yum.oracle.com/templates/OracleLinux/OL8/u6/x86_64/OL8U6_x86_64-kvm-b126.qcow
-
Crear archivo de metadatos.
cat << 'EOF' | sudo tee ~/meta-data > /dev/null instance-id: iid-local01 local-hostname: vm-01 EOF
-
Cree un archivo de datos de usuario.
cat << 'EOF' | sudo tee ~/user-data > /dev/null #cloud-config system_info: default_user: name: opc ssh_authorized_keys: - <paste_public_key_here> EOF
-
Generar un par de claves SSH
ssh-keygen -t rsa -b 4096
Pulse
Enter
para aceptar cada uno de los valores por defecto. El par de claves se escribe en el directorio.ssh
en el directorio raíz de los usuarios. -
Copie la clave pública en el archivo de datos de usuario.
SSHKEY=$(cat ~/.ssh/id_rsa.pub) sed -i "s|<paste_public_key_here>|${SSHKEY}|g" ~/user-data
-
Genere la imagen ISO.
sudo genisoimage -output /var/lib/libvirt/images/vm-01.iso -volid cidata -joliet -rock ~/user-data ~/meta-data
-
Cree la instancia.
sudo cp /var/lib/libvirt/images/OL8U6_x86_64-kvm-b126.qcow /var/lib/libvirt/images/vm-01.qcow sudo virt-install --name vm-01 \ --memory 2048 \ --vcpus 2 \ --disk /var/lib/libvirt/images/vm-01.qcow,device=disk,bus=virtio \ --disk /var/lib/libvirt/images/vm-01.iso,device=cdrom \ --os-type linux --os-variant ol8.6 \ --virt-type kvm --graphics none \ --network network=default,model=virtio \ --noautoconsole \ --import
-
Muestre las máquinas virtuales.
sudo virsh list
-
Recupere la dirección IP de la máquina virtual
vm-01
.sudo virsh net-dhcp-leases --network default
Nota: En función de la rapidez con la que se inicie la máquina virtual, es posible que deba volver a ejecutar el comando para mostrar la dirección IP.
-
También puede filtrar según la dirección MAC.
sudo virsh domiflist vm-01
-
Copie la dirección MAC de la salida anterior y proporcione el siguiente comando.
sudo virsh net-dhcp-leases --network default --mac <MAC_address>
-
Verifique que la máquina virtual funciona conectándose con
ssh
.ssh opc@<vm-01-ip_address>
Resultado de ejemplo:
[oracle@ol-node01 images]$ ssh opc@192.168.122.46 The authenticity of host '192.168.122.46 (192.168.122.46)' can't be established. ECDSA key fingerprint is SHA256:xcuVfQdoFDCC72i7plD0OfqDTSBG6QWhOm5ti4HIKEs. Are you sure you want to continue connecting (yes/no/[fingerprint])? yes Warning: Permanently added '192.168.122.46' (ECDSA) to the list of known hosts. [opc@vm-01 ~]$ uname -a Linux vm-01 5.4.17-2136.307.3.1.el8uek.x86_64 #2 SMP Mon May 9 17:29:47 PDT 2022 x86_64 x86_64 x86_64 GNU/Linux
[Opcional] Ver VM desde el panel de control de Cockpit
Nota: Ejecute este siguiente comando desde un terminal en el escritorio lunabox.
-
Introduzca el siguiente comando desde la ventana de terminal de lunabox Desktop para crear un puerto local hacia adelante para Cockpit mediante ssh.
ssh -L 9090:localhost:9090 oracle@<instance_ip_address>
-
Abra un explorador web en el escritorio y vaya a https://localhost:9090.
-
Conéctese como usuario
oracle
con la contraseñaoracle
.Aparece el panel de control de Cockpit.
-
Si es necesario, haga clic en el botón "Limited Access" para obtener privilegios administrativos.
-
Haga clic en la opción "Máquinas virtuales" en el panel de navegación de la izquierda.
-
En la lista de máquinas virtuales, haga clic en el enlace vm-01.
-
Explore como desee la sección Overview (Descripción general), la sección Disks (Discos), las interfaces de red, etc.
Nota: La consola no está activa en Cockpit porque la máquina virtual
vm-01
se ha creado con la opción--graphical none
convirt-install
.
Esto concluye este laboratorio.
Para obtener más información:
Más recursos de aprendizaje
Explore otros laboratorios en docs.oracle.com/learn o acceda a más contenido de aprendizaje gratuito en el canal YouTube de Oracle Learning. Además, visite education.oracle.com/learning-explorer para convertirse en Oracle Learning Explorer.
Para obtener documentación sobre el producto, visite Oracle Help Center.
Create VMs with KVM on Oracle Linux
F58828-01
June 2022
Copyright © 2022, Oracle and/or its affiliates.