Antes de aplicar revisiones o extensiones a los hosts ESXi, tal vez quiera probarlas aplicándolas a hosts en un entorno de prueba. A continuación, puede utilizar Update Manager PowerCLI para exportar líneas base probadas a otra instancia del servidor Update Manager, y aplicar las revisiones y extensiones en otros hosts.

Update Manager PowerCLI es una línea de comandos y herramienta de scripting integrada en Windows PowerShell que proporciona un conjunto de cmdlets para administrar y automatizar Update Manager. Para obtener más información sobre la instalación y el uso de Update Manager PowerCLI, consulte Guía de instalación y administración de VMware vSphere Update Manager PowerCLI.

En este flujo de trabajo se describe cómo probar revisiones mediante una instancia de Update Manager y cómo exportar una línea base de revisión que contiene revisiones probadas a otra instancia de Update Manager.

  1. Cree líneas base de revisión de hosts fijas.

    Cree líneas base de revisión fijas que contengan las revisiones que desea probar. Las líneas base de revisión fijas no cambian su contenido cuando se descargan revisiones nuevas en el repositorio de revisiones de Update Manager. Puede crear una línea base de revisión fija desde la pestaña Líneas base y grupos de la vista Administración de Update Manager. Para obtener más información y conocer el procedimiento detallado, consulte Crear una línea base de revisión fija.

  2. Asocie las líneas base de revisión a un objeto que contenga los hosts que desea examinar o corregir.

    El objeto contenedor puede ser una carpeta, un clúster o un centro de datos. Puede asociar líneas base y grupos de líneas base a objetos desde la vista Cumplimiento de Update Manager. Para obtener más información sobre la asociación de líneas base y grupos de líneas base con objetos de vSphere, consulte #GUID-5EA28531-0813-4B04-99A7-F8D88756F3CC.

  3. Examine el objeto contenedor.

    Después de asociar líneas base al objeto contenedor seleccionado, debe examinar el objeto para ver el estado de cumplimiento de los hosts que contiene. Puede examinar manualmente los objetos seleccionados para iniciar la exploración de inmediato. Para obtener instrucciones detalladas sobre cómo examinar hosts de forma manual, consulte #GUID-72B973CF-671A-4C7A-B5CA-2ACC0ECA31FE.

    También puede examinar los hosts del objeto contenedor en cualquier momento que le resulte conveniente. Para ello, debe programar una tarea de exploración. Para obtener más información e instrucciones detalladas sobre la programación de una exploración, consulte Programar una exploración.

  4. Consulte los resultados de la exploración que se muestran en la vista Cumplimiento de Update Manager Client.

    Para conocer los detalles del procedimiento por el cual se ven los resultados de la exploración para y obtener más información sobre los estados de cumplimiento, consulte Ver resultados de la exploración y estados de cumplimiento de objetos de vSphere.

  5. (Opcional) Preconfigure las revisiones en las líneas base asociadas para los hosts que desea actualizar.

    Puede preconfigurar las revisiones y copiarlas del servidor de Update Manager a los hosts antes de aplicarlas. La preconfiguración de las revisiones acelera el proceso de corrección y ayuda a minimizar el tiempo de inactividad de los hosts durante la corrección. Para obtener detalles del procedimiento de preconfiguración de revisiones y extensiones para hosts, consulte Almacenamiento provisional de revisiones y extensiones en los hosts ESXi.

  6. Corrija el objeto contenedor.

    Corrija los hosts que están en estado No compatible para que sean compatibles con las líneas base asociadas. Para obtener más información sobre la corrección de hosts con respecto a líneas base de revisión o extensión, consulte Corregir hosts con respecto a líneas base de revisiones o extensiones.

  7. Exporte las líneas base de revisión desde el servidor Update Manager que utilizó para probar las revisiones e impórtelas a otro servidor Update Manager.

    Puede exportar e importar las líneas base de revisión desde un servidor Update Manager a otro mediante un script de Update Manager PowerCLI. El siguiente script de ejemplo crea un duplicado de la línea base MiLíneaBase en $destinationServer.

    Nota:

    El script funciona para líneas base de revisión fijas y dinámicas, como también para líneas base de extensión.

    # $destinationServer = Connect-VIServer <ip_address_of_the_destination_server>
    # $sourceServer = Connect-VIServer <ip_address_of_the_source_server>
    # $baselines = Get-PatchBaseline MyBaseline -Server $sourceServer
    # ExportImportBaselines.ps1 $baselines $destinationServer
    Param([VMware.VumAutomation.Types.Baseline[]] $baselines, [VMware.VimAutomation.Types.VIServer[]]$destinationServers)
    
    $ConfirmPreference = 'None'
    $includePatches = @()
    $excludePatches = @()
    
    function ExtractPatchesFromServer([VMware.VumAutomation.Types.Patch[]]$patches, 
    [VMware.VimAutomation.Types.VIServer]$destinationServer){
    	$result = @()
    	if ($patches -ne $null){
    		foreach($patch in $patches){
    			$extractedPatches = Get-Patch -Server $destinationServer -SearchPhrase $patch.Name
       if ($extractedPatches -eq $null){
        Write-Warning -Message "Patch '$($patch.Name)' is not available on the server $destinationServer"
       } else {
        $isFound = $false
        foreach ($newPatch in $extractedPatches){
         if ($newPatch.IdByVendor -eq $patch.IdByVendor){
          $result += $newPatch
          $isFound = $true
    	  		}
    	  	}
        if ($isFound -eq $false) {
         Write-Warning -Message "Patch '$($patch.Name)' with VendorId '$($patch.IdByVendor)' is not available on the server $destinationServer"
        }
       }
      }
     }
     return .$result;
    }
    
    function
    CreateStaticBaseline([VMware.VumAutomation.Types.Baseline]$baseline,[VMware.VimAutomation.Types.VIServer]$destinationServer){
     $includePatches = ExtractPatchesFromServer $baseline.CurrentPatches $destinationServer
     if ($includePatches.Count -lt 1){
      write-error "Static baseline '$($baseline.Name)' can't be imported. No one of the patches it contains are available on the server $destinationServer"
     } else {
      $command = 'New-PatchBaseline -Server $destinationServer -Name $baseline.Name -Description $baseline.Description -Static -TargetType $baseline.TargetType -IncludePatch $includePatches'
      if ($baseline.IsExtension) {
       $command += ' -Extension'
      }
    
      Invoke-Expression $command
     }
    }
    
    function 
    CreateDynamicBaseline([VMware.VumAutomation.Types.Baseline]$baseline,[VMware.VimAutomation.Types.VIServer]$destinationServer)
    {
     if ($baseline.BaselineContentType -eq 'Dynamic'){
      $command = 'New-PatchBaseline -Server $destinationServer -Name $baseline.Name -Description $baseline.Description -TargetType $baseline.TargetType -Dynamic -SearchPatchStartDate $baseline.SearchPatchStartDate - SearchPatchEndDate $baseline.SearchPatchEndDate -SearchPatchProduct $baseline.SearchPatchProduct -SearchPatchSeverity $baseline.SearchPatchSeverity -SearchPatchVendor $baseline.SearchPatchVendor'
     } elseif ($baseline.BaselineContentType -eq 'Both'){
    		$includePatches = ExtractPatchesFromServer $baseline.InclPatches $destinationServer
     	$excludePatches = ExtractPatchesFromServer $baseline.ExclPatches $destinationServer
    
      $command = 'New-PatchBaseline -Server $destinationServer -Name $baseline.Name -Description $baseline.Description -TargetType $baseline.TargetType -Dynamic -SearchPatchStartDate $baseline.SearchPatchStartDate -SearchPatchEndDate $baseline.SearchPatchEndDate -SearchPatchProduct $baseline.SearchPatchProduct -SearchPatchSeverity $baseline.SearchPatchSeverity -SearchPatchVendor $baseline.SearchPatchVendor'
      if ($includePatches.Count -gt 0){
       $command += ' -IncludePatch $includePatches'
      }
    
      if ($excludePatches.Count -gt 0){
      $command += ' -ExcludePatch $excludePatches'
      }
     }
    
     #check for null because there is known issue for creating baseline with null SearchPatchPhrase
     if ($baseline.SearchPatchPhrase -ne $null){
      $command += ' -SearchPatchPhrase $baseline.SearchPatchPhrase'
     }
    
     Invoke-Expression $command
    }
    
    foreach ($destinationServer in $destinationServers) {
     if ($baselines -eq $null) {
      Write-Error "The baselines parameter is null"
     } else {
      foreach($baseline in $baselines){
       if ($baseline.GetType().FullName -eq 'VMware.VumAutomation.Types.PatchBaselineImpl'){
        Write-Host "Import '" $baseline.Name "' to the server $destinationServer" 
        if($baseline.BaselineContentType -eq 'Static'){
         CreateStaticBaseline $baseline $destinationServer
        } else {
         CreateDynamicBaseline $baseline $destinationServer
        }
       } else {
        Write-Warning -Message "Baseline '$($baseline.Name)' is not patch baseline and will be skipped."    
       }
      }
     }
    }
    

    Ya exportó la línea base probada a otro servidor Update Manager.

  8. Aplique las revisiones en los hosts ESXi mediante la instancia del servidor Update Manager a la que exportó la línea base de revisión probada.