Clonar/Desplegar VM masivamente con PowerCLI

Translate

fondo_cabezera_cuadrado_PowerCLIVolvemos de nuevo con un post sobre nuestro gran aliado PowerCLI en entornos VMWare vSphere, para facilitarnos la vida en tareas repetitivas y aburridas.

Debido a mi profesión en ocasiones tengo que desplegar VM de manera masiva para laboratorios de formación, lo cual implica un despliegue de 15 o más VM obtenidas de una plantilla o como clón de una VM ya preparada.

Este proceso puede llevarme una mañana, dependiendo de la velocidad del entorno vSphere. Imaginar el proceso, Botón derecho, clonar seleccionar de Datastore, la carpeta donde ordenarla, poner el nombre, etc… y todo esto más de 15 veces y con la espera entre clón y clón. Una perdida de tiempo.

Para agilizar este proceso podemos generar un scrip de PowerCLI con el que mediante una sencilla instrucción generaremos nuestro entorno.

$sourceWin12 = "win12-curso"
$sourceWin8 = "win8.1-curso"
$esxName1 = "esxi01"
$datastore0 = "SAS01_LUN000"
$datastore1 = "SAS01_LUN001"
$folder = "CursoNCORA"

1..5 | Foreach {
New-vm -vmhost $esxName1 -Name dc01-alum$_ -VM $sourceWin12 -Datastore $datastore0 -Location $folder
}
1..5 | Foreach {
New-vm -vmhost $esxName1 -Name dc02-alum$_ -VM $sourceWin12 -Datastore $datastore1 -Location $folder
}
1..5 | Foreach {
New-vm -vmhost $esxName1 -Name w8-alum$_ -VM $sourceWin8 -Datastore $datastore0 -Location $folder
}

Si le prestamos un poco de atención al script, lo primero que vemos son una variables declaradas para hacer las instrucciones más estandars y solo modificar los valores en el inicio.

Lo siguiente, es la declaración de un bucle, que repite la operación tantas veces como hayamos definido en la numeración del inicio. X es el numero del VM que queréis desplegar.

1..X | Foreach {

El contenido del bucle es una simple instrucción de creación de VM a partir de otra VM, la cual hacemos referencia mediante las variables y asignamos en el nombre de la VM creada el valor del bucle en ese momento. $_ es numero de veces que se ha ejecutado el bucle.

dc01-alum$_

En esta misma instrucción establecemos los valores de host donde queremos hospedar nuestras VM, carpeta del entorno donde queremos organizarlas y el datastore donde las almacenamos

New-vm -vmhost $esxName1 -Name dc01-alum$_ -VM $sourceWin12 -Datastore $datastore0 -Location $folder

Por descontado que esta instrucción tiene muchos más parametros para crear la VM, por ello os dejo aquí un link de la documentación oficial de VMWare.

https://www.vmware.com/support/developer/PowerCLI/PowerCLI41/html/New-VM.html

 

 

Espero que os haya servido, si tenéis alguna duda comentar el post y haré lo posible para ayudaros.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.