Automation

 View Only
  • 1.  General query

    Posted Feb 08, 2019 09:38 PM

    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

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



  • 2.  RE: General query

    Posted Feb 08, 2019 09:42 PM

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



  • 3.  RE: General query

    Posted Feb 08, 2019 09:46 PM

    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



  • 4.  RE: General query

    Posted Feb 08, 2019 09:58 PM

    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?