Instalar extensões de VM criando políticas de extensão

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

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.

Criar uma política de extensão de VM

Use um dos métodos a seguir para criar uma política de extensão de VM. Essa política define quais extensões instalar e em quais VMs.

Console

  1. No console do Google Cloud , acesse a página Políticas de extensão de VM.

    Acessar políticas de extensão de VM

  2. Clique em Criar política de extensão.
  3. No campo Nome, digite um nome para a política.
  4. Opcional: no campo Descrição, insira uma descrição para a política.
  5. 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.
  6. Na lista Zona, selecione a zona em que você quer aplicar essa política.
  7. 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:
    1. Na lista Extensão, selecione uma opção. Consulte Extensões compatíveis.
    2. 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.0 ou 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.
    3. Opcional: no campo Conteúdo do arquivo de configuração, insira os parâmetros de configuração da extensão.
  8. 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.
  9. Clique em Criar.

gcloud

Para criar uma política de extensão de VM 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-agent
    • google-cloud-sap-extension
    • google-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 usará a versão mais recente disponível e fará 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 comando gcloud, 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 --config em vez de --config-from-file. Por exemplo, EXTENSION_NAME_1="CONFIG_1". É possível usar --config-from-file ou --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-labels vá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-policy que instala a extensão ops-agent na zona us-central1-f para o projeto test-project. A flag --config-from-file especifica 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-2 que instala a extensão ops-agent na zona us-central1-f para o projeto test-project em VMs com o rótulo env=prod. A prioridade da política é definida como 500, e a flag --config-from-file especifica 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