Faça a gestão das VMs abrangidas pela política do SO do agente de operações

Se criou VMs do Compute Engine com o agente Ops instalado durante a criação ou, em alguns casos, se instalou o agente em VMs existentes através da Google Cloud consola, Google Cloud também criou políticas de SO do VM Manager que instalam e monitorizam o agente Ops. Este documento descreve como consultar essas políticas do SO do agente de operações e gerir o agente de operações em VMs abrangidas pelas políticas. Para obter informações sobre a criação de VMs com o agente de operações instalado automaticamente, consulte o artigo Instale o agente de operações durante a criação da VM.

Depois de criar uma política de SO do agente de operações, pode fazer o seguinte:

  • Determine que VMs são abrangidas pela política.
  • Determine que zonas são abrangidas pela política.
  • Estender a cobertura da política às VMs existentes.
  • Desinstale o agente de uma VM abrangida pela política.

Encontre VMs abrangidas pelas políticas de SO do agente de operações

Pode usar a Google Cloud consola ou a CLI Google Cloud para ver que VMs no seu projeto Google Cloud estão abrangidas pelas políticas do SO do agente Ops através de uma atribuição de política do SO. Se considerar que uma VM não tem cobertura, pode resolver o problema da seguinte forma:

Verifique se está atribuída uma política do SO do agente de operações a VMs numa zona

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

Consola

  1. Na Google Cloud consola, aceda à página Políticas de SO:

    Aceda às políticas de SO

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Compute Engine.

  2. No separador Instâncias de VM, selecione a VM que quer verificar.

  3. Se a VM estiver abrangida por uma política do SO do agente Ops, a coluna ID da política do SO inclui goog-ops-agent-policy e o estado é "Em conformidade".

gcloud

Para apresentar uma lista de atribuições de políticas do SO do agente de operações numa 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 tem um valor de "1/1 políticas em conformidade".

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 uma etiqueta de política do SO do agente de operações

Para ver que VMs no seu Google Cloud projeto têm a etiqueta de política do SO do agente de operaçõesgoog-ops-agent-policy, use a Google Cloud consola ou a CLI gcloud.

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM:

    Aceda a Instâncias de VM

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda seja Compute Engine.

  2. Selecione o nome da VM.

  3. No painel Informações básicas, localize a entrada Etiquetas.

    Se a VM estiver abrangida pela política do SO do agente de operações, tem uma etiqueta como goog-ops-agent-policy:v2-x86-template-1-0-0.

gcloud

Para ver todas as VMs que têm a etiqueta 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"

O resultado mostra o nome, a zona e as etiquetas das VMs. Por 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 a etiqueta de 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 etiquetas para a sua VM. Se a sua VM tiver a etiqueta da política do SO do agente de operações, é apresentado goog-ops-agent-policy na lista labels. Por exemplo:

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

Verifique se uma atribuição de política do SO do agente de operações foi implementada com êxito

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

Consola

  1. Na Google Cloud consola, aceda à página Políticas de SO:

    Aceda às políticas de SO

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Compute Engine.

  2. Para ver o estado das implementações da política de SO, clique no separador Atribuições da política de SO.

    As atribuições de políticas do SO do agente de operações têm IDs que começam pela string "goog-ops-agent". Se a atribuição tiver sido implementada com êxito, tem um estado de implementação "Succeeded" (Êxito).

gcloud

Para ver todas as atribuições de políticas do SO do agente de operações numa 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 numa zona. Se a atribuição foi implementada com êxito, tem um estado de implementação "SUCCEEDED". Por 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 do SO do agente de operações específica, execute o seguinte comando:

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

Desinstale o agente Ops em VMs abrangidas pela política de SO do agente Ops

Se desinstalar manualmente o agente de operações numa VM abrangida pela política do SO do agente de operações, a política reinstala-o. Para desinstalar o agente de operações, tem de remover primeiro a etiqueta goog-ops-agent-policy da VM. Depois de remover a etiqueta da política do SO do agente Ops de uma VM, pode desinstalar o agente Ops permanentemente.

Desinstale o agente de operações numa VM específica

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

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM:

    Aceda a Instâncias de VM

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda seja Compute Engine.

  2. Selecione o nome da MV que quer editar.

  3. Clique em Edit.

  4. Aceda à secção Etiquetas e, de seguida, clique em + Adicionar etiquetas.

  5. Localize a etiqueta com a chave goog-ops-agent-policy e clique em Eliminar item.

  6. Desinstale o agente.

gcloud

  1. Para remover a etiqueta 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.

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

Para desinstalar o agente de operações de VMs na zona que tem uma atribuição de política do SO do agente de operações, use o script fornecido pelo Cloud Monitoring. Não pode desinstalar o agente de um grupo de VMs através da Google Cloud consola.

Para executar o script, tem de ter a função de Editor da GuestPolicy (roles/osconfig.guestPolicyEditor).

Execute o seguinte script no Cloud Shell. 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 realiza as seguintes tarefas em cada zona:

  1. Encontra todas as políticas do SO do Ops Agent.
  2. Edita cada política para que desinstale o agente de operações nas VMs abrangidas.
  3. Elimina a política de SO do agente de operações.
  4. Remove a etiqueta goog-ops-agent-policy de cada VM coberta.

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

A política de SO do agente de operações abrange apenas VMs que tenham a etiqueta goog-ops-agent-policy e estejam na mesma zona que uma atribuição de política de SO do agente de operações existente. No entanto, pode estender a cobertura a outras VMs que foram criadas sem a política do SO do agente de operações atribuída às mesmas.

Para estender a cobertura da política a uma VM, tem de saber a versão do modelo da atribuição da política do SO do agente de operações na sua zona. Se a sua zona tiver várias atribuições de políticas do SO do agente de operações, encontre a atribuição com a versão do modelo mais recente. Para mostrar uma lista de atribuições de políticas do SO do agente Ops numa 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 a Google Cloud consola ou a CLI gcloud:

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM:

    Aceda a Instâncias de VM

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cuja legenda seja Compute Engine.

  2. Na lista Instâncias de VM, selecione as caixas de verificação junto às VMs que quer etiquetar e, de seguida, clique em Etiquetas.

  3. Para adicionar etiquetas, clique em +Adicionar etiqueta e adicione o par de chave-valor. A chave tem de ser goog-ops-agent-policy e o valor é a versão do modelo pretendida, como 1-0-0.

  4. Guarde 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

Autorização

A instalação do agente de operações usa o VM Manager e requer autorizações para ativar a API VM Manager e criar uma política. As autorizações necessárias estão todas disponíveis através da função Editor (roles/Editor). Em alternativa, pode pedir a um administrador do projeto que conceda as autorizações mínimas através da CLI do Google Cloud.

Autorizaçõ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

Autorizações necessárias para instalar o agente de operações em VMs existentes:

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

Pode encontrar as funções correspondentes que fornecem essas autorizações na referência de funções básicas e predefinidas do IAM, com exceção da autorização osconfig.projectBillingConfigs.update. Esta autorização está incluída na função osconfig.projectBillingConfig. Esta função não está disponível na consola, mas pode ser concedida através da CLI gcloud. Google Cloud

Exemplos de comandos para conceder funções para autorizações:

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