lunes, 23 de agosto de 2010

Crear (duplicar) máquinas virtuales rápidamente con Virtual Box 3.2.8

Vamos a ver como podemos tener disponibles nuevas máquinas virtuales de forma rápida sin tener que reinstalar un sistema en una máquina virtual (MV). Para ello, tendremos que usar los comandos de consola de Virtual Box.

Lo primero que haremos es instalar una MV de forma normal. Yo he instalado un Ubuntu server 10.04.1 de 64 bits, lo he llamado ubults6400 con openssh server. Sin nada más. Este será mi sistema base. Además está totalmente actualizado y le he hecho las configuraciones necesarias de red, repositorios, etc. Elegid bien la configuración y lo que le instaláis ya que lo replicareis todo a todas las MV que luego creéis. Es preferible perder el tiempo aquí pensando que después tener que hacer los cambios en todas las MV porque se nos olvido algo.

Mi sistema anfitrión donde corre VirtualBox 3.2.8 lo he llamado casakub.

VirtualBox tiene un sistema de UIDs que identifican los componentes de una máquina virtual, esto quiere decir que no podéis copiar y pegar un disco de una MV y crear otra MV con el y listo, debéis usar los comandos para hacerlo.

Lo que hay que hacer es crear un disco nuevo a partir del que tenemos y luego crear una MV nueva usando ese disco.

Mis MV se guardan en el directorio Vmachines y los discos duros de las MV se guardan en Vmachines/HardDisks. El nombre de la MV es ubults6400 (no confundir con el nombre de host del sistema instalado en la MV, en este caso es el mismo pero puede ser diferente)

Los discos duros tienen un formato de archivo llamado VDI por defecto en VBox, como vemos que ha creado con mi MV base.

/Vmachines/HardDisks$ ls -lah
ubults6400.vdi

El comando que nos interesa para gestionar las MV es VBoxManage, mayúsculas y minúsculas son importantes. Poniéndolo solo, sin parámetros, nos da una extensa lista de lo que podemos hacer. Crear MVs, modificarlas, clonar discos, snapshots, etc. Muchas opciones.

Clonar la MV

Desde el anfitrión podemos ver la informacion de la MV

$ VBoxManage showvminfo ubults6400
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8
(C) 2005-2010 Oracle Corporation
All rights reserved.

Name:            ubults6400
Guest OS:        Ubuntu (64 bit)
UUID:            978efc44-1d26-4c86-ad88-499b99a7fa27
Config file:     /home/casa/Vmachines/ubults6400/ubults6400.xml
Hardware UUID:   978efc44-1d26-4c86-ad88-499b99a7fa27
Memory size:     512MB
Page Fusion:     off
VRAM size:       12MB
HPET:            off
Number of CPUs:  1
Synthetic Cpu:   off
CPUID overrides: None
Boot menu mode:  message and menu
Boot Device (1): Floppy
Boot Device (2): DVD
Boot Device (3): HardDisk
Boot Device (4): Not Assigned
ACPI:            on
IOAPIC:          on
PAE:             off
Time offset:     0 ms
RTC:             UTC
Hardw. virt.ext: on
Hardw. virt.ext exclusive: on
Nested Paging:   on
Large Pages:     off
VT-x VPID:       on
State:           powered off (since 2010-08-23T10:48:50.195000000)
Monitor count:   1
3D Acceleration: off
2D Video Acceleration: off
Teleporter Enabled: off
Teleporter Port: 0
Teleporter Address: 
Teleporter Password: 
Storage Controller Name (0):            Controlador IDE
Storage Controller Type (0):            PIIX4
Storage Controller Instance Number (0): 0
Storage Controller Max Port Count (0):  2
Storage Controller Port Count (0):      2
Storage Controller Name (1):            Controlador SATA
Storage Controller Type (1):            IntelAhci
Storage Controller Instance Number (1): 0
Storage Controller Max Port Count (1):  30
Storage Controller Port Count (1):      1
Controlador IDE (1, 0): Empty
Controlador SATA (0, 0): /home/casa/Vmachines/HardDisks/ubults6400.vdi (UUID: 7fc176d1-1755-4744-8ec8-85d80ca35e60)
NIC 1:           MAC: 080027795806, Attachment: Bridged Interface 'eth1', Cable connected: on, Trace: off (file: none), Type: 82540EM, Reported speed: 0 Mbps, Boot priority: 0
NIC 2:           disabled
NIC 3:           disabled
NIC 4:           disabled
NIC 5:           disabled
NIC 6:           disabled
NIC 7:           disabled
NIC 8:           disabled
Pointing Device: USB Tablet
Keyboard Device: PS/2 Keyboard
UART 1:          disabled
UART 2:          disabled
Audio:           enabled (Driver: ALSA, Controller: AC97)
Clipboard Mode:  Bidirectional
VRDP:            disabled
USB:             enabled

USB Device Filters:



Shared folders:  

Guest:

Configured memory balloon size:      0 MB

Para clonar el disco

$ VBoxManage clonehd /home/casa/Vmachines/HardDisks/ubults6400.vdi --format VDI /home/casa/Vmachines/HardDisks/ubults6401.vdi
Oracle VM VirtualBox Command Line Management Interface Version 3.2.8
(C) 2005-2010 Oracle Corporation
All rights reserved.

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VDI'. UUID: a90916c3-fd07-4908-9906-859249792073

Como vemos le ha dado otra UUID y le hemos dado otro nombre, ubults01.vdi.

Ahora solo debemos crear la MV, yo la llamo ubults6401 y decirle que use el disco que hemos creado, es decir, elegís usar un disco existente, no que cree uno nuevo. Tendréis que añadirlo al Administrador de discos cuando vayáis a elegirlo.

Por último, arrancáis la MV y debéis cambiar el nombre de host y la dirección IP si es estática. Y listo. Un nuevo sistema. Clon del anterior en 3 min.

Comprobáis cual es el nombre de la interfaz de red en el nuevo sistema. En ubults6400, el original era eth0 y la nueva MV ubults6401 le asignó eth2, ponéis ifconfig -a y veis cual es la vuestra en la nueva. Entonces hacéis los cambios pertinentes en /etc/network/interfaces.

$ sudo vim /etc/network/interfaces
$ sudo vim /etc/hosts
$ sudo vim /etc/hostname
$ sudo hostname ubults6401
$ sudo /etc/init.d/networking restart
$ exit

Cuando cerréis la sesión y volváis a hacer login ya estará cambiado el nombre de host.

Lo suyo es no tocar el sistema base para clonar todos a partir de él y tener un sistema limpio. Podéis crear un servidor web a partir de ubults6401 y después clonar a partir de él otros servidores web y no tocar el original, etc. Hay muchas posibilidades.
Related Posts with Thumbnails