Práctica: QEMU/KVM + libvirt
Objetivos
- Crear un escenario virtualizado con QEMU/KVM + libvirt en un servidor sin entorno gráfico.
- Practicar las distintas operaciones sobre los recursos virtualizados que hemos aprendido en esta unidad.
- Vamos a crear una infraestructura con un servidor web que sirva el contenido estático desde un directorio compartido por un servidor NAS.
Toda la práctica se debe realizar desde la línea de comandos con virsh y las herramientas asociadas (virt-install, qemu-img…). No uses virt-manager: en las entregas debe poder comprobarse que las operaciones se han hecho con virsh.
Infraestructura que vamos a crear

- Redes que vamos a usar:
- La red de tipo NAT
defaultque ya trae libvirt por defecto. - Crea con
virshuna red muy aislada llamadared_intra, que se inicie de forma automática.
- La red de tipo NAT
- Máquinas virtuales:
router:- Máquina virtual con Debian 13.
- Realiza la instalación por red, siguiendo este manual.
- El manual no funciona tal cual con Debian 13: en
virt-install, el parámetro--extra-argsdebe quedar así:--extra-args="console=ttyS0,115200n8 --- console=ttyS0,115200n8".
- El manual no funciona tal cual con Debian 13: en
- Está conectada a la red default y la red_intra.
- El hostname de esta máquina debe ser
router-tunombre. - Se debe poder acceder a ella por ssh con el usuario
usersin que te pida contraseña (configura tu clave pública y la mía). - El usuario
userdebe poder ejecutar el comandosudosin que te pida contraseña. - Esta máquina se debe iniciar cada vez que arrancamos el host.
servidorNAS:- Máquina virtual con Alpine 3.24.
- Realiza la instalación desde una imagen ISO.
- Está conectada a la red red_intra.
- Esta máquina debe tener un disco extra de 1 GB, con formato qcow2, que deberás montar en el directorio
/srv/data. - El hostname de esta máquina debe ser
nas-tunombre. - Se debe poder acceder a ella por ssh con el usuario
usersin que te pida contraseña (configura tu clave pública y la mía). - Esta máquina se debe iniciar cada vez que arrancamos el host.
servidorWeb:- Máquina virtual Ubuntu 26.04.
- Crea esta máquina usando clonación enlazada y configuración de cloud-init desde la imagen cloud.
- Está conectada a la red red_intra.
- El hostname de esta máquina debe ser
web-tunombre. - Se debe poder acceder a ella por ssh con el usuario
usersin que te pida contraseña (configura tu clave pública y la mía). - Esta máquina se debe iniciar cada vez que arrancamos el host.
- Configura la máquina router para que haga SNAT y permita que las máquinas tengan acceso al exterior (la configuración debe ser persistente).
Pregunta: hemos instalado cada máquina de una forma distinta: router por red, servidorNAS desde ISO y servidorWeb mediante clonación enlazada con cloud-init. De las tres, ¿cuál es la gran ventaja de la clonación enlazada frente a las otras dos formas de instalación, y por qué?
Instalación de servicios
- Instala el servidor web nginx en el
servidorWeb. - Configura el router para que se pueda acceder al servidor web desde el exterior del escenario (por ejemplo, con una regla DNAT que redirija el puerto 80 del router al
servidorWeb). - Instala en el
servidorNASun servidor NFS y comparte el directorio/srv/datadonde has guardado una página web estática, una plantilla HTML con CSS o la página generada en IAW. En la página principal debe aparecer tu nombre completo y la fecha. - Monta en el
servidorWebel directorio compartido en/var/www/datay crea un Virtual Host que sirva ese sitio web usando el nombredata.tunombre.org.
Pregunta: ¿Por qué montamos por NFS el directorio del servidorNAS en el servidorWeb en vez de copiar los ficheros directamente al servidorWeb? ¿Qué ocurre si cambias el contenido de la página en el servidorNAS?
Otras operaciones
- El disco donde tenemos la información de la página web en el
servidorNASse ha quedado pequeño. Redimensiona el disco y el sistema de ficheros a 2GB. - Realiza un snapshot a cada una de las máquinas para que podamos volver a ese estado si tenemos algún problema. Muestra la lista de snapshots.
Pregunta: ¿en qué momento del proceso conviene hacer el snapshot de cada máquina, antes o después de instalar y configurar los servicios? Razona la respuesta.
Vídeo de demostración
Además de los comandos y comprobaciones anteriores, graba un vídeo de 3 a 6 minutos mostrando tu escenario funcionando en directo, con narración en voz explicando qué está pasando y por qué.
Se valorará que la explicación hablada demuestre que entiendes qué papel juega cada pieza del escenario (redes, NFS, virsh), no solo que el resultado en pantalla sea el esperado. Sube el vídeo a YouTube (puede ser como oculto / no listado) y añade la URL en la incidencia de Redmine junto con el resto de la entrega.