mercoledì 31 luglio 2013

VMware: Deploy VMs from Template using PowerCLI

After yesterday's introductive post, today I would like to share a simple, yet powerful, PowerCLI script that allows you to deploy VMs from a Template.

This is the script structure:

 1..<N> | Foreach {  
 New-VM -vmhost <ESX_HOST> -Name <VM_NAME> -Template <TEMPLATE> -Datastore <DATASTORE> [-OtherOptions]  


<N> is the number of VMs you need to deploy.
<ESX_HOST> is the host where you will deploy your VMs
<TEMPLATE> is the template from which your VMs will be created
<DATASTORE> is the datastore that will contain your VMs
[-OtherOptions] are additional options that can be used in conjunction with New-VM command.

As you can see it's really basic, but New-VM cmdlet is really powerful and it has a lot of options. To go through all on New-VM options:

Get-Help New-VM -Detailed

Here's how I used it today for deploying 6 VMs that will be Oracle RAC nodes.

Open a text editor and paste this code in it saving file with .ps1 extension.

 1..2 | Foreach {  
 New-VM -vmhost -Name RAC$_ -Template OL6 -Datastore datastore1  
 3..4 | Foreach {  
 New-VM -vmhost -Name RAC$_ -Template OL6 -Datastore datastore2 -ResourcePool TestResourcePool  
 5..6 | Foreach {  
 New-VM -vmhost -Name RAC$_ -Template OL6 -Datastore datastore3 | Start-VM  

As you can see we are deploying 6 VMs, named RAC1 to RAC6 from a template called OL6.
RAC1 and RAC2 will be deployed on host, RAC3 and RAC4 on host and RAC5 and RAC6 on host
RAC3 and RAC4 will be placed in a resource pool called TestResourcePool.
RAC5 and RAC6 will be powered on after deployment due to Start-VM cmdlet.

To run this simple script just open VMware vSphere PowerCLI, connect to your vCenter (or host) using Connect-VIServer cmdlet as stated in VMware: vSphere PowerCLI 101 post.

A progress bar will appear in your PowerCLI console

That's all!!Happy VMware Automation!!

Nessun commento:

Posta un commento