VMware Cloud Community
marco2601
Contributor
Contributor

General query

Friends I have the two following scritps the first one is constantly pinging the Ip of a VM at the moment that there is no ping a cloned VM is turned on

The second script simply clones a VM origena to that VM I ping with the first script

Well the inconvniente is the following:

Run the two scripts at the same time the ping script works correctly, then while cloning is done with the other script at the time of the cloning the sentence "else" of the first script is executed is like missing the vm ping but in this case it does not lose connection that could be happening...

SCRIPT PING

----------------

#IP VM origen

$VMIP= "172.16.6.200"

##Sentencia para verificacion de conexion a VM origen

do{

$i=1

$i++

##Ping hacia la IP de la VM Origen

$results = gwmi -query "SELECT * FROM Win32_PingStatus WHERE Address = '$VMIP'"

##Si tenemos conexion mostrara mensaje que la VM esta activa

if ($results.StatusCode -eq 0) {

Write-Host "$VMIP online"

}

##Caso contrario mostrara que esta offline, desctivara vNIC de la Origen y encendera la ultima VM clonada

else {

Write-Host "$VMIP offline"

##Coneccion a vCenter

connect-viserver -server $vcenter_server -User $vcenter_user -Password $vcenter_pwd

#Nombre de la VM Origen

$VMorigen= "SRV-SERVER"

#Nombre de la ultima VM clonada

$VMclone= "$($VMorigen)-$((Get-Date).ToString('MMddyyyy'))"

Get-VM -Name SRV-SERVER | Get-NetworkAdapter | Set-NetworkAdapter -Connected:$false -Confirm:$false

GET-VM -Name $VMclone | Start-VM -Confirm:$False

##Desconnexion de vCenter

Disconnect-VIServer -Confirm:$false

##Para sentencia en caso de no tener conexion

break

}

}while($i -le 9999)

----------

SCRIPT CLONE VM

-----------------

#Validacion en caso de noter certificado en el vcenter

Set-PowerCLIConfiguration -InvalidCertificateAction Ignore -Confirm:$false

##Coneccion a vCenter

connect-viserver -server $vcenter_server -User $vcenter_user -Password $vcenter_pwd

#Nombre de la VM Origen

$VMorigen = "SRV-SERVER"

# Ip o hostname de host en donde se clonara la VM

$esxi = "172.16.1.51"

#Nombre para VM clonada con fecha de clonacion

$newVMclone = "$($VMorigen)-$((Get-Date).ToString('MMddyyyy'))"

#Variable para que busque el clone de hace  un dia

$oldCloneName = "$($VMorigen)-$((Get-Date).AddDays(0).ToString('MMddyyyy'))"

#Datastore en donde se guardara la VM

$datastore=Get-datastore -Name 'Datastore-1'

#Parametro para que la VM se guarde en un Datastore compratido dentro de un cluster

$ds = Get-Datastore | where{$_.Type -eq 'VMFS' -and $_.ExtensionData.Summary.MultipleHostAccess} | Sort-Object -Property FreeSpaceGB -Descending | select -First 1

#Parametro para que la VM se guarde en cualquier host de lcluster

$esx = Get-Cluster -VM $VMorigen | Get-VMHost | Get-Random

##Elimina VM de hasta 1 dia en base al nombre del VM clonada

Get-VM -Name $oldCloneName -ErrorAction SilentlyContinue | Remove-VM -DeletePermanently:$true -Confirm:$false

##Clonacion de VM, disco virtual tipo thick y carpeta de almacenaiento de la VM

if(New-VM -VM $VMorigen -Name $newVMclone -VMHost $esxi -DiskStorageFormat Thin -Datastore $datastore -Location "Laboratorios"){

"DONE"

}else{

"Error al clonar la VM"

}

##Desconnexion de vCenter

Disconnect-VIServer -Confirm:$false

-------------------

0 Kudos
3 Replies
LucD
Leadership
Leadership

So what is the question?
Do you want to combine the 2 scripts in 1 script?


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
marco2601
Contributor
Contributor

mmm no, the 2 scripts are running as a program task in windows, the scrip ping is running all the time, but the scrip for clnar is executed once a day, when the cloning script is executed at the end of the cloning the ping script in the statement that sends the conection test is like it loses connection and executes the "else" statement of the ping script but in no time connection is lost at the time of cloning

0 Kudos
LucD
Leadership
Leadership

I'm not sure how you can remove the old clone while it is still powered on.
Shouldn't you power it off before removing it?


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos