Gerenciar VMs cobertas pela política de SO do agente de operações

Se você criou VMs do Compute Engine com o Agente de operações instalado durante a criação ou, em alguns casos, se instalou o agente em VMs atuais usando o console do Google Cloud, o Google Cloud também criou políticas do SO do VM Manager que instalam e monitoram o Agente de operações. Neste documento, descrevemos como consultar essas políticas do SO de agente de operações e gerenciar o agente de operações nas VMs cobertas pelas políticas. Para informações sobre como criar VMs com o Agente de operações instalado automaticamente, consulte Instalar o Agente de operações durante a criação da VM.

Depois que uma política do SO de agente de operações é criada, é possível fazer o seguinte:

  • Determinar quais VMs são cobertas pela política
  • Determinar quais zonas são cobertas pela política
  • Estender a cobertura da política para VMs atuais
  • Desinstalar o agente de uma VM coberta pela política

Encontrar VMs cobertas pelas políticas de SO do agente de operações

É possível usar o console do Google Cloud ou a Google Cloud CLI para ver quais VMs no projeto do Google Cloud são cobertas pelas políticas do SO do agente de operações por meio de uma atribuição de política do SO. Se você acredita que uma VM está sem cobertura, faça o seguinte:

Verificar se uma política do SO de agente de operações está atribuída às VMs em uma zona

Para verificar se as VMs em uma zona são cobertas pela política do SO do agente de operações, use o console do Google Cloud ou a CLI gcloud para ver se a VM está relacionada a uma atribuição de política do SO de agente de operações.

Console

  1. No console do Google Cloud, acesse a página Políticas do SO:

    Acessar as políticas do SO

    Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.

  2. Na guia Instâncias de VM, selecione a VM que você quer verificar.

  3. Se a VM for coberta por uma política do SO do agente de operações, a coluna ID da política do SO incluirá goog-ops-agent-policy e o estado será "Em conformidade".

gcloud

Para exibir uma lista de atribuições de políticas do SO do agente de operações em uma zona, execute o seguinte comando:

gcloud compute os-config os-policy-assignment-reports list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

A saída mostra uma lista de VMs com uma atribuição de política do SO do agente de operações. Se o Agente de operações estiver instalado na VM, a coluna "Resumo" terá um valor de "Políticas compatíveis com 1/1".

INSTANCE    ASSIGNMENT_ID                                    LOCATION    UPDATE_TIME                  SUMMARY
instance-1  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant
instance-3  goog-ops-agent-v2-x86-template-1-0-0-us-east4-c  us-east4-c  2023-04-28T02:11:15.118088Z  1/1 policies compliant

Verifique se uma VM tem um rótulo de política do SO do agente de operações

Para ver quais VMs no projeto do Google Cloud têm o rótulo da política do SO do agente de operações, goog-ops-agent-policy, use o Console do Google Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs:

    Acessar Instâncias de VM

    Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.

  2. Selecione o nome da sua VM.

  3. No painel Informações básicas, localize a entrada Rótulos.

    Se a VM for coberta pela política do SO do agente de operações, ela terá um rótulo como goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

Para ver todas as VMs que têm o rótulo da política do SO do agente de operações goog-ops-agent-policy, execute o seguinte comando:

gcloud compute instances list --format="table(name,zone,labels)" --filter="labels=goog-ops-agent-policy"

A saída mostra o nome, a zona e os rótulos das VMs. Exemplo:

NAME                  ZONE           LABELS
test-vm1              us-central1-a  {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}
test-vm1              us-east4-c     {'goog-ops-agent-policy': 'v2-x86-template-1-0-0'}

Para ver se uma VM específica tem o rótulo da política do SO do agente de operações, execute o seguinte comando:

gcloud compute instances describe --format "yaml(labels)" --zone=ZONE VM_NAME

A saída mostra uma lista de rótulos para sua VM. Se a VM tiver o rótulo da política do SO do agente de operações, goog-ops-agent-policy aparecerá na lista labels. Exemplo:

labels:
  goog-ops-agent-policy: v2-x86-template-1-0-0

Verificar se a atribuição de uma política de SO de agente de operações foi implantada.

Veja as atribuições de política do SO do projeto do Google Cloud para verificar se uma atribuição de política do SO do agente de operações foi implantada corretamente em uma zona específica.

Console

  1. No console do Google Cloud, acesse a página Políticas do SO:

    Acessar as políticas do SO

    Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.

  2. Para ver o estado dos lançamentos de políticas do SO, clique na guia Atribuições da política do SO.

    As atribuições de política do SO do agente de operações têm IDs que começam com a string "goog-ops-agent". Se a atribuição tiver sido implantada corretamente, ela terá um estado de lançamento "Concluído".

gcloud

Para ver todas as atribuições de política do SO do agente de operações em uma zona, execute o seguinte comando:

gcloud compute os-config os-policy-assignments list --location=ZONE --filter="ASSIGNMENT_ID ~ goog-ops-agent"

A saída mostra uma lista de atribuições de políticas do SO do agente de operações em uma zona. Se a atribuição tiver sido implantada corretamente, ela terá um estado de lançamento "CONCLUÍDO". Exemplo:

ASSIGNMENT_ID                                       ROLLOUT_STATE    REVISION_CREATE_TIME       REVISION_ID    
goog-ops-agent-v2-x86-template-1-4-0-us-central1-b  SUCCEEDED        2023-01-28T05:23:41Z.      940df3e9-77fd-470b-84df-53fb24825c4a
goog-ops-agent-v2-x86-template-1-0-0-us-central1-b  SUCCEEDED        2022-01-28T05:23:41Z.      qwareaff-efte-erew-aeet-faer234t4gga

Para ver detalhes sobre uma atribuição de política específica do SO do agente de operações, execute o seguinte comando:

gcloud compute os-config os-policy-assignments describe POLICY_ASSIGNMENT_ID --location=ZONE

Desinstalar o agente de operações nas VMs cobertas pela política de SO de agente de operações

Se você desinstalar manualmente o agente de operações em uma VM coberta pela política de SO do agente de operações, ela será reinstalada por essa política. Para desinstalar o agente de operações, primeiro remova o rótulo goog-ops-agent-policy da VM. Depois de remover o rótulo de política do SO de agente de operações de uma VM, desinstale-o permanentemente.

Desinstalar o agente de operações em uma VM específica

Para remover a política e desinstalar o agente de operações de uma VM específica, use o console do Google Cloud ou a CLI gcloud.

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs:

    Acessar Instâncias de VM

    Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.

  2. Selecione o nome da VM que você quer editar.

  3. Clique em Editar.

  4. Acesse a seção Rótulos e clique em + Adicionar rótulos.

  5. Localize o rótulo com a chave goog-ops-agent-policy e clique em Excluir item.

  6. Desinstale o agente.

gcloud

  1. Para remover o rótulo goog-ops-agent-policy de uma VM, execute o seguinte comando:

    gcloud compute instances update VM_NAME \
      --remove-labels=goog-ops-agent-policy
    
  2. Desinstale o agente.

Desinstalar o agente de operações em todas as VMs

Para desinstalar o agente de operações das VMs na zona que tem uma atribuição de política do SO de agente de operações, use o script fornecido pelo Cloud Monitoring. Não é possível desinstalar o agente de um grupo de VMs usando o console do Google Cloud.

Para executar o script, você precisa ter o papel Editor de GuestPolicy (roles/osconfig.guestPolicyEditor).

Execute o script a seguir no Cloud Shell. Você pode fornecer qualquer número de zonas:

curl -sSO https://dl.google.com/cloudagents/undo-ops-agent-policies.sh
bash undo-ops-agent-policies.sh ZONE1 ZONE2

O script executa as seguintes tarefas em cada zona:

  1. Encontra todas as políticas do SO do agente de operações.
  2. Edita cada política para desinstalar o agente de operações nas VMs cobertas.
  3. Exclui a política de SO do agente de operações.
  4. Remove o rótulo goog-ops-agent-policy de cada VM coberta.

Adicionar a cobertura da política do SO de agente de operações a uma VM

A política do SO de agente de operações abrange apenas VMs com o rótulo goog-ops-agent-policy e estão na mesma zona de uma atribuição de política de SO de agente de operações. No entanto, é possível ampliar a cobertura para outras VMs criadas sem a política de SO de agente de operações atribuída a elas.

Para estender a cobertura da política para uma VM, você precisa conhecer a versão do modelo da atribuição de política do SO do agente de operações na sua zona. Se a zona tiver várias atribuições de política do SO do agente de operações, localize a atribuição com a versão de modelo mais recente. Para exibir uma lista de atribuições de políticas do SO do agente de operações em uma zona, execute o seguinte comando:

gcloud compute os-config os-policy-assignments list --location=ZONE
  --filter="ASSIGNMENT_ID ~ goog-ops-agent"

Para estender a cobertura da política a outras VMs, use o Console do Google Cloud ou a CLI gcloud:

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs:

    Acessar Instâncias de VM

    Se você usar a barra de pesquisa para encontrar a página, selecione o resultado com o subtítulo Compute Engine.

  2. Na lista Instâncias de VM, marque as caixas de seleção ao lado das VMs que você quer rotular e clique em Rótulos.

  3. Para adicionar rótulos, clique em +Adicionar rótulo e inclua o par de chave-valor. A chave precisa ser goog-ops-agent-policy e o valor é a versão de modelo desejada, como 1-0-0.

  4. Salve as alterações.

gcloud

Para estender a cobertura da política a uma VM sem cobertura, execute os seguintes comandos:

gcloud compute instances update VM_NAME --zone=ZONE
  --update-labels=goog-ops-agent-policy:v2-x86-template-1-0-0
gcloud compute instances add-metadata VM_NAME --zone=ZONE
  --metadata=enable-osconfig=TRUE

Permissão

A instalação do Agente de operações usa o VM Manager e exige permissões para ativar a API VM Manager e criar uma política. Todas as permissões necessárias estão disponíveis com o papel de editor (roles/Editor). Ou peça a um administrador do projeto para conceder as permissões mínimas usando a CLI do Google Cloud.

Permissões necessárias para instalar o Agente de operações durante a criação da VM:

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.create

Permissões necessárias para instalar o Agente de operações em VMs atuais:

  • serviceusage.services.get
  • serviceusage.services.enable
  • osconfig.osPolicyAssignments.get
  • osconfig.osPolicyAssignments.create
  • osconfig.projectBillingConfigs.update
  • compute.instances.setMetadata
  • compute.instances.setLabels

Encontre papéis correspondentes que fornecem essas permissões na referência de papéis básicos e predefinidos do IAM, com exceção da permissão osconfig.projectBillingConfigs.update. Essa permissão está incluída no papel osconfig.projectBillingConfig. Esse papel não está disponível no console do Google Cloud, mas pode ser concedido pela CLI gcloud.

Exemplos de comandos para conceder papéis a permissões:

gcloud projects add-iam-policy-binding project-id --member='user:user-email' --role='roles/osconfig.projectBillingConfigEditor'