Este documento descreve como criar políticas de extensões de VMs, que lhe permitem instalar e gerir automaticamente extensões numa frota de máquinas virtuais (VMs) do Compute Engine. Ao definir uma política, pode garantir que extensões específicas são instaladas e mantidas em todas as VMs que correspondam aos critérios que especificar, como etiquetas de VMs.
Antes de começar
- Instale o componente beta
executando o seguinte comando:
gcloud components install beta
- Reveja os conceitos básicos sobre o gestor de extensões de VMs.
- Reveja as quotas do Gestor de extensões de VMs.
- Ative a API Compute Engine no seu Google Cloud projeto se ainda não estiver ativada.
- Certifique-se de que a VM executa a versão
20241209.01ou posterior do agente convidado. - Para ver registos de depuração de eventos do Gestor de extensões de VMs, configure as definições de registo do agente convidado.
-
Se ainda não o tiver feito, configure a autenticação.
A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se 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
-
Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:
gcloud initSe estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.
- Set a default region and zone.
Funções de IAM necessárias
Para receber a autorização de que precisa para criar uma política de extensão, peça ao seu administrador para lhe conceder a função de IAM administrador da política de extensão de VM (
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.Esta função predefinida contém a autorização
compute.vmExtensionPolicies.create, que é necessária para criar uma política de extensão.Também pode obter esta autorização 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.
Prioridade das políticas e resolução de conflitos
Quando várias políticas se aplicam à mesma MV, o Gestor de extensões de MV usa a prioridade da política para resolver conflitos.
Quando duas políticas entram em conflito para a mesma extensão, a política com a prioridade mais elevada tem precedência. Os valores de prioridade variam entre 0 e 65535, em que um número inferior significa uma prioridade mais elevada. A prioridade predefinida é 1000. Se várias políticas tiverem a mesma prioridade, o VM Extension Manager aplica a política atualizada mais recentemente às VMs. A eliminação de uma política não remove a extensão se uma política de prioridade inferior continuar a aplicar-se à VM.
Crie uma política de extensão de VM global
Pode criar uma política de extensão de VMs global para instalar extensões em VMs em várias zonas no seu projeto de acordo com um plano de implementação. Uma política de extensão de VM global não é aplicada diretamente às VMs. Em alternativa, à medida que a política é implementada, o VM Extension Manager cria políticas em cada zona com base no plano de implementação. Estas políticas gerem, em seguida, a instalação de extensões em VMs nas respetivas zonas.
Pode usar o gcloud ou o método
globalVmExtensionPolicies.insertpara criar políticas de extensões globais.Acerca dos planos de implementação
As políticas de extensões de VMs globais usam planos de implementação para gerir a implementação de extensões em diferentes localizações. Pode usar um dos planos de implementação predefinidos ou criar um plano de implementação personalizado.
Planos de implementação predefinidos
slow_rollout: implementa a política ao longo de cinco dias. A implementação lenta é o plano de implementação predefinido.fast_rollout: implementa a política imediatamente em todas as zonas.
Planos de implementação personalizados
Pode criar planos de implementação personalizados através do método
rolloutPlans.insert. Por exemplo, o seguinte JSON define um plano de implementação denominadotest-rollout-planque segmenta duas zonas:{ "name": "test-rollout-plan", "waves": [ { "selectors": [ { "locationSelector": { "includedLocations": [ "us-central1-a", "us-west1-a" ] } } ], "validation": { "type": "time", "timeBasedValidationMetadata": { "waitDuration": "0s" } }, "orchestrationOptions": { "maxConcurrentResourcesPerLocation": "10", "maxConcurrentLocations": "10" } } ] }
Em seguida, pode usar este plano de implementação personalizado quando criar uma política global, conforme mostrado no exemplo 2.
Crie uma política global
Use o comando
gcloud beta compute global-vm-extension-policies createpara criar uma política de extensão de VM global:gcloud beta compute global-vm-extension-policies create POLICY_NAME
--description="DESCRIPTION"
--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
--rollout-predefined-plan=ROLLOUT_PLAN
--rollout-conflict-behavior=ROLLOUT_CONFLICT_BEHAVIORSubstitua o seguinte:
POLICY_NAME: um nome para a política de extensão de VM.DESCRIPTION: uma descrição opcional da política.EXTENSION_NAME_1,EXTENSION_NAME_2: uma lista separada por vírgulas de extensões a adicionar à política. Tem de especificar, pelo menos, uma extensão. Os valores válidos para as extensões são:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: uma lista separada por vírgulas de pares chave-valor em que a chave é o nome da extensão e o valor é a versão da extensão. Se não especificar uma versão para uma extensão, o VM Extension Manager usa a versão mais recente disponível e atualiza-a automaticamente quando estiverem disponíveis novas versões.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: uma lista de pares 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 ficheiro está localizado na VM onde executa o comandogcloud, e 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 no seu projeto em todas as zonas.PRIORITY: um número inteiro que define a prioridade da política. Os números maiores indicam uma prioridade mais elevada. O valor predefinido é 0. Se várias políticas tiverem a mesma prioridade, a política que foi atualizada mais recentemente é aplicada às MV.ROLLOUT_PLAN: especifiqueslow_rolloutoufast_rollout. Se precisar de usar um plano de implementação personalizado, use a flag--rollout-custom-planem vez de--rollout-predefined-plane especifique o nome do plano, por exemplo:--rollout-custom-plan=projects/PROJECT_NUMBER/locations/global/rolloutPlans/ROLLOUT_PLAN_NAMESubstitua o seguinte:
PROJECT_NUMBER: o projeto onde o plano de implementação está definido.ROLLOUT_PLAN_NAME: o nome do plano de implementação personalizado que definiu. Se não for especificada nenhuma flag de plano de implementação, é usadoslow_rollout.
ROLLOUT_CONFLICT_BEHAVIOR: especifica o comportamento quando é detetado um conflito entre uma política zonal e uma política global. Os valores possíveis são os seguintes:""(string vazia): é usado o valor da política zonal.overwrite: a política global substitui a política zonal.Para mais detalhes, consulte a
--rollout-conflict-behaviorflag.
Exemplo 1
O comando seguinte cria uma política denominada
global-test-extension-policyque instala a extensãoops-agentpara o projetotest-project. A flag--config-from-fileespecifica o caminho para um ficheiro local que contém uma configuração YAML para o agente de operações e--rollout-predefined-planespecifica o planoslow_rollout.gcloud beta compute global-vm-extension-policies create global-test-extension-policy \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --rollout-predefined-plan=slow_rollout
Exemplo 2
O comando seguinte cria uma política denominada
global-test-extension-policy-2que instala a extensãoops-agentpara o projetotest-projectem VMs com a etiquetaenv=prod. A prioridade da política está definida como500e a flag--config-from-fileespecifica o caminho para um ficheiro local que contém uma configuração YAML para o agente de operações. A flag--rollout-custom-planespecifica um plano de implementação personalizado.gcloud beta compute global-vm-extension-policies create global-test-extension-policy-2 \ --project=test-project \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod \ --rollout-custom-plan=projects/12345678/locations/global/rolloutPlans/test-rollout-plan
Crie uma política de extensão de VM zonal
Use um dos seguintes métodos para criar uma política de extensão de VM zonal. Esta política zonal define as extensões a instalar e em que VMs numa zona específica.
Consola
- Na Google Cloud consola, aceda à página Políticas de extensão de VMs.
- Clique em Criar política de extensões.
- No campo Nome, introduza um nome para a política.
- Opcional: no campo Descrição, introduza uma descrição para a política.
- No campo Prioridade, especifique um número de prioridade para resolver conflitos entre políticas. Os números mais baixos indicam uma prioridade mais elevada. O valor predefinido é 1000.
- Na lista Zona, selecione a zona onde quer aplicar esta política.
- Na secção Extensões, clique em Adicionar extensão e faça o seguinte para cada extensão que quer instalar nas VMs de destino:
- Na lista Extensão, selecione uma extensão. Consulte as extensões suportadas.
- Na lista Versão, especifique o número da versão da extensão. Deixe
em branco para selecionar a versão mais recente.
- Para o agente de operações, pode especificar a versão
2.58.0ou posterior. - Para a extensão para SAP e a extensão para cargas de trabalho de computação, deixe o campo em branco para selecionar a versão mais recente.
- Para o agente de operações, pode especificar a versão
- Opcional: no campo Conteúdo do ficheiro de configuração, introduza os parâmetros de configuração da extensão.
- Na secção Instâncias de VM de destino, selecione as VMs para a política. Para selecionar VMs com etiquetas específicas, clique em Adicionar etiquetas e adicione o par de chave-valor.
- Clique em Criar.
gcloud
Para criar uma política de extensão de VMs zonais e implementar a política em VMs numa zona específica, use o comando
gcloud beta compute zone-vm-extension-policies create:gcloud beta compute zone-vm-extension-policies create POLICY_NAME \ --zone=ZONE \ --description="DESCRIPTION" \ --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
Substitua o seguinte:
POLICY_NAME: um nome para a política de extensão de VM.ZONE: a zona onde esta política se aplica.DESCRIPTION: uma descrição opcional da política.EXTENSION_NAME_1,EXTENSION_NAME_2: uma lista separada por vírgulas de extensões a adicionar à política. Tem de especificar, pelo menos, uma extensão. Os valores válidos para as extensões são:ops-agentgoogle-cloud-sap-extensiongoogle-cloud-workload-extension
EXTENSION_NAME_1=VERSION_1,EXTENSION_NAME_2=VERSION_2: uma lista separada por vírgulas de pares de chave-valor em que a chave é o nome da extensão e o valor é a versão da extensão. Se não especificar uma versão para uma extensão, o VM Extension Manager usa a versão mais recente disponível e atualiza-a automaticamente quando estiverem disponíveis novas versões.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: uma lista de pares 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: um número inteiro de 0 a 65535 que define a prioridade da política. Os números mais baixos indicam uma prioridade mais elevada. O valor predefinido é 1000.O comando falha se já existir uma política com o nome especificado na zona.
Exemplo 1
O seguinte comando cria uma política denominada
test-extension-policyque instala a extensãoops-agentna zonaus-central1-fpara o projetotest-project. A flag--config-from-fileespecifica o caminho para um ficheiro local que contém uma configuração YAML para o agente de operações.gcloud beta compute zone-vm-extension-policies create test-extension-policy \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml"
Exemplo 2
O comando seguinte cria uma política denominada
test-extension-policy-2que instala a extensãoops-agentna zonaus-central1-fpara o projetotest-projectem VMs com a etiquetaenv=prod. A prioridade da política está definida como500e a flag--config-from-fileespecifica o caminho para um ficheiro local que contém uma configuração YAML para o agente de operações.gcloud beta compute zone-vm-extension-policies create test-extension-policy-2 \ --project=test-project \ --zone=us-central1-f \ --extensions=ops-agent \ --config-from-file=ops-agent="/usr/ops-agent-config.yaml" \ --priority=500 \ --inclusion-labels=env=prod
O que se segue?
- Saiba como gerir extensões de VMs.
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 2026-01-15 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2026-01-15 UTC."],[],[]] -