Esta página descreve como instalar manualmente o ambiente convidado para instâncias de máquina virtual (VM) que executam imagens personalizadas no Compute Engine.
Na maioria dos casos, se você estiver usando VMs criadas com imagens públicas fornecidas pelo Google, não será necessário instalar um ambiente convidado. Para obter informações sobre quando usar o ambiente convidado, consulte Quando instalar ou atualizar manualmente o ambiente convidado .
Antes de instalar manualmente o ambiente convidado, use o procedimento Validar o ambiente convidado para verificar se o ambiente convidado está em execução na sua VM. Se o ambiente convidado estiver disponível na sua VM, mas estiver desatualizado, atualize o ambiente convidado .
Antes de começar
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar no Compute Engine selecionando uma das seguintes opções:
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.
Ferramenta de importação . Esta é a opção recomendada. No entanto, lembre-se de que a ferramenta de importação não apenas instala o ambiente convidado, mas também faz outras atualizações de configuração na imagem, como configuração de redes, configuração do bootloader e instalação da CLI do Google Cloud. Para obter instruções sobre como usar a ferramenta de importação, consulte Tornando uma imagem inicializável .
A ferramenta de importação oferece suporte a uma ampla variedade de sistemas operacionais e versões. Para obter mais informações, consulte detalhes do sistema operacional .
Instalação manual . Escolha um dos seguintes:
- Conecte-se à sua instância usando SSH ou RDP e instale o ambiente convidado no local
- Clone seu disco de inicialização e instale o ambiente convidado usando um script de inicialização
- Certifique-se de que a versão do seu sistema operacional seja suportada .
Determine a versão do CentOS/RHEL/Rocky Linux e crie o arquivo repositório de origem,
/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
Atualizar listas de pacotes:
sudo yum makecache sudo yum updateinfo
Instale os pacotes do ambiente convidado:
sudo yum install -y google-compute-engine google-osconfig-agent
Reinicie a instância e inspecione o log do console para garantir que o ambiente convidado seja carregado durante a inicialização do backup.
Verifique se você pode se conectar à instância usando SSH .
- Certifique-se de que a versão do seu sistema operacional seja suportada .
Instale a chave GPG do repositório público:
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
Determine o nome da distribuição Debian e crie o arquivo da lista de fontes,
/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
Atualizar listas de pacotes:
sudo apt update
Instale os pacotes do ambiente convidado:
sudo apt install -y google-cloud-packages-archive-keyring sudo apt install -y google-compute-engine google-osconfig-agent
Reinicie a instância e inspecione o log do console para garantir que o ambiente convidado seja carregado durante a inicialização do backup.
Verifique se você pode se conectar à instância usando SSH .
Certifique-se de que a versão do seu sistema operacional seja suportada .
Habilite o repositório Universe . A Canonical publica pacotes para seu ambiente convidado no repositório Universe.
sudo apt-add-repository universe
Atualizar listas de pacotes:
sudo apt update
Instale os pacotes do ambiente convidado:
sudo apt install -y google-compute-engine google-osconfig-agent
Reinicie a instância e inspecione o log do console para garantir que o ambiente convidado seja carregado durante a inicialização do backup.
Verifique se você pode se conectar à instância usando SSH .
Certifique-se de que a versão do seu sistema operacional seja suportada .
Ative o Módulo Nuvem Pública .
product=$(sudo SUSEConnect --list-extensions | grep -o "sle-module-public-cloud.*") [[ -n "$product" ]] && sudo SUSEConnect -p "$product"
Atualizar listas de pacotes:
sudo zypper refresh
Instale os pacotes do ambiente convidado:
sudo zypper install -y google-guest-{agent,configs,oslogin} \ google-osconfig-agent sudo systemctl enable /usr/lib/systemd/system/google-*
Reinicie a instância e inspecione o log do console para garantir que o ambiente convidado seja carregado durante a inicialização do backup.
Verifique se você pode se conectar à instância usando SSH .
Baixe e instale
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 a instalação,
GooGet
adiciona conteúdo ao ambiente do sistema. Após a conclusão da instalação, inicie um novo console do PowerShell ou forneça o caminho completo para o arquivogooget.exe
(C:\ProgramData\GooGet\googet.exe).Abra um novo console e adicione o repositório
google-compute-engine-stable
.googet addrepo google-compute-engine-stable https://packages.cloud.google.com/yuck/repos/google-compute-engine-stable
Instale os principais pacotes do ambiente convidado do 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 o pacote opcional de ambiente convidado do Windows.
googet -noconfirm install google-compute-engine-auto-updater
Usando o comando
googet
.Para visualizar os pacotes disponíveis, execute o comando
googet available
.Para visualizar os pacotes instalados, execute o comando
googet installed
.Para atualizar para a versão mais recente do pacote, execute o comando
googet update
.Para visualizar comandos adicionais, execute
googet help
.Certifique-se de que a versão do seu sistema operacional seja suportada .
Crie uma nova instância para servir como instância de resgate. Nomeie esta instância como resgate . Esta instância de resgate não precisa executar o mesmo sistema operacional Linux que a instância problemática. Este exemplo usa o Debian 9 na instância de resgate.
Pare a instância problemática e crie uma cópia do seu disco de inicialização.
Defina um nome de variável para a instância problemática. Isso facilita a referência à instância em etapas posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Substitua VM_NAME pelo nome da instância problemática.
Pare a instância problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenha o nome do disco de inicialização da instância com problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Crie um instantâneo do disco de inicialização.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Crie um novo disco a partir do instantâneo.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Exclua o instantâneo:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Anexe o novo disco à instância de resgate e monte o volume raiz da instância de resgate. Como este procedimento anexa apenas um disco adicional, o identificador de dispositivo do novo disco é /dev/sdb . CentOS/RHEL/Rocky Linux usa o primeiro volume em um disco como volume raiz por padrão, portanto, o identificador do volume deve ser /dev/sdb1 . Para casos customizados, use
lsblk
para determinar o identificador de volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conecte-se à instância de resgate usando SSH :
gcloud compute ssh rescue
Execute as etapas a seguir na instância de resgate.
Monte o volume raiz do novo 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"
Crie o 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
Mova o script
rc.local
para o volume raiz do novo disco e defina as permissões. Mova qualquer scriptrc.local
existente para o lado. O script temporário irá substituí-lo quando terminar.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 o volume raiz do novo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir \ "$NEW_DISK_MOUNT_POINT"
Saia da sessão SSH para a instância de resgate.
Desconecte o novo disco da instância de resgate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Crie uma instância para servir como substituição. Ao criar a instância de substituição, especifique o novo disco como disco de inicialização. Você pode criar a instância de substituição usando o Google Cloud Console:
No console do Google Cloud, acesse a página de instâncias de VM .
Clique na instância problemática e em Criar semelhante .
Especifique um nome para a instância de substituição. Na seção Disco de inicialização , clique em Alterar e em Discos existentes . Selecione o novo disco.
Clique em Criar . A instância de substituição é iniciada automaticamente após ser criada.
À medida que a instância de substituição é iniciada, o script
rc.local
temporário é executado e instala o ambiente convidado. Para observar o progresso deste script, inspecione os logs do console em busca de linhas emitidas pelo scriptrc.local
temporário. Para visualizar os logs, execute o seguinte comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Substitua REPLACEMENT_VM_NAME pelo nome que você atribuiu à instância de substituição.
A instância de substituição também é reinicializada automaticamente quando o script
rc.local
temporário é concluído. Durante a segunda reinicialização, você pode inspecionar o log do console para garantir que o ambiente convidado seja carregado.Verifique se você pode se conectar à instância usando SSH .
Quando estiver satisfeito com o funcionamento da instância de substituição, você poderá interromper ou excluir a instância problemática.
Certifique-se de que a versão do seu sistema operacional seja compatível
Crie uma nova instância para servir como instância de resgate. Nomeie esta instância como resgate . Esta instância de resgate não precisa executar o mesmo sistema operacional Linux que a instância problemática. Este exemplo usa o Debian 9 na instância de resgate.
Pare a instância problemática e crie uma cópia do seu disco de inicialização.
Defina um nome de variável para a instância problemática. Isso facilita a referência à instância em etapas posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Substitua VM_NAME pelo nome da instância problemática.
Pare a instância problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenha o nome do disco de inicialização da instância com problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Crie um instantâneo do disco de inicialização.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Crie um novo disco a partir do instantâneo.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Exclua o instantâneo:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Anexe o novo disco à instância de resgate e monte o volume raiz da instância de resgate. Como este procedimento anexa apenas um disco adicional, o identificador de dispositivo do novo disco é /dev/sdb . O Debian usa o primeiro volume em um disco como volume raiz por padrão, então o identificador do volume deve ser /dev/sdb1 . Para casos customizados, use
lsblk
para determinar o identificador de volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conecte-se à instância de resgate usando SSH :
gcloud compute ssh rescue
Execute as etapas a seguir na instância de resgate.
Monte o volume raiz do novo 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"
Crie o 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
Mova o script
rc.local
para o volume raiz do novo disco e defina as permissões. Mova qualquer scriptrc.local
existente para o lado. O script temporário irá substituí-lo quando terminar.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 o volume raiz do novo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Saia da sessão SSH para a instância de resgate.
Desconecte o novo disco da instância de resgate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Crie uma nova instância para servir como substituta. Ao criar a instância de substituição, especifique o novo disco como disco de inicialização. Você pode criar a instância de substituição usando o Google Cloud Console:
No console do Google Cloud, acesse a página de instâncias de VM .
Clique na instância problemática e em Criar semelhante .
Especifique um nome para a instância de substituição. Na seção Disco de inicialização , clique em Alterar e em Discos existentes . Selecione o novo disco.
Clique em Criar . A instância de substituição é iniciada automaticamente após ser criada.
À medida que a instância de substituição é iniciada, o script
rc.local
temporário é executado e instala o ambiente convidado. Para observar o progresso deste script, inspecione os logs do console em busca de linhas emitidas pelo scriptrc.local
temporário. Para visualizar os logs, execute o seguinte comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Substitua REPLACEMENT_VM_NAME pelo nome que você atribuiu à instância de substituição.
A instância de substituição também é reinicializada automaticamente quando o script
rc.local
temporário é concluído. Durante a segunda reinicialização, você pode inspecionar o log do console para garantir que o ambiente convidado seja carregado.Verifique se você pode se conectar à instância usando SSH .
Quando estiver satisfeito com o funcionamento da instância de substituição, você poderá interromper ou excluir a instância problemática.
Certifique-se de que a versão do seu sistema operacional seja compatível
Crie uma nova instância para servir como instância de resgate. Nomeie esta instância como resgate . Esta instância de resgate não precisa executar o mesmo sistema operacional Linux que a instância problemática. Este exemplo usa o Debian 9 na instância de resgate.
Pare a instância problemática e crie uma cópia do seu disco de inicialização.
Defina um nome de variável para a instância problemática. Isso facilita a referência à instância em etapas posteriores.
export PROB_INSTANCE_NAME=VM_NAME
Substitua VM_NAME pelo nome da instância problemática.
Pare a instância problemática.
gcloud compute instances stop "$PROB_INSTANCE_NAME"
Obtenha o nome do disco de inicialização da instância com problema.
export PROB_INSTANCE_DISK="$(gcloud compute instances describe \ "$PROB_INSTANCE_NAME" --format='json' | jq -r \ '.disks[] | select(.boot == true) | .source')"
Crie um instantâneo do disco de inicialização.
export DISK_SNAPSHOT="${PROB_INSTANCE_NAME}-snapshot" gcloud compute disks snapshot "$PROB_INSTANCE_DISK" \ --snapshot-names "$DISK_SNAPSHOT"
Crie um novo disco a partir do instantâneo.
export NEW_DISK="${PROB_INSTANCE_NAME}-new-disk" gcloud compute disks create "$NEW_DISK" \ --source-snapshot="$DISK_SNAPSHOT"
Exclua o instantâneo:
gcloud compute snapshots delete "$DISK_SNAPSHOT"
Anexe o novo disco à instância de resgate e monte o volume raiz da instância de resgate. Como este procedimento anexa apenas um disco adicional, o identificador de dispositivo do novo disco é /dev/sdb . O Ubuntu rotula seu volume raiz como 1 por padrão, então o identificador do volume deve ser /dev/sdb1 . Para casos customizados, use
lsblk
para determinar o identificador de volume.gcloud compute instances attach-disk rescue --disk "$NEW_DISK"
Conecte-se à instância de resgate usando SSH :
gcloud compute ssh rescue
Execute as etapas a seguir na instância de resgate.
Monte o volume raiz do novo 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"
Crie o 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
Mova o script
rc.local
para o volume raiz do novo disco e defina as permissões. Mova qualquer scriptrc.local
existente para o lado. O script temporário irá substituí-lo quando terminar.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 o volume raiz do novo disco.
sudo umount "$NEW_DISK_MOUNT_POINT" && sudo rmdir "$NEW_DISK_MOUNT_POINT"
Saia da sessão SSH para a instância de resgate.
Desconecte o novo disco da instância de resgate.
gcloud compute instances detach-disk rescue --disk "$NEW_DISK"
Crie uma nova instância para servir como substituta. Ao criar a instância de substituição, especifique o novo disco como disco de inicialização. Você pode criar a instância de substituição usando o Google Cloud Console:
No console do Google Cloud, acesse a página de instâncias de VM .
Clique na instância problemática e em Criar semelhante .
Especifique um nome para a instância de substituição. Na seção Disco de inicialização , clique em Alterar e em Discos existentes . Selecione o novo disco.
Clique em Criar . A instância de substituição é iniciada automaticamente após ser criada.
À medida que a instância de substituição é iniciada, o script
rc.local
temporário é executado e instala o ambiente convidado. Para observar o progresso deste script, inspecione os logs do console em busca de linhas emitidas pelo scriptrc.local
temporário. Para visualizar os logs, execute o seguinte comando:gcloud compute instances get-serial-port-output REPLACEMENT_VM_NAME
Substitua REPLACEMENT_VM_NAME pelo nome que você atribuiu à instância de substituição.
A instância de substituição também é reinicializada automaticamente quando o script
rc.local
temporário é concluído. Durante a segunda reinicialização, você pode inspecionar o log do console para garantir que o ambiente convidado seja carregado.Verifique se você pode se conectar à instância usando SSH .
Quando estiver satisfeito com o funcionamento da instância de substituição, você poderá interromper ou excluir a instância problemática.
No console do Google Cloud, acesse a página de instâncias de VM .
- Clique na instância que você deseja examinar.
- Reinicie ou redefina a instância .
- Em Logs , clique em Porta serial 1 (console) .
- Procure a saída esperada referenciando a tabela acima.
- Reinicie ou redefina a instância .
Use o subcomando
gcloud compute instances get-serial-port-output
para se conectar usando a CLI do Google Cloud. Por exemplo:gcloud compute instances get-serial-port-output VM_NAME
Substitua VM_NAME pelo nome da instância que você precisa examinar.
Procure a saída esperada referenciando a tabela acima.
- Leia as dicas de solução de problemas .
- Saiba mais sobre como aplicar metadados .
- Saiba mais sobre chaves SSH .
Métodos de instalação
Existem várias maneiras de instalar o ambiente convidado. Escolha uma das seguintes opções:
Sistemas operacionais suportados
Você pode instalar manualmente o ambiente convidado em VMs que usam versões de imagem do sistema operacional que estão no ciclo de vida de disponibilidade geral (GA) ou no estágio do ciclo de vida de suporte estendido . Para revisar uma lista de versões de imagens do SO e o estágio do ciclo de vida delas no Compute Engine, consulte Detalhes do sistema operacional .
Limitações
Você não pode instalar manualmente ou usar a ferramenta de importação para instalar ambientes convidados para Fedora CoreOS e sistemas operacionais otimizados para Container. Se você precisar de um desses sistemas operacionais, recomendamos usar imagens públicas , pois um ambiente convidado é incluído como parte central de todas as imagens públicas.
Instalando o ambiente convidado
Instale o ambiente convidado no local
Use este método para instalar o ambiente convidado se você puder se conectar à instância de destino usando SSH. Se não for possível se conectar à instância para instalar o ambiente convidado, você poderá instalar o ambiente convidado clonando seu disco de inicialização e usando um script de inicialização .
Este procedimento é útil para imagens importadas se você puder se conectar usando autenticação baseada em senha SSH. Também poderá ser usado para reinstalar o ambiente convidado se você tiver pelo menos uma conta de usuário com SSH funcional baseado em chave.
CentOS/RHEL/Rocky
Debian
Ubuntu
SLES
Windows
Antes de começar, certifique-se de que a versão do seu sistema operacional seja compatível .
Para instalar o ambiente convidado do Windows , execute os seguintes comandos em um prompt elevado do PowerShell versão 3.0 ou superior. O comando
Invoke-WebRequest
nas instruções abaixo requer uma versão do PowerShell superior a 3.0.Clone o disco de inicialização e use o script de inicialização
Se você não conseguir se conectar a uma instância para instalar manualmente o ambiente convidado, instale o ambiente convidado usando este procedimento, que inclui as etapas a seguir que podem ser concluídas no Google Cloud console ou Cloud Shell.
Este método mostra o procedimento apenas para distribuições Linux. Para Windows, use um dos outros dois métodos de instalação .
Use o Cloud Shell para executar este procedimento. Se você não estiver usando o Cloud Shell, instale o processador JSON de linha de comando
jq
. Você pode usar esse processador para filtrar a saída da CLI gcloud. O Cloud Shell temjq
pré-instalado.CentOS/RHEL/Rocky
Debian
Ubuntu
Atualizando o ambiente convidado
Se você receber uma mensagem informando que o ambiente convidado está desatualizado, atualize os pacotes do seu sistema operacional.
CentOS/RHEL/Rocky
Para atualizar os sistemas operacionais CentOS, RHEL e Rocky Linux, execute os seguintes comandos:
sudo yum makecache sudo yum install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
Debian
Para atualizar os sistemas operacionais Debian, execute os seguintes comandos:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
Ubuntu
Para atualizar os sistemas operacionais Ubuntu, execute os seguintes comandos:
sudo apt update sudo apt install google-compute-engine google-compute-engine-oslogin \ google-guest-agent google-osconfig-agent
SLES
Para atualizar os sistemas operacionais SLES, execute os seguintes comandos:
sudo zypper refresh sudo zypper install google-guest-{agent,configs,oslogin} \ google-osconfig-agent
Windows
Para atualizar os sistemas operacionais Windows, execute o seguinte comando:
googet update
Validando o ambiente convidado
A presença de um ambiente convidado pode ser determinada inspecionando os logs do sistema emitidos para o console enquanto uma instância é inicializada ou listando os pacotes instalados enquanto conectado à instância.
Logs de console esperados para o ambiente convidado
Esta tabela resume a saída esperada para logs de console emitidos por instâncias com ambientes convidados em funcionamento à medida que são inicializadas.
Sistema operacional Gerenciamento de serviços Resultado esperado CentOS/RHEL/Rocky Linux
Debian
Ubuntu
SLES
Container-Optimized OS 89 e mais recentesistema 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)
Container-Optimized OS 85 e anteriores sistema 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
Windows GCEGuestAgent: GCE Agent Started (version YYYYMMDD.NN) GCEMetadataScripts: Starting startup scripts (version YYYYMMDD.NN) OSConfigAgent Info: OSConfig Agent (version YYYYMMDD.NN)
Para visualizar os logs do console de uma instância, siga estas etapas.
Console
gcloud
Serviços carregados para o ambiente convidado
Esta tabela resume os serviços que devem ser carregados em instâncias com ambientes convidados em funcionamento. O comando para listar serviços deve ser executado após a conexão com a instância, portanto esta verificação só poderá ser realizada se você tiver acesso a ela.
Sistema operacional Comando para listar serviços Resultado esperado 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 otimizado para contêiner 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
SLES 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
Windows Get-Service GCEAgent Get-ScheduledTask GCEStartup
Running GCEAgent GCEAgent \ GCEStartup Ready
Pacotes instalados para o ambiente convidado
Esta tabela resume os pacotes que devem ser instalados em instâncias com ambientes convidados funcionais. O comando para listar os pacotes instalados deve ser executado após a conexão com a instância, portanto esta verificação só poderá ser realizada se você tiver acesso a ela.
Sistema operacional Comando para listar pacotes Resultado esperado 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
Windows 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
O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-