Crear una máquina virtual (VM) en Xenserver desde la línea de comandos

Objetivo

Crear una máquina virtual en xenserver desde cero, usando la línea de comandos

Requisitos

Acceso privilegiado a la línea de comandos de Xenserverl y tener previamente configurada un local storage de la imagen ISO con la distribución que desees instalar.

Dificultad

Moderada

Instrucciones

Crear la plantilla de VM y recopilar información

En este instructivo crearemos una máquina virtual basada en CentOS, pero estas instrucciones e aplican para cualquier distribución que se quiera instalar. Siempre y cuando, sea compatible con XenServer.En esta guía crearemos una nueva máquina virtual basada en Ubuntu Linux. Sin embargo, el siguiente procedimiento se ajustará a cualquier distribución decente de Linux siempre y cuando sea compatible con XenServer, es decir, que la distribución de linux que se desea instalar forma parte del repertorio de XenServer.

Busquemos primero en la base de datos de XenServer por el nombre de la plantilla:

En este caso, usaremos Ubuntu 16.04:

# xe template-list | grep name-label | grep -i 16.04
          name-label ( RW): Ubuntu Xenial Xerus 16.04

Next, install new virtual machine using the above template name:

# xe vm-install template="Ubuntu Xenial Xerus 16.04" new-name-label="Ubuntu 16.04.1 Desktop amd64"
784b1b7f-0c13-4e9a-9d06-6a3edd9c90c2

Guarda la salida del  UUID y el nuevo nombre de la VM para un posterior uso que le daremos. :

# UUID=784b1b7f-0c13-4e9a-9d06-6a3edd9c90c2
# NAME="Ubuntu 16.04.1 Desktop amd64"

Luego, usacd-list to list all available ISO images para ver las isos disponibles en tu repositorio.

# xe cd-list
# ISO="ubuntu-16.04.1-desktop-amd64.iso"

Next, we deal with necessary networking bits. List, XenServer’s networks and save desired network UUID you wish to attach to your new VM:

# xe network-list
uuid ( RO)                : 23e21c78-dfa0-e6f4-9dcd-73da08870fe8                                                                                                                                                      
          name-label ( RW): Host internal management network
    name-description ( RW): Network on which guests will be assigned a private link-local IP address which can be used to talk XenAPI
              bridge ( RO): xenapi


uuid ( RO)                : ae1299a0-c0db-bf00-7702-7e4ab09e1abd
          name-label ( RW): Pool-wide network associated with eth0
    name-description ( RW): 
              bridge ( RO): xenbr0

Guarda el network UUID:

# NETWORK=ae1299a0-c0db-bf00-7702-7e4ab09e1abd

También tenemos una opción para especificar la MAC para la  interfaz de red de la  VM. Guarda esa MAC, si la tienes, con la siguiente variable:

# MAC="4a:4d:42:ac:b3:7b"

Obtiene los UUID de los discos virtuales. entonces nosotros podemos después modificar ese tamaño:

# xe vm-disk-list vm="$NAME"
Disk 0 VBD:
uuid ( RO)             : 01ff5ffe-bde2-becc-ada1-9d1289e017a2
    vm-name-label ( RO): Ubuntu 16.04.1 Desktop amd64
       userdevice ( RW): 0


Disk 0 VDI:
uuid ( RO)             : 5eac954c-d6ce-4e0d-91de-85f9bd70123b
       name-label ( RW): 0
    sr-name-label ( RO): Local storage
     virtual-size ( RO): 10737418240

Guarda el UUID del VID:

# VDI=5eac954c-d6ce-4e0d-91de-85f9bd70123b

Configura tu VM

Ahora que tenemos toda la informacion, it is time tu configure our new VM, primero, attach el ISO a l nueva VM  y hacemos que la nueva VM botee desde la iso.

# xe vm-cd-add uuid=$UUID  cd-name=$ISO device=1
# xe vm-param-set HVM-boot-policy="BIOS order" uuid=$UUID

Luego, creamos la interfaz de red. Si no incluyes la opcion de MAC, será generada automáticamente.

# xe vif-create vm-uuid=$UUID network-uuid=$NETWORK mac=$MAC device=0
b5177fa9-81a2-3233-99c6-e545854dce8c

Especifica la cantidad e RAM para la VM. Puedes elegir la cantidad que necesites.

# xe vm-memory-limits-set dynamic-max=4000MiB dynamic-min=512MiB static-max=4000MiB static-min=512MiB uuid=$UUID

Y lo último,actualiza el tamaño del disco. Este comando lo incrementará en 15 GB.

# xe vdi-resize uuid=$VDI disk-size=15GiB

Además de esto, debes considerar el número de cpu, mantener al día la versión operativa de tu sistema, etc.

Inicia la VM

Ahora puedes inciar la máquina y comenzar con la instalación de su SO.

# xe vm-start uuid=$UUID

Conectarse a la VM

Nosotros usamos VNC client para conectar a las maquinas, pero esto es opcional.  Primero necesitamos obtener el numero de puerto VNC :

# DOMID=`list_domains | grep $UUID | awk '{ print $1 }'`
# xenstore-read /local/domain/$DOMID/console/vnc-port
5901

Los dos últimos dígitos de la salida del comando anterior te proporcionarán el número de puerto VNC. En este caso es 1. Use el cliente vnc para conectarse remotamente:

$ vncviewer -via root@XENSERVER_IP localhost:1