¿Cómo crear una VM desde cero con virsh?

24

Parece que no puede crear una nueva máquina virtual con virsh a menos que ya tenga un archivo XML en funcionamiento.

Acabo de instalar todos los bits necesarios para que QEMU-KVM funcione, y ahora necesito crear mi primera VM.

¿Cómo?

Pista: ¡no tengo gráficos!

EnzoR
fuente
Oye, solo revisando algunas preguntas. ¿Cómo te ha ido con esto?
I_GNU_it_all_along
Resolví el problema revisando las páginas de manual y los sitios web oficiales de QEMU y KVM y una serie de pruebas e intentos. He estado pidiendo que haga todo manualmente, en cambio tengo respuestas sobre cómo hacerlo con aplicaciones de terceros. Estoy casi terminado y publicaré mis soluciones de trabajo también aquí lo antes posible.
EnzoR
1
@I_GNU_it_all_along Tuya es la única respuesta / comentario significativo que tengo hasta ahora.
EnzoR
1
Muchas gracias. Lo siento, no podría ser más ayuda con la instalación manual.
I_GNU_it_all_along
1
@I_GNU_it_all_along Encontré esa cosa del archivo XML precocinado realmente molesto. No creo que sea un estúpido simio si quiero entender. El problema con las cosas basadas en libvrtd es que hay muy poca documentación y todos parecen bastante cómodos con un enfoque de caja negra. Muchas gracias.
EnzoR

Respuestas:

36

Hay un buen recorrido aquí . Esencialmente, la herramienta que desea utilizar es virt-install, que ya debería tener si ha instalado todo lo necesario para QEMU-KVM. Aquí está la sección más relevante.

6. Crear una nueva VM invitada usando virt-install

La herramienta virt-install se usa para crear la VM. Esta herramienta se puede utilizar en modo interactivo o no interactivo.

En el siguiente ejemplo, pasé todos los valores requeridos para crear una VM como parámetros de línea de comando al comando virt-install.

# virt-install \
-n myRHELVM1 \
--description "Test VM with RHEL 6" \
--os-type=Linux \
--os-variant=rhel6 \
--ram=2048 \
--vcpus=2 \
--disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10 \
--graphics none \
--cdrom /var/rhel-server-6.5-x86_64-dvd.iso \
--network bridge:br0

En el comando virt-install anterior, los parámetros tienen el siguiente significado:

  • n: Nombre de su máquina virtual

  • description: Alguna descripción válida sobre su VM. Por ejemplo: servidor de aplicaciones, servidor de bases de datos, servidor web, etc.

  • os-type: El tipo de sistema operativo puede ser Linux, Solaris, Unix o Windows.

  • os-variant: Tipo de distribución para el tipo os anterior. Por ejemplo, para Linux, puede ser rhel6, centos6, ubuntu14, suse11, fedora6, etc.

    Para Windows, puede ser win2k, win2k8, win8, win7

  • ram: Memoria para la VM en MB

  • vcpu: Número total de CPU virtuales para la VM.

  • disk path=/var/lib/libvirt/images/myRHELVM1.img,bus=virtio,size=10: Ruta donde se almacenan los archivos de imagen de VM. Tamaño en GB. En este ejemplo, este archivo de imagen de VM es de 10 GB.

  • graphics none: Esto indica a virt-install que use una consola de texto en el puerto serie de VM en lugar de la ventana gráfica de VNC. Si tiene configurado el xmanager, puede ignorar este parámetro.

  • cdrom: Indica la ubicación de la imagen de instalación. Puede especificar la ubicación de instalación NFS o http (en lugar de –-cdrom). Por ejemplo: --location=http://.com/pub/rhel6/x86_64/*

  • network bridge:br0: Este ejemplo utiliza el adaptador puente br0. También es posible crear su propia red en cualquier puerto específico en lugar de un adaptador en puente.

    Si desea utilizar el NAT, utilice algo como el siguiente para el parámetro de red con el nombre de red virtual conocido como VMnetwork1. Todos los archivos de configuración de red se encuentran en / etc / libvirt / qemu / networks / para las máquinas virtuales. Por ejemplo:

    –-network network=VMnetwork1

I_GNU_it_all_along
fuente
66
Es bastante extraño que esto no se mencione en la mayoría de las documentaciones, sino que suponen que ya tienes una VM en funcionamiento, cuando probablemente estés leyendo el tutorial precisamente porque no lo tienes. Gracias de todos modos. :)
Teekin