Realización de una actualización automatizada in situ de Windows Server 2008 R2


Si tienes instancias de máquinas virtuales (VM) que ejecutan Windows Server 2008 R2, puedes usar la CLI de gcloud para actualizarlas automáticamente a Windows Server 2012 R2.

Usar la CLI de gcloud para realizar una actualización local es una alternativa a realizar una actualización manual . Al automatizar el proceso de actualización, la CLI de gcloud te permite reducir el esfuerzo requerido para cada VM que necesitas actualizar.

Durante una actualización local de una VM, la CLI de gcloud realiza los siguientes pasos:

  1. Detiene la máquina virtual.
  2. Crea una instantánea de disco persistente estándar como copia de seguridad.
  3. Crea una copia del disco de inicio y mantiene el disco de inicio original como copia de seguridad.
  4. Adjunta un disco de instalación que contiene los medios de instalación de Windows 2012 R2 .
  5. Inicia el programa de instalación de Windows ( setup.exe ) desde el disco de instalación para realizar una actualización en modo desatendido .
  6. Aplica la configuración posterior a la actualización .
  7. Separa el disco de instalación.
  8. Detiene la máquina virtual.

Limitaciones

Puedes usar la CLI de gcloud para realizar actualizaciones de Windows Server 2008 R2 a Windows Server 2012 R2. Este enfoque solo admite instancias de VM que se basan en una imagen pública del sistema operativo proporcionada por Google. Para actualizar otras configuraciones de Windows Server o actualizar instancias de VM para las cuales trae su propia licencia , consulte Realización de una actualización local de Windows Server .

Costos

No hay ningún cargo por realizar una actualización local de Windows Server. Solo se le cobrarán los recursos consumidos durante la actualización, incluidos:

Utilice la calculadora de precios para generar una estimación de costos basada en su uso proyectado.

Antes de comenzar

Iniciando la actualización

Las siguientes secciones lo guiarán a través del proceso de actualización de su instancia de VM.

  1. En la consola de Google Cloud, abra Cloud Shell haciendo clic en Activar Cloud ShellActive Cloud Shell. botón.

    Ve a la consola de Google Cloud

  2. Establezca el ID del proyecto predeterminado. Reemplaza PROJECT_ID con el nombre de tu proyecto de Compute Engine:

    gcloud config set project PROJECT_ID
    
  3. Ejecute el siguiente comando para iniciar la actualización:

    gcloud beta compute os-config os-upgrade VM_NAME \
      --zone=ZONE \
      --source-os=windows-2008r2 \
      --target-os=windows-2012r2 \
      --async \
      --auto-rollback
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM a actualizar
    • ZONE : la zona en la que se ejecuta la instancia de VM

    La marca --async le indica a la CLI de gcloud que ejecute la actualización en segundo plano mediante Cloud Build . Ejecutar la actualización en segundo plano le permite actualizar varias instancias de VM en paralelo y también garantiza que el proceso continúe incluso si cierra su sesión de Cloud Shell. Puede encontrar un enlace al trabajo de Cloud Build en el resultado del comando:

    Created [https://cloudbuild.googleapis.com/v1/projects/...].
    ...
    logUrl: https://console.cloud.google.com/build/builds/...
    ...
    status: QUEUED
    ...
    
    

Observando el proceso de actualización

Dependiendo de la configuración de su instancia de VM, la actualización puede tardar entre 40 y 90 minutos en completarse. Puede verificar el estado del proceso de actualización abriendo el registro de Cloud Build:

  1. Haz clic en la URL que se muestra junto a logUrl en el resultado del comando de la CLI de gcloud.
  2. En Registro de compilación , puede ver el estado actual del proceso de actualización.

Cuando la actualización finaliza correctamente, la compilación se marca como Exitosa y puede ver el siguiente resultado en el registro de compilación:

Successfully upgraded instance 'projects/...!'

Si la CLI de gcloud encuentra un problema durante la actualización, marca la compilación como fallida . Si se especifica la opción --auto-rollback , la CLI de gcloud también inicia una reversión automática. Puede encontrar más detalles sobre el problema encontrado en el registro de compilación.

Si la actualización continúa ejecutándose después de 90 minutos y sospecha que no está progresando, utilice uno de los métodos descritos en Solución de problemas de la actualización local para averiguar si el proceso de actualización falló o está estancado.

Completando la actualización

Una vez completada la actualización, inicie la instancia de VM y ejecute Windows Update para descargar e instalar las últimas actualizaciones de seguridad:

  1. Inicie la instancia de VM:

    gcloud compute instances start VM_NAME --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM
    • ZONE : la zona en la que se ejecuta la instancia de VM
  2. Conéctese a la máquina mediante un cliente RDP. Para obtener más información, consulte Conexión a instancias .

  3. Utilice Windows Update para instalar las últimas actualizaciones de Windows . Es posible que tengas que reiniciar la instancia de VM varias veces durante este proceso.

  4. Verifique que todas sus aplicaciones funcionen como se esperaba.

Revertir una actualización

Si la actualización falla, la CLI de gcloud inicia automáticamente una reversión. Si la actualización se realiza correctamente, es posible que aún descubra que una de sus aplicaciones no funciona como se esperaba. En ese caso, revierta la actualización cambiando la instancia de VM para usar el disco de arranque original nuevamente:

  1. Detenga la instancia de VM:

    gcloud compute instances stop VM_NAME --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM
    • ZONE : la zona en la que se ejecuta la instancia de VM
  2. En el registro de compilación, busque las líneas que indican el nombre del disco de arranque original y el nombre del archivo adjunto:

    4. Original boot disk: ORIGINAL_DISK_NAME
        - Device name of the attachment: DEVICE_NAME
    
  3. Separe el disco que contiene el sistema operativo defectuoso de su instancia:

    gcloud compute instances detach-disk VM_NAME \
      --device-name=DEVICE_NAME \
      --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM
    • DEVICE_NAME : el nombre del dispositivo como lo indica el registro de compilación
    • ZONE : la zona en la que se ejecuta la instancia de VM
  4. Vuelva a conectar el disco de arranque original:

    gcloud compute instances attach-disk VM_NAME \
      --disk=ORIGINAL_DISK_NAME \
      --device-name=DEVICE_NAME \
      --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM
    • ORIGINAL_DISK_NAME : el nombre del disco de arranque original como lo indica el registro de compilación
    • DEVICE_NAME : el nombre del dispositivo como lo indica el registro de compilación
    • ZONE : la zona en la que se ejecuta la instancia de VM
  5. Inicie la instancia de VM:

    gcloud compute instances start VM_NAME --zone=ZONE
    

    Reemplace lo siguiente:

    • VM_NAME : el nombre de la instancia de VM
    • ZONE : la zona en la que se ejecuta la instancia de VM

Limpiar

Para evitar incurrir en cargos adicionales, elimina las copias de seguridad que la CLI de gcloud creó automáticamente antes de la actualización:

  1. En el registro de compilación, busque la línea que indica el nombre de la instantánea del disco y el disco de arranque original:

    3. Snapshot for original boot disk: SNAPSHOT_NAME
    4. Original boot disk: DISK_NAME
       - Device name of the attachment: ...
       - AutoDelete setting of the attachment: true
    5. Name of the new boot disk: ...
    
  2. Regrese a Cloud Shell y elimine la instantánea del disco:

    gcloud compute snapshots delete SNAPSHOT_NAME
    
  3. Elimine el disco de arranque original y reemplace ZONE con la zona en la que está implementada la VM:

    gcloud compute disks delete DISK_NAME --zone=ZONE
    

¿Qué sigue?