Esta página describe cómo instalar manualmente el entorno invitado para instancias de máquinas virtuales (VM) que ejecutan imágenes personalizadas en Compute Engine.
En la mayoría de los casos, si utiliza máquinas virtuales creadas con imágenes públicas proporcionadas por Google, no necesita instalar un entorno invitado. Para obtener información sobre cuándo utilizar el entorno invitado, consulte Cuándo instalar o actualizar manualmente el entorno invitado .
Antes de instalar manualmente el entorno invitado, utilice el procedimiento Validar el entorno invitado para comprobar si el entorno invitado se está ejecutando en su máquina virtual. Si el entorno de invitado está disponible en su máquina virtual pero está desactualizado, actualice el entorno de invitado .
Antes de comenzar
- Si aún no lo has hecho, configura la autenticación. La autenticación es el proceso mediante el cual se verifica su identidad para acceder a Google Cloud servicios y API. Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- Set a default region and zone.
Herramienta de importación . Esta es la opción recomendada. Sin embargo, tenga en cuenta que la herramienta de importación no solo instala el entorno invitado, sino que también realiza otras actualizaciones de configuración en la imagen, como configurar redes, configurar el gestor de arranque e instalar Google Cloud CLI. Para obtener instrucciones sobre cómo utilizar la herramienta de importación, consulte Cómo crear una imagen de arranque .
La herramienta de importación admite una amplia variedad de sistemas operativos y versiones. Para obtener más información, consulte los detalles del sistema operativo .
Instalación manual . Elija uno de los siguientes:
- Conéctese a su instancia mediante SSH o RDP e instale el entorno invitado en el lugar
- Clone su disco de arranque e instale el entorno invitado usando un script de inicio
- Asegúrese de que la versión de su sistema operativo sea compatible .
Determine la versión de CentOS/RHEL/Rocky Linux y cree el archivo de repositorio fuente,
/etc/yum.repos.d/google-cloud.repo
:eval $(grep VERSION_ID /etc/os-release) sudo tee /etc/yum.repos.d/google-cloud.repo << EOM [google-compute-engine] name=Google Compute Engine baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-el${VERSION_ID/.*}-x86_64-stable enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM
Actualizar listas de paquetes:
sudo yum makecache sudo yum updateinfo
Instale los paquetes del entorno invitado:
sudo yum install -y google-compute-engine google-osconfig-agent
Reinicie la instancia e inspeccione el registro de su consola para asegurarse de que el entorno invitado se cargue cuando se inicie la copia de seguridad.
Verifique que pueda conectarse a la instancia mediante SSH .
- Asegúrese de que la versión de su sistema operativo sea compatible .
Instale la clave GPG del repositorio público:
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Determine el nombre de la distribución Debian y cree el archivo de lista de fuentes,
/etc/apt/sources.list.d/google-cloud.list
:eval $(grep VERSION_CODENAME /etc/os-release) sudo tee /etc/apt/sources.list.d/google-cloud.list << EOM deb http://packages.cloud.google.com/apt google-compute-engine-${VERSION_CODENAME}-stable main deb http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-${VERSION_CODENAME} main EOM
Actualizar listas de paquetes:
sudo apt update
Instale los paquetes del entorno invitado:
sudo apt install -y google-cloud-packages-archive-keyring sudo apt install -y google-compute-engine google-osconfig-agent
Reinicie la instancia e inspeccione el registro de su consola para asegurarse de que el entorno invitado se cargue cuando se inicie la copia de seguridad.
Verifique que pueda conectarse a la instancia mediante SSH .
Asegúrese de que la versión de su sistema operativo sea compatible .
Habilite el repositorio Universe . Canonical publica paquetes para su entorno invitado en el repositorio Universe.
sudo apt-add-repository universe
Actualizar listas de paquetes:
sudo apt update
Instale los paquetes del entorno invitado:
sudo apt install -y google-compute-engine google-osconfig-agent
Reinicie la instancia e inspeccione el registro de su consola para asegurarse de que el entorno invitado se cargue cuando se inicie la copia de seguridad.
Verifique que pueda conectarse a la instancia mediante SSH .
Asegúrese de que la versión de su sistema operativo sea compatible .
Activar el Módulo de Nube Pública .
product=$(sudo SUSEConnect --list-extensions | grep -o "sle-module-public-cloud.*") [[ -n "$product" ]] && sudo SUSEConnect -p "$product"
Actualizar listas de paquetes:
sudo zypper refresh
Instale los paquetes del entorno invitado:
sudo zypper install -y google-guest-{agent,configs,oslogin} \ google-osconfig-agent sudo systemctl enable /usr/lib/systemd/system/google-*
Reinicie la instancia e inspeccione el registro de su consola para asegurarse de que el entorno invitado se cargue cuando se inicie la copia de seguridad.
Verifique que pueda conectarse a la instancia mediante SSH .
Descarga e instala
GooGet
.[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; Invoke-WebRequest https://github.com/google/googet/releases/download/v2.18.3/googet.exe -OutFile $env:temp\googet.exe; & "$env:temp\googet.exe" -root C:\ProgramData\GooGet -noconfirm install -sources ` https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable googet; Remove-Item "$env:temp\googet.exe"
Durante la instalación,
GooGet
agrega contenido al entorno del sistema. Una vez completada la instalación, inicie una nueva consola PowerShell o proporcione la ruta completa al archivogooget.exe
(C:\ProgramData\GooGet\googet.exe).Abra una nueva consola y agregue el repositorio
google-compute-engine-stable
.googet addrepo google-compute-engine-stable https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable
Instale los paquetes principales del entorno invitado de Windows.
googet -noconfirm install google-compute-engine-windows ` google-compute-engine-sysprep google-compute-engine-metadata-scripts ` google-compute-engine-vss google-osconfig-agent
Instale el paquete de entorno invitado de Windows opcional.
googet -noconfirm install google-compute-engine-auto-updater
Usando el comando
googet
.Para ver los paquetes disponibles, ejecute el comando
googet available
.Para ver los paquetes instalados, ejecute el comando
googet installed
.Para actualizar a la última versión del paquete, ejecute el comando
googet update
.Para ver comandos adicionales, ejecute
googet help
.Asegúrese de que la versión de su sistema operativo sea compatible .
Cree una nueva instancia para que sirva como instancia de rescate. Nombra esta instancia como rescate . No es necesario que esta instancia de rescate ejecute el mismo sistema operativo Linux que la instancia problemática. Este ejemplo utiliza Debian 9 en la instancia de rescate.
Detenga la instancia problemática y cree una copia de su disco de arranque.
Establezca un nombre de variable para la instancia problemática. Esto hace que sea más fácil hacer referencia a la instancia en pasos posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Reemplace VM_NAME con el nombre de la instancia problemática.
Detenga la instancia problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenga el nombre del disco de arranque para la instancia del problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Cree una instantánea del disco de arranque.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Cree un nuevo disco a partir de la instantánea.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Eliminar la instantánea:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Adjunte el nuevo disco a la instancia de rescate y monte el volumen raíz para la instancia de rescate. Debido a que este procedimiento solo adjunta un disco adicional, el identificador de dispositivo del nuevo disco es /dev/sdb . CentOS/RHEL/Rocky Linux utiliza el primer volumen de un disco como volumen raíz de forma predeterminada, por lo que el identificador de volumen debe ser /dev/sdb1 . Para casos personalizados, utilice
lsblk
para determinar el identificador de volumen.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conéctese a la instancia de rescate usando SSH :
gcloud compute ssh rescue
Ejecute los siguientes pasos en la instancia de rescate.
Monte el volumen raíz del nuevo disco.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount -o nouuid "$DEV" "$NEW_DISK_MOUNT_POINT"
Cree el script
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing Google guest environment for CentOS/RHEL/Rocky Linux ==" sleep 30 # Wait for network. echo "Determining CentOS/RHEL/Rocky Linux version..." eval $(grep VERSION_ID /etc/os-release) if [[ -z $VERSION_ID ]]; then echo "ERROR: Could not determine version of CentOS/RHEL/Rocky Linux." exit 1 fi echo "Updating repo file..." tee "/etc/yum.repos.d/google-cloud.repo" << EOM [google-compute-engine] name=Google Compute Engine baseurl=https://packages.cloud.google.com/yum/repos/google-compute-engine-el${VERSION_ID/.*}-x86_64-stable enabled=1 gpgcheck=1 repo_gpgcheck=0 gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOM echo "Running yum makecache..." yum makecache echo "Running yum updateinfo..." yum updateinfo echo "Running yum install google-compute-engine..." yum install -y google-compute-engine rpm -q google-compute-engine if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi echo "Removing this rc.local script." rm /etc/rc.d/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.d/rc.local" fi echo "Restarting the instance..." reboot EOF
Mueva el script
rc.local
al volumen raíz del nuevo disco y establezca los permisos. Deje a un lado cualquier scriptrc.local
existente. El script temporal lo reemplazará cuando finalice.if [ -f "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" ]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.d/rc.local"
Desmonte el volumen raíz del nuevo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir \ "$NEW_DISK_MOUNT_POINT"
Salga de la sesión SSH a la instancia de rescate.
Separe el nuevo disco de la instancia de rescate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Cree una instancia para que sirva como reemplazo. Cuando cree la instancia de reemplazo, especifique el nuevo disco como disco de arranque. Puede crear la instancia de reemplazo usando el Google Cloud Consola:
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en la instancia problemática y luego haga clic en Crear similar .
Especifique un nombre para la instancia de reemplazo. En la sección Disco de arranque , haga clic en Cambiar y luego haga clic en Discos existentes . Seleccione el nuevo disco.
Haga clic en Crear . La instancia de reemplazo se inicia automáticamente después de su creación.
A medida que se inicia la instancia de reemplazo, el script temporal
rc.local
se ejecuta e instala el entorno invitado. Para observar el progreso de este script, inspeccione los registros de la consola en busca de líneas emitidas por el script temporalrc.local
. Para ver registros, ejecute el siguiente comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Reemplace REPLACEMENT_VM_NAME con el nombre que asignó a la instancia de reemplazo.
La instancia de reemplazo también se reinicia automáticamente cuando finaliza el script temporal
rc.local
. Durante el segundo reinicio, puede inspeccionar el registro de la consola para asegurarse de que se cargue el entorno invitado.Verifique que pueda conectarse a la instancia mediante SSH .
Cuando esté satisfecho de que la instancia de reemplazo funciona, puede detener o eliminar la instancia problemática.
Asegúrese de que la versión de su sistema operativo sea compatible
Cree una nueva instancia para que sirva como instancia de rescate. Nombra esta instancia como rescate . No es necesario que esta instancia de rescate ejecute el mismo sistema operativo Linux que la instancia problemática. Este ejemplo utiliza Debian 9 en la instancia de rescate.
Detenga la instancia problemática y cree una copia de su disco de arranque.
Establezca un nombre de variable para la instancia problemática. Esto hace que sea más fácil hacer referencia a la instancia en pasos posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Reemplace VM_NAME con el nombre de la instancia problemática.
Detenga la instancia problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenga el nombre del disco de arranque para la instancia del problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Cree una instantánea del disco de arranque.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Cree un nuevo disco a partir de la instantánea.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Eliminar la instantánea:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Adjunte el nuevo disco a la instancia de rescate y monte el volumen raíz para la instancia de rescate. Debido a que este procedimiento solo adjunta un disco adicional, el identificador de dispositivo del nuevo disco es /dev/sdb . Debian utiliza el primer volumen de un disco como volumen raíz de forma predeterminada, por lo que el identificador del volumen debe ser /dev/sdb1 . Para casos personalizados, utilice
lsblk
para determinar el identificador de volumen.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conéctese a la instancia de rescate usando SSH :
gcloud compute ssh rescue
Ejecute los siguientes pasos en la instancia de rescate.
Monte el volumen raíz del nuevo disco.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount "$DEV" "$NEW_DISK_MOUNT_POINT"
Cree el script
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing Google guest environment for Debian ==" export DEBIAN_FRONTEND=noninteractive sleep 30 # Wait for network. echo "Determining Debian version..." eval $(grep VERSION_CODENAME /etc/os-release) if [[ -z $VERSION_CODENAME ]]; then echo "ERROR: Could not determine Debian version." exit 1 fi echo "Adding GPG key for Google cloud repo." curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - echo "Updating repo file..." tee "/etc/apt/sources.list.d/google-cloud.list" << EOM deb http://packages.cloud.google.com/apt google-compute-engine-${VERSION_CODENAME}-stable main deb http://packages.cloud.google.com/apt google-cloud-packages-archive-keyring-${VERSION_CODENAME} main EOM echo "Running apt update..." apt update echo "Installing packages..." for pkg in google-cloud-packages-archive-keyring google-compute-engine; do echo "Running apt install ${pkg}..." apt install -y ${pkg} if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi done echo "Removing this rc.local script." rm /etc/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.local" fi echo "Restarting the instance..." reboot EOF
Mueva el script
rc.local
al volumen raíz del nuevo disco y establezca los permisos. Deje a un lado cualquier scriptrc.local
existente. El script temporal lo reemplazará cuando finalice.if [[ -f "$NEW_DISK_MOUNT_POINT/etc/rc.local" ]]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.local"
Desmonte el volumen raíz del nuevo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Salga de la sesión SSH a la instancia de rescate.
Separe el nuevo disco de la instancia de rescate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Cree una nueva instancia para que sirva como reemplazo. Cuando cree la instancia de reemplazo, especifique el nuevo disco como disco de arranque. Puede crear la instancia de reemplazo usando el Google Cloud Consola:
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en la instancia problemática y luego haga clic en Crear similar .
Especifique un nombre para la instancia de reemplazo. En la sección Disco de arranque , haga clic en Cambiar y luego haga clic en Discos existentes . Seleccione el nuevo disco.
Haga clic en Crear . La instancia de reemplazo se inicia automáticamente después de su creación.
A medida que se inicia la instancia de reemplazo, el script temporal
rc.local
se ejecuta e instala el entorno invitado. Para observar el progreso de este script, inspeccione los registros de la consola en busca de líneas emitidas por el script temporalrc.local
. Para ver registros, ejecute el siguiente comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Reemplace REPLACEMENT_VM_NAME con el nombre que asignó a la instancia de reemplazo.
La instancia de reemplazo también se reinicia automáticamente cuando finaliza el script temporal
rc.local
. Durante el segundo reinicio, puede inspeccionar el registro de la consola para asegurarse de que se cargue el entorno invitado.Verifique que pueda conectarse a la instancia mediante SSH .
Cuando esté satisfecho de que la instancia de reemplazo funciona, puede detener o eliminar la instancia problemática.
Asegúrese de que la versión de su sistema operativo sea compatible
Cree una nueva instancia para que sirva como instancia de rescate. Nombra esta instancia como rescate . No es necesario que esta instancia de rescate ejecute el mismo sistema operativo Linux que la instancia problemática. Este ejemplo utiliza Debian 9 en la instancia de rescate.
Detenga la instancia problemática y cree una copia de su disco de arranque.
Establezca un nombre de variable para la instancia problemática. Esto hace que sea más fácil hacer referencia a la instancia en pasos posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Reemplace VM_NAME con el nombre de la instancia problemática.
Detenga la instancia problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenga el nombre del disco de arranque para la instancia del problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Cree una instantánea del disco de arranque.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Cree un nuevo disco a partir de la instantánea.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Eliminar la instantánea:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Adjunte el nuevo disco a la instancia de rescate y monte el volumen raíz para la instancia de rescate. Debido a que este procedimiento solo adjunta un disco adicional, el identificador de dispositivo del nuevo disco es /dev/sdb . Ubuntu etiqueta su volumen raíz 1 de forma predeterminada, por lo que el identificador de volumen debe ser /dev/sdb1 . Para casos personalizados, utilice
lsblk
para determinar el identificador de volumen.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conéctese a la instancia de rescate usando SSH :
gcloud compute ssh rescue
Ejecute los siguientes pasos en la instancia de rescate.
Monte el volumen raíz del nuevo disco.
export NEW_DISK_MOUNT_POINT="/tmp/sdb-root-vol" DEV="/dev/sdb1" sudo mkdir "$NEW_DISK_MOUNT_POINT" sudo mount "$DEV" "$NEW_DISK_MOUNT_POINT"
Cree el script
rc.local
.cat <<'EOF' >/tmp/rc.local #!/bin/bash echo "== Installing a Linux guest environment for Ubuntu ==" sleep 30 # Wait for network. echo "Running apt update..." apt update echo "Installing packages..." echo "Running apt install google-compute-engine..." apt install -y google-compute-engine if [[ $? -ne 0 ]]; then echo "ERROR: Failed to install ${pkg}." fi echo "Removing this rc.local script." rm /etc/rc.local # Move back any previous rc.local: if [[ -f "/etc/moved-rc.local" ]]; then echo "Restoring a previous rc.local script." mv "/etc/moved-rc.local" "/etc/rc.local" fi echo "Restarting the instance..." reboot EOF
Mueva el script
rc.local
al volumen raíz del nuevo disco y establezca los permisos. Deje a un lado cualquier scriptrc.local
existente. El script temporal lo reemplazará cuando finalice.if [[ -f "$NEW_DISK_MOUNT_POINT/etc/rc.local" ]]; then sudo mv "$NEW_DISK_MOUNT_POINT/etc/rc.local" \ "$NEW_DISK_MOUNT_POINT/etc/moved-rc.local" fi sudo mv /tmp/rc.local "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chmod 0755 "$NEW_DISK_MOUNT_POINT/etc/rc.local" sudo chown root:root "$NEW_DISK_MOUNT_POINT/etc/rc.local"
Desmonte el volumen raíz del nuevo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Salga de la sesión SSH a la instancia de rescate.
Separe el nuevo disco de la instancia de rescate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Cree una nueva instancia para que sirva como reemplazo. Cuando cree la instancia de reemplazo, especifique el nuevo disco como disco de arranque. Puede crear la instancia de reemplazo usando el Google Cloud Consola:
En la consola de Google Cloud, vaya a la página de instancias de VM .
Haga clic en la instancia problemática y luego haga clic en Crear similar .
Especifique un nombre para la instancia de reemplazo. En la sección Disco de arranque , haga clic en Cambiar y luego haga clic en Discos existentes . Seleccione el nuevo disco.
Haga clic en Crear . La instancia de reemplazo se inicia automáticamente después de su creación.
A medida que se inicia la instancia de reemplazo, el script temporal
rc.local
se ejecuta e instala el entorno invitado. Para observar el progreso de este script, inspeccione los registros de la consola en busca de líneas emitidas por el script temporalrc.local
. Para ver registros, ejecute el siguiente comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Reemplace REPLACEMENT_VM_NAME con el nombre que asignó a la instancia de reemplazo.
La instancia de reemplazo también se reinicia automáticamente cuando finaliza el script temporal
rc.local
. Durante el segundo reinicio, puede inspeccionar el registro de la consola para asegurarse de que se cargue el entorno invitado.Verifique que pueda conectarse a la instancia mediante SSH .
Cuando esté satisfecho de que la instancia de reemplazo funciona, puede detener o eliminar la instancia problemática.
En la consola de Google Cloud, vaya a la página de instancias de VM .
- Haga clic en la instancia que necesita examinar.
- Reinicie o restablezca la instancia .
- En Registros , haga clic en Puerto serie 1 (consola) .
- Busque el resultado esperado haciendo referencia a la tabla anterior.
- Reinicie o restablezca la instancia .
Utilice el subcomando
gcloud compute instances get-serial-port-output
para conectarse mediante la CLI de Google Cloud. Por ejemplo:gcloud compute instances get-serial-port-output VM_NAME
Reemplace VM_NAME con el nombre de la instancia que necesita examinar.
Busque el resultado esperado haciendo referencia a la tabla anterior.
- Lea los consejos para la solución de problemas .
- Obtenga más información sobre la aplicación de metadatos .
- Obtenga más información sobre las claves SSH .
Métodos de instalación
Hay varias formas de instalar el entorno de invitados. Elija una de las siguientes opciones:
Sistemas operativos compatibles
Puede instalar manualmente el entorno invitado en máquinas virtuales que usan versiones de imagen del sistema operativo que se encuentran en la etapa del ciclo de vida de disponibilidad general (GA) o del ciclo de vida de soporte extendido . Para revisar una lista de versiones de imágenes del sistema operativo y su etapa del ciclo de vida en Compute Engine, consulta Detalles del sistema operativo .
Limitaciones
No puede instalar ni utilizar manualmente la herramienta de importación para instalar entornos invitados para Fedora CoreOS y sistemas operativos optimizados para contenedores. Si necesita uno de estos sistemas operativos, le recomendamos que utilice imágenes públicas , porque se incluye un entorno invitado como parte central de todas las imágenes públicas.
Instalación del entorno de invitados
Instalar el entorno de invitados en el lugar
Utilice este método para instalar el entorno invitado si puede conectarse a la instancia de destino mediante SSH. Si no puede conectarse a la instancia para instalar el entorno invitado, puede instalarlo clonando su disco de inicio y usando un script de inicio .
Este procedimiento es útil para imágenes importadas si puede conectarse mediante autenticación basada en contraseña SSH. También podría usarse para reinstalar el entorno invitado si tiene al menos una cuenta de usuario con SSH basado en clave funcional.
CentOS/RHEL/Rocky
Debian
ubuntu
LES
ventanas
Antes de comenzar, asegúrese de que la versión de su sistema operativo sea compatible .
Para instalar el entorno invitado de Windows , ejecute los siguientes comandos en un indicador elevado de PowerShell versión 3.0 o superior. El comando
Invoke-WebRequest
en las instrucciones siguientes requiere una versión de PowerShell superior a 3.0.Clonar el disco de arranque y usar el script de inicio
Si no puede conectarse a una instancia para instalar manualmente el entorno invitado, instale el entorno invitado mediante este procedimiento, que incluye los siguientes pasos que se pueden completar en el Google Cloud consola o Cloud Shell.
Este método muestra el procedimiento solo para distribuciones de Linux. Para Windows, utilice uno de los otros dos métodos de instalación .
Utilice Cloud Shell para ejecutar este procedimiento. Si no utiliza Cloud Shell, instale el procesador JSON de línea de comandos
jq
. Puedes usar este procesador para filtrar la salida de la CLI de gcloud. Cloud Shell tienejq
preinstalado.CentOS/RHEL/Rocky
Debian
ubuntu
Actualización del entorno de invitados
Si recibe un mensaje que indica que el entorno invitado está desactualizado, actualice los paquetes de su sistema operativo.
CentOS/RHEL/Rocky
Para actualizar los sistemas operativos CentOS, RHEL y Rocky Linux, ejecute los siguientes comandos:
sudo yum makecache sudo yum install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
Debian
Para actualizar los sistemas operativos Debian, ejecute los siguientes comandos:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
ubuntu
Para actualizar los sistemas operativos Ubuntu, ejecute los siguientes comandos:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
LES
Para actualizar los sistemas operativos SLES, ejecute los siguientes comandos:
sudo zypper refresh sudo zypper install google-guest-{agent,configs,oslogin} \ google-osconfig-agent
ventanas
Para actualizar los sistemas operativos Windows, ejecute el siguiente comando:
googet update
Validar el entorno del huésped
La presencia de un entorno invitado se puede determinar inspeccionando los registros del sistema emitidos a la consola mientras se inicia una instancia o enumerando los paquetes instalados mientras está conectado a la instancia.
Registros de consola esperados para el entorno invitado
Esta tabla resume el resultado esperado para los registros de consola emitidos por instancias con entornos invitados en funcionamiento a medida que se inician.
Sistema operativo Gestión de servicios Salida esperada CentOS/RHEL/Rocky Linux
Debian
ubuntu
LES
OS 89 optimizado para contenedores y versiones posterioressistemad google_guest_agent: GCE Agent Started (version YYYYMMDD.NN) google_metadata_script_runner: Starting startup scripts (version YYYYMMDD.NN) OSConfigAgent Info: OSConfig Agent (version YYYYMMDD.NN)
Sistema operativo optimizado para contenedores 85 y anteriores sistemad Started Google Compute Engine Accounts Daemon Started Google Compute Engine Network Daemon Started Google Compute Engine Clock Skew Daemon Started Google Compute Engine Instance Setup Started Google Compute Engine Startup Scripts Started Google Compute Engine Shutdown Scripts
ventanas GCEGuestAgent: GCE Agent Started (version YYYYMMDD.NN) GCEMetadataScripts: Starting startup scripts (version YYYYMMDD.NN) OSConfigAgent Info: OSConfig Agent (version YYYYMMDD.NN)
Para ver los registros de la consola de una instancia, siga estos pasos.
Consola
nube de gcloud
Servicios cargados para el entorno del huésped.
Esta tabla resume los servicios que se deben cargar en instancias con entornos invitados de trabajo. El comando para enumerar servicios debe ejecutarse después de conectarse a la instancia, por lo que esta verificación solo se puede realizar si tiene acceso a ella.
Sistema operativo Comando para listar servicios Salida esperada CentOS/RHEL/Rocky Linux
Debiansudo systemctl list-unit-files \ | grep google | grep enabled
google-disk-expand.service enabled google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
ubuntu sudo systemctl list-unit-files \ | grep google | grep enabled
google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
SO optimizado para contenedores sudo systemctl list-unit-files \ | grep google
var-lib-google.mount disabled google-guest-agent.service disabled google-osconfig-agent.service disabled google-osconfig-init.service disabled google-oslogin-cache.service static google-shutdown-scripts.service disabled google-startup-scripts.service disabled var-lib-google-remount.service static google-oslogin-cache.timer disabled
LES 12+ sudo systemctl list-unit-files \ | grep google | grep enabled
google-guest-agent.service enabled google-osconfig-agent.service enabled google-shutdown-scripts.service enabled google-startup-scripts.service enabled google-oslogin-cache.timer enabled
ventanas Get-Service GCEAgent Get-ScheduledTask GCEStartup
Running GCEAgent GCEAgent \ GCEStartup Ready
Paquetes instalados para el entorno de invitados.
Esta tabla resume los paquetes que deben instalarse en instancias con entornos invitados en funcionamiento. El comando para enumerar los paquetes instalados debe ejecutarse después de conectarse a la instancia, por lo que esta verificación solo se puede realizar si tiene acceso a ella.
Sistema operativo Comando para listar paquetes Salida esperada CentOS/RHEL/Rocky Linux rpm -qa --queryformat '%{NAME}\n' \ | grep -iE 'google|gce'
google-osconfig-agent google-compute-engine-oslogin google-guest-agent gce-disk-expand google-cloud-sdk google-compute-engine
Debian apt list --installed \ | grep -i google
gce-disk-expand google-cloud-packages-archive-keyring google-cloud-sdk google-compute-engine-oslogin google-compute-engine google-guest-agent google-osconfig-agent
ubuntu apt list --installed \ | grep -i google
google-compute-engine-oslogin google-compute-engine google-guest-agent google-osconfig-agent
SUSE (SLES) rpm -qa --queryformat '%{NAME}\n' \ | grep -i google
google-guest-configs google-osconfig-agent google-guest-oslogin google-guest-agent
ventanas googet installed
certgen googet google-compute-engine-auto-updater google-compute-engine-driver-gga google-compute-engine-driver-netkvm google-compute-engine-driver-pvpanic google-compute-engine-driver-vioscsi google-compute-engine-metadata-scripts google-compute-engine-powershell google-compute-engine-sysprep google-compute-engine-vss google-compute-engine-windows google-osconfig-agent
¿Qué sigue?
A menos que se indique lo contrario, el contenido de esta página está sujeto a la licencia Reconocimiento 4.0 de Creative Commons y las muestras de código están sujetas a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio web de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2025-04-21 (UTC).
-