O Gestor de extensões de VMs usa políticas de extensões para gerir as extensões de VMs em grande escala. Para mais informações, consulte o artigo Acerca do Gestor de extensões de VMs. Este documento descreve como ver, atualizar e eliminar políticas de extensões de VMs.
Funções e autorizações do IAM
Para receber as autorizações de que precisa para ver, modificar e eliminar políticas de extensões de VMs, peça ao seu administrador para lhe conceder as seguintes funções do IAM no projeto:
-
Para ver as políticas de extensões:
-
Visualizador de políticas de extensões de VMs (
roles/compute.vmExtensionPolicyViewer) -
Administrador da política de extensões de VMs (
roles/compute.vmExtensionPolicyAdmin)
-
Visualizador de políticas de extensões de VMs (
-
Para modificar as políticas de extensões:
Administrador da política de extensões de VMs (
roles/compute.vmExtensionPolicyAdmin) -
Para eliminar políticas de extensões:
Administrador da política de extensões de VMs (
roles/compute.vmExtensionPolicyAdmin)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para ver, modificar e eliminar políticas de extensões de VMs. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para ver, modificar e eliminar políticas de extensões de VMs:
-
Para ver as políticas de extensões:
compute.vmExtensionPolicies.list -
Para ver os detalhes de uma política de extensões:
compute.vmExtensionPolicies.get -
Para modificar as políticas de extensão:
compute.vmExtensionPolicies.update -
Para eliminar políticas de extensão:
compute.vmExtensionPolicies.delete
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Para mais informações sobre as funções e as autorizações de IAM no Compute Engine, consulte o artigo Funções e autorizações do Compute Engine.
Veja as políticas de extensões
Pode ver uma lista de políticas de extensões de VMs no seu projeto ou ver os detalhes de uma política específica através da consola Google Cloud ou da CLI Google Cloud.
Consola
- Na Google Cloud consola, aceda à página Políticas de extensão de VMs. Esta página lista todas as políticas de extensões de VMs no seu projeto.
- Para ver os detalhes de uma política de extensões específica, clique no nome da política.
gcloud
Para ver todas as políticas de extensões num projeto, use o comando gcloud beta compute zone-vm-extension-policies list:
gcloud beta compute zone-vm-extension-policies list \ --project=PROJECT_ID \ --zone=ZONE \ --page-size=PAGE_SIZE
Substitua o seguinte:
PROJECT_ID: o ID do seu projeto Google Cloud .ZONE: o nome da zona onde quer listar as políticas de extensões de VMs.PAGE_SIZE: o número máximo de resultados a devolver por página.
Para ver os detalhes de uma política de extensões específica, use o comando gcloud beta compute zone-vm-extension-policies describe:
gcloud beta compute zone-vm-extension-policies describe POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Substitua o seguinte:
POLICY_NAME: o nome da política de extensão de VM que quer descrever.PROJECT_ID: o ID do seu Google Cloud projeto.ZONE: a Google Cloud zona onde se encontra a política de extensão de VM.
Modifique as extensões atualizando uma política de extensão de VM
Quando atualiza uma política, o VM Extension Manager implementa as alterações em todas as VMs aplicáveis, normalmente no prazo de um minuto. Se modificar as etiquetas de inclusão, as extensões podem ser instaladas em novas VMs ou desinstaladas de VMs existentes, consoante correspondam às etiquetas atualizadas.
Consola
- Na Google Cloud consola, aceda à página Políticas de extensão de VMs.
- Selecione a política que quer atualizar.
- Clique em Edit.
- Modifique a Descrição, a Prioridade, as Extensões ou as Instâncias de VM de destino.
- Clique em Guardar.
gcloud
Use o comando gcloud beta compute zone-vm-extension-policies update para modificar uma política de extensão de VM existente. Quando atualiza uma política através do gcloud, o pedido funciona como uma substituição completa. Todos os campos opcionais que omitir revertem para os respetivos valores predefinidos, em vez de manterem os valores existentes da política modificada.
Para atualizar uma política de extensão de VM, execute o seguinte comando:
gcloud beta compute zone-vm-extension-policies update POLICY_NAME \ --zone=ZONE \ --extensions=EXTENSION_NAME_1,EXTENSION_NAME_2 \ --version=EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2 \ --config-from-file=EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2 \ --inclusion-labels=KEY_1=VALUE_1 \ --priority=PRIORITY_NUMBER \ --description="DESCRIPTION"
Substitua o seguinte:
POLICY_NAME: o nome da política de extensão de VM a atualizar.ZONE: a Google Cloud zona onde a política se aplica.EXTENSION_NAME_1,EXTENSION_NAME_2: os nomes das extensões a atualizar. Tem de especificar, pelo menos, uma extensão.VERSION_1: a versão da primeira extensão de VM.VERSION_2: a versão da segunda extensão de VM.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: uma lista de pares de chave-valor separados por vírgulas em que a chave é o nome da extensão e o valor é o caminho para o ficheiro de configuração dessa extensão. Este caminho está na VM onde executa o comandogcloude não na VM onde instala a extensão.Em alternativa, para fornecer a configuração como uma string inline, use a flag
--configem vez de--config-from-file, por exemplo,EXTENSION_NAME_1="CONFIG_1". Pode usar--config-from-fileou--config, mas não ambos no mesmo comando.KEY_1=VALUE_1: uma lista separada por vírgulas de pares de chave-valor que definem etiquetas de inclusão para um seletor. As VMs têm de ter todas as etiquetas especificadas num seletor para serem segmentadas. Se especificar--inclusion-labelsvárias vezes, a política segmenta VMs que correspondem a qualquer um dos seletores fornecidos (OU lógico). Se omitir esta flag, a política segmenta todas as VMs na zona especificada.PRIORITY_NUMBER: o número de prioridade da política de extensões de VMs.DESCRIPTION: uma descrição da política de extensões de VMs.
Desinstale extensões eliminando uma política de extensão de VM
Quando elimina uma política, o VM Extension Manager desinstala as extensões de todas as VMs geridas por essa política. No entanto, se outra política ativa de prioridade mais baixa se aplicar a uma VM e declarar a mesma extensão, a extensão permanece instalada nessa VM com base na política de prioridade mais baixa.
O Gestor de extensões de VMs remove as extensões de todas as VMs acessíveis no prazo de um minuto após a eliminação da política. Se uma VM estiver inacessível porque o agente convidado foi removido ou a VM foi eliminada, o Gestor de extensões de VMs ignora a eliminação da extensão. Se essa VM ficar novamente disponível, o VM Extension Manager remove as extensões nesse momento.
Consola
- Na Google Cloud consola, aceda à página Políticas de extensão de VMs.
- Selecione a política que quer eliminar.
- Clique em Eliminar.
- Na caixa de diálogo de confirmação, clique em Eliminar.
gcloud
Use o comando gcloud beta compute zone-vm-extension-policies delete para eliminar uma política de extensão de VM existente.
gcloud beta compute zone-vm-extension-policies delete POLICY_NAME \ --project=PROJECT_ID \ --zone=ZONE
Substitua o seguinte:
POLICY_NAME: o nome da política de extensão de VM que quer eliminar.PROJECT_ID: o ID do seu projeto Google Cloud .ZONE: a Google Cloud zona onde a política se encontra.
Resolva problemas com extensões de VMs
Esta secção descreve como resolver problemas com extensões de VMs.
Confirme se uma extensão está instalada
Pode verificar se uma extensão está instalada verificando o seguinte na VM:
Estabeleça ligação à VM e verifique se existem processos em execução.
A tabela seguinte apresenta os nomes dos processos para cada extensão:
Nome da extensão Nome do processo de extensão google-cloud-sap-extensiongoogle_cloud_sap_agentgoogle-cloud-workload-extensiongoogle_cloud_workload_agentops-agentops-agentLinux
Substituaps aux | grep 'EXTENSION_PROCESS_NAME'
EXTENSION_PROCESS_NAMEpelo nome do processo da extensão. Por exemplo, para verificar o processo do agente de operações, execute o seguinte comando:ps aux | grep 'ops-agent'
Windows
Substituatasklist | findstr "EXTENSION_PROCESS_NAME"
EXTENSION_PROCESS_NAMEpelo nome do processo da extensão. Por exemplo, para verificar o processo do agente de operações, execute o seguinte comando:tasklist | findstr "ops-agent"
A saída do comando
psnuma VM Linux para o agente de operações pode mostrar uma entrada semelhante à seguinte:.... /var/lib/google-guest-agent/931374772276853249/plugins/ops-agent_baddabb3dac3 ....
Ative e reveja os registos do agente convidado. Os registos do agente convidado mostram quando uma extensão é instalada e iniciada.
Segue-se um exemplo do resultado que pode ver nos registos do agente convidado quando uma extensão do agente de operações está instalada:
my-instance google_guest_agent [14972]: Installing plugin "ops-agent", revision "2dfa648c1892da87" my-instance google_guest_agent [14972]: (client.go:181) Sent message [[type.googleapis.com/agent_controlplane.PluginEventMessage: (revision_id:"2dfa648c1892da87)]] my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "DownloadPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:316) Successfully downloaded "https://storage.googleapis.com/acp-gcs-bucket-us-centrall-a/ops-agent my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "UnpackPluginArchiveStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (pluginengine.go:361) Successfully unpacked "/var/lib/google-guest-agent/ops-agent.tar.gz" to "/google-guest-agent/ops-agent_2dfa648c1892da87 my-instance google_guest_agent [14972]: (pluginengine.go:202) Running "LaunchPluginStep" on plugin "ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (run_linux.go:32) Attempting process start: (OutputType:0 Name:/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87) my-instance google_guest_agent [14972]: (pluginlauncher.go:132) Launched a plugin process from "/var/lib/google-guest-agent/plugins/ops-agent_2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:136) Dialing in on plugin "ops-agent 2dfa648c1892da87" my-instance google_guest_agent [14972]: (plugin.go:51) Executing start request on plugin "ops-agent_2dfa648c1892da87"
Resolva problemas de instalação
Se uma extensão não for instalada numa VM depois de criar uma política, use os seguintes passos para resolver o problema:
- Aguarde pela aplicação de políticas. A aplicação de uma política, incluindo quaisquer novas tentativas, pode demorar até uma hora.
- Verifique se as etiquetas de inclusão especificadas na política correspondem às etiquetas na VM.
- Para identificar potenciais erros de instalação, ative o registo de depuração para o agente convidado.
Depois de corrigir o problema subjacente, tente novamente a instalação através de um dos seguintes métodos:
- Recrie a política: elimine a política e, de seguida, crie uma nova política.
Use uma política temporária de alta prioridade: se quiser evitar recriar uma política que afete muitas VMs, use uma política temporária de prioridade mais alta para tentar novamente a instalação em VMs específicas:
- Adicione uma nova etiqueta às VMs para as quais a instalação falhou. Por exemplo, adicione uma etiqueta
status=failed. - Crie uma política com uma prioridade mais elevada que segmente a nova etiqueta.
Por exemplo, se a política original que falhou tiver a prioridade predefinida de
1000, crie uma política com uma prioridade mais elevada, como500.gcloud beta compute zone-vm-extension-policies create temp-policy
--project=test-project
--zone=us-central1-f
--extensions=ops-agent
--config-from-file=ops-agent="/usr/ops-agent-config.yaml"
--priority=500
--inclusion-labels=status=failed - Depois de instalar a extensão com êxito, elimine a política temporária e remova a etiqueta das VMs. A extensão permanece instalada porque a política original ainda está ativa.
- Adicione uma nova etiqueta às VMs para as quais a instalação falhou. Por exemplo, adicione uma etiqueta
Veja os registos de depuração do agente convidado
Para ativar o registo de depuração, adicione as definições de nível de registo e detalhe à secção Core do ficheiro de configuração do agente convidado da seguinte forma:
Linux
- Abra o ficheiro de configuração do agente convidado localizado em
/etc/default/instance_configs.cfg. Adicione as seguintes linhas ao ficheiro. Se a secção
[Core]já existir, adicione-lhe as definiçõeslog_levelelog_verbosity.[Core] log_level = 4 log_verbosity = 4Reinicie o gestor de agentes convidados executando o seguinte comando:
sudo systemctl restart google-guest-agent-managerPara ver os registos da atividade do agente convidado durante a instalação da extensão, execute o seguinte comando:
journalctl -u google-guest-agent-manager
Windows
- Abra o ficheiro de configuração do agente convidado localizado em
C:\Program Files\Google\Compute Engine\instance_configs.cfg. Adicione as seguintes linhas ao ficheiro. Se a secção
[Core]já existir, adicione-lhe as definiçõeslog_levelelog_verbosity.[Core] log_level = 4 log_verbosity = 4Reinicie o gestor do agente convidado executando o seguinte comando como administrador do Windows:
net stop GCEAgentManager net start GCEAgentManagerPara ver os registos da atividade do agente convidado durante a instalação da extensão, execute o seguinte comando no PowerShell:
Get-Eventlog -Source google_guest_agent_manager -LogName Application
Depois de ativar os registos de depuração, verifique os seguintes erros comuns:
- Espaço insuficiente no disco: se os registos indicarem espaço insuficiente no disco, liberte espaço no disco ou redimensione o disco para adicionar mais espaço.
- Utilização excessiva de recursos: se os registos indicarem que o agente convidado parou a extensão devido à utilização excessiva de memória ou CPU, altere o tipo de máquina da VM para um com mais recursos.
O que se segue?
- Saiba mais sobre o VM Extension Manager.