Realiza una actualización in situ automática de Windows Server 2008 R2


Si tienes instancias de máquina virtual (VM) que ejecutan Windows Server 2008 R2, puedes usar la CLI de gcloud para actualizarlas de forma automática a Windows Server 2012 R2.

Usar la CLI de gcloud para realizar una actualización in situ es una alternativa a realizar una actualización manual. Mediante la automatización del proceso de actualización, la CLI de gcloud te permite reducir el esfuerzo requerido para cada instancia de VM que necesitas actualizar.

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

  1. Detiene la VM.
  2. Crea una instantánea de disco persistente estándar como copia de seguridad.
  3. Crea una copia del disco de arranque y conserva el disco de arranque original como copia de seguridad.
  4. Conecta un disco de instalación que contenga los medios de instalación de Windows 2012 R2.
  5. Inicia la Configuración de Windows (setup.exe) desde el disco de instalación para realizar una actualización en modo sin supervisión.
  6. Aplica la configuración posterior a la actualización.
  7. Desconecta el disco de instalación.
  8. Detiene la VM.

Limitaciones

Nota: 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 basadas en una imagen pública del sistema operativo proporcionada por Google. Si quieres actualizar otras opciones de configuración de Windows Server o deseas actualizar instancias de VM en las que usas una licencia adquirida por el usuario, consulta Realiza una actualización in situ de Windows Server.

Costos

No se aplican cargos por realizar una actualización in situ de Windows Server. Solo se te cobrará por los recursos consumidos durante la actualización, que incluyen los siguientes:

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto.

Antes de comenzar

Inicia la actualización

En las siguientes secciones, se explica el proceso de actualización de tu instancia de VM.

  1. En la consola de Google Cloud, haz clic en el botón Activar Cloud ShellActivar Cloud Shell. para abrir Cloud Shell.

    Ve a la consola de Google Cloud.

  2. Configura el ID del proyecto predeterminado. Reemplaza PROJECT_ID por el nombre de tu proyecto de Compute Engine:

    gcloud config set project PROJECT_ID
    
  3. Ejecuta 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
    

    Reemplaza lo siguiente:

    • VM_NAME: Es el nombre de la instancia de VM que se actualizará.
    • ZONE: Es 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 te permite actualizar varias instancias de VM en paralelo y, también, garantiza que el proceso continúe incluso si cierras tu sesión de Cloud Shell. Puedes encontrar un vínculo 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
    ...
    
    

Observa el proceso de actualización

Según la configuración de tu instancia de VM, la actualización puede llevar entre 40 y 90 minutos en completarse. Para verificar el estado del proceso de actualización, abre el registro de Cloud Build:

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

Cuando la actualización finaliza con éxito, la compilación se marca como Correcta y puedes ver el siguiente resultado en el registro de la compilación:

Successfully upgraded instance 'projects/...!'

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

Si la actualización sigue en ejecución después de 90 minutos y sospechas que no avanza, usa uno de los métodos que se describen en Soluciona problemas de la actualización in situ para descubrir si el proceso de actualización falló o está detenido.

Completa la actualización

Una vez que se complete la actualización, inicia la instancia de VM y ejecuta Windows Update para descargar e instalar las actualizaciones de seguridad más recientes:

  1. Inicia la instancia de VM:

    gcloud compute instances start VM_NAME --zone=ZONE
    

    Reemplaza lo siguiente:

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

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

  4. Verifica que todas las aplicaciones funcionen de la forma prevista.

Revierte una actualización

Si la actualización falla, la CLI de gcloud inicia una reversión de forma automática. Aunque la actualización se haya realizado con éxito, es posible que una de tus aplicaciones no funcione de forma correcta. En ese caso, cambia la instancia de VM a fin de volver a usar el disco de arranque original para revertir la actualización:

  1. Detén la instancia de VM:

    gcloud compute instances stop VM_NAME --zone=ZONE
    

    Reemplaza lo siguiente:

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

    4. Original boot disk: ORIGINAL_DISK_NAME
        - Device name of the attachment: DEVICE_NAME
    
  3. Desconecta de la instancia el disco que contiene el sistema operativo que funciona de forma incorrecta:

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

    Reemplaza lo siguiente:

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

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

    Reemplaza lo siguiente:

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

    gcloud compute instances start VM_NAME --zone=ZONE
    

    Reemplaza lo siguiente:

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

Limpia

Para evitar que se generen cargos adicionales, quita las copias de seguridad que la CLI de gcloud creó de forma automática antes de la actualización:

  1. En el registro de la compilación, busca la línea que indica el nombre de la instantánea del disco y del 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. Regresa a Cloud Shell y borra la instantánea del disco:

    gcloud compute snapshots delete SNAPSHOT_NAME
    
  3. Borra el disco de arranque original y reemplaza ZONE por la zona en la que se implementa la VM:

    gcloud compute disks delete DISK_NAME --zone=ZONE
    

¿Qué sigue?