Neste documento, descrevemos como criar políticas de extensão de VM, que permitem instalar e gerenciar automaticamente extensões em uma frota de máquinas virtuais (VMs) do Compute Engine. Ao definir uma política, você garante que extensões específicas sejam instaladas e mantidas em todas as VMs que correspondam aos critérios especificados, como rótulos de VM.
Antes de começar
- Instale o componente Beta
executando o seguinte comando:
gcloud components install beta
- Revise os conceitos básicos sobre o gerenciador de extensões de VM.
- Revise as cotas do VM Extension Manager.
- Ative a API Compute Engine no projeto Google Cloud , se ainda não tiver feito isso.
- Verifique se a VM executa a versão
20241209.01ou mais recente do agente convidado. - Para conferir os registros de depuração dos eventos do VM Extension Manager, configure as definições de registro do agente convidado.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:
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 do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:
gcloud initAo usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
- Set a default region and zone.
Papéis necessários do IAM
Para receber a permissão necessária para criar uma política de extensão, peça ao administrador para conceder a você o papel do IAM de Administrador de políticas de extensão de VM (
roles/compute.vmExtensionPolicyAdmin). Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.Esse papel predefinido contém a permissão
compute.vmExtensionPolicies.create, necessária para criar uma política de extensão.Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
Para mais informações sobre papéis e permissões do IAM no Compute Engine, consulte Papéis e permissões do Compute Engine.
Prioridade de políticas e resolução de conflitos
Quando várias políticas são aplicadas à mesma VM, o VM Extension Manager 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 maior prioridade tem precedência. Os valores de prioridade variam de 0 a 65535, em que um número menor significa uma prioridade maior. A prioridade padrão é 1.000. Se várias políticas tiverem a mesma prioridade, o Gerenciador de extensões de VM vai aplicar a política atualizada mais recentemente às VMs. Excluir uma política não remove a extensão se uma política de prioridade mais baixa ainda se aplica à VM.
Criar uma política global de extensão de VM
É possível criar uma política global de extensão de VM para instalar extensões em VMs em várias zonas do projeto de acordo com um plano de lançamento. Uma política global de extensão de VM não é aplicada diretamente às VMs. Em vez disso, à medida que a política é lançada, o VM Extension Manager cria políticas em cada zona com base no plano de lançamento. Essas políticas gerenciam a instalação de extensões em VMs nas respectivas zonas.
É possível usar o gcloud ou o método
globalVmExtensionPolicies.insertpara criar políticas de extensão global.Sobre os planos de lançamento
As políticas globais de extensão de VM usam planos de lançamento para gerenciar a implantação de extensões em diferentes locais. Você pode usar um dos planos de lançamento predefinidos ou criar um personalizado.
Planos de lançamento predefinidos
slow_rollout: implanta a política em cinco dias. O lançamento lento é o plano padrão.fast_rollout: implanta a política imediatamente em todas as zonas.
Planos de lançamento personalizados
É possível criar planos de lançamento personalizados usando o método
rolloutPlans.insert. Por exemplo, o JSON a seguir define um plano de lançamento chamadotest-rollout-planque tem como destino 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, use esse plano de lançamento personalizado ao criar uma política global, como mostrado no Exemplo 2.
Criar uma política global
Use o comando
gcloud beta compute global-vm-extension-policies createpara criar uma política global de extensão de VM: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:
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 serem adicionadas à política. É preciso 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 dela. Se você não especificar uma versão para uma extensão, o Gerenciador de extensões de VM vai usar a versão mais recente disponível e fazer upgrade automático quando novas versões forem lançadas.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: uma lista separada por vírgulas de pares de chave-valor em que a chave é o nome da extensão e o valor é o caminho para o arquivo de configuração dessa extensão. Esse arquivo está localizado na VM em que você executa o comandogcloud, não na VM em que você instala a extensão.Como 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". Você 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 rótulos de inclusão para um seletor. As VMs precisam ter todos os rótulos especificados em um seletor para serem segmentadas. Se você especificar--inclusion-labelsvárias vezes, a política vai segmentar VMs que correspondem a qualquer um dos seletores fornecidos (OR lógico). Se você omitir essa flag, a política vai segmentar todas as VMs do projeto em todas as zonas.PRIORITY: um número inteiro que define a prioridade da política. Números maiores indicam prioridade mais alta. O valor padrão é 0. Se várias políticas tiverem a mesma prioridade, a que foi atualizada mais recentemente será aplicada às VMs.ROLLOUT_PLAN: especifiqueslow_rolloutoufast_rollout. Se você precisar usar um plano de lançamento 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:
PROJECT_NUMBER: o projeto em que o plano de lançamento é definido.ROLLOUT_PLAN_NAME: o nome do plano de lançamento personalizado que você definiu. Se nenhuma flag de plano de lançamento for especificada,slow_rolloutserá usada.
ROLLOUT_CONFLICT_BEHAVIOR: especifica o comportamento quando um conflito é detectado entre uma política zonal e uma global. Os valores possíveis são:""(string vazia): o valor da política zonal é usado.overwrite: a política global substitui a política zonal.Para mais detalhes, consulte a flag
--rollout-conflict-behavior.
Exemplo 1
O comando a seguir cria uma política chamada
global-test-extension-policyque instala a extensãoops-agentpara o projetotest-project. A flag--config-from-fileespecifica o caminho para um arquivo local que contém uma configuração YAML do 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 a seguir cria uma política chamada
global-test-extension-policy-2que instala a extensãoops-agentpara o projetotest-projectem VMs com o rótuloenv=prod. A prioridade da política é definida como500, e a flag--config-from-fileespecifica o caminho para um arquivo local que contém uma configuração YAML para o Agente de operações. A flag--rollout-custom-planespecifica um plano de lançamento 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
Criar uma política de extensão de VM zonal
Use um dos métodos a seguir para criar uma política de extensão de VM zonal. Essa política zonal define quais extensões instalar e em quais VMs em uma zona específica.
Console
- No console do Google Cloud , acesse a página Políticas de extensão de VM.
- Clique em Criar política de extensão.
- No campo Nome, digite um nome para a política.
- Opcional: no campo Descrição, insira uma descrição para a política.
- No campo Prioridade, especifique um número de prioridade para resolver conflitos entre políticas. Números menores indicam maior prioridade. O valor padrão é 1000.
- Na lista Zona, selecione a zona em que você quer aplicar essa política.
- Na seção Extensões, clique em Adicionar extensão e faça o seguinte para cada extensão que você quer instalar nas VMs de destino:
- Na lista Extensão, selecione uma opção. Consulte Extensões compatíveis.
- 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, especifique a versão
2.58.0ou mais recente. - 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, especifique a versão
- Opcional: no campo Conteúdo do arquivo de configuração, insira os parâmetros de configuração da extensão.
- Na seção Instâncias de VM de destino, selecione as VMs para a política. Para selecionar VMs com rótulos específicos, clique em Adicionar rótulos e inclua o par de chave-valor.
- Clique em Criar.
gcloud
Para criar uma política de extensão de VM zonal e lançar a política para VMs em uma 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:
POLICY_NAME: um nome para a política de extensão de VM.ZONE: a zona em que essa 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 serem adicionadas à política. É preciso 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 você não especificar uma versão para uma extensão, o Gerenciador de extensões de VM vai usar a versão mais recente disponível e fazer upgrade automático quando novas versões forem lançadas.EXTENSION_NAME_1=CONFIG_FILE_PATH_1,EXTENSION_NAME_2=CONFIG_FILE_PATH_2: uma lista separada por vírgulas de pares de chave-valor em que a chave é o nome da extensão e o valor é o caminho para o arquivo de configuração dessa extensão. Esse caminho está na VM em que você executa o comandogcloud, não na VM em que você instala a extensão.Como 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". É possível 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 rótulos de inclusão para um seletor. As VMs precisam ter todos os rótulos especificados em um seletor para serem segmentadas. Se você especificar--inclusion-labelsvárias vezes, a política vai segmentar VMs que correspondem a qualquer um dos seletores fornecidos (OR lógico). Se você omitir essa flag, a política vai segmentar todas as VMs na zona especificada.PRIORITY: um número inteiro de 0 a 65535 que define a prioridade da política. Números menores indicam maior prioridade. O valor padrão é 1000.O comando falha se já existir uma política com o nome especificado na zona.
Exemplo 1
O comando a seguir cria uma política chamada
test-extension-policyque instala a extensãoops-agentna zonaus-central1-fpara o projetotest-project. A flag--config-from-fileespecifica o caminho para um arquivo local que contém uma configuração YAML do 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 a seguir cria uma política chamada
test-extension-policy-2que instala a extensãoops-agentna zonaus-central1-fpara o projetotest-projectem VMs com o rótuloenv=prod. A prioridade da política é definida como500, e a flag--config-from-fileespecifica o caminho para um arquivo 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
A seguir
- Saiba como gerenciar extensões de VM.
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-24 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-24 UTC."],[],[]] -