Crie trabalhos de patch

Pode usar o comando Patch para aplicar patches do sistema operativo a um grupo de instâncias de máquinas virtuais (VMs).

Para aplicar patches às suas VMs, conclua os seguintes passos:

  1. Configure a sua VM.
  2. Execute uma tarefa de aplicação de patches.

Antes de começar

  • Reveja as quotas de configuração do SO.
  • Para gerar registos de auditoria para eventos do VM Manager, ative os registos de auditoria de acesso a dados.
  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Trusted Cloud by S3NS 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 Trusted Cloud console to access Trusted Cloud by S3NS services and APIs, you don't need to set up authentication.

    gcloud

    1. Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init
    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

      Instale a CLI Google Cloud e, em seguida, inicie sessão na CLI gcloud com a sua identidade federada. Depois de iniciar sessão, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

    Para mais informações, consulte o artigo Autenticar para usar REST na Trusted Cloud documentação de autenticação.

Limitações

  • Só pode implementar e executar tarefas de aplicação de patches para VMs num único Trusted Cloud projeto. Não pode executar tarefas de aplicação de patches em Trusted Cloud projetos, mesmo que as VMs estejam numa VPC partilhada. No entanto, pode ver os dados de conformidade com patches em todos os projetos.
  • Por predefinição, o VM Manager não aplica patches a nenhuma VM que faça parte de um grupo de instâncias geridas (GIG). A aplicação de patches a estas VMs é comunicada como falhas na tarefa de aplicação de patches. Pode substituir este comportamento predefinido quando criar a tarefa de patch. Aplicam-se as seguintes limitações quando aplica patches a VMs que fazem parte de um GIG:
    • Quando um GIG repara uma VM, recria a VM com base no modelo de instância. Isto pode reverter a VM para um estado sem patches.
    • A aplicação de patches às VMs pode causar resultados inesperados num MIG com o dimensionamento automático ativado. O escalador automático elimina as VMs com patches quando a carga diminui e cria novas VMs, sem patches, usando o modelo de instância do MIG quando a carga aumenta. Por exemplo, se a utilização média da CPU for inferior à utilização alvo especificada para o ajuste de escala automático, o MIG pode remover algumas das VMs corrigidas durante o ajuste de escala.

Sistemas operativos compatíveis

Para ver a lista completa de sistemas operativos e versões que suportam o Patch, consulte os detalhes do sistema operativo.

Configure a sua VM

Para usar a funcionalidade Patch, conclua os seguintes passos:

  1. Para todas as VMs, configure o Gestor de VMs.
  2. Para VMs do Windows, a Google recomenda desativar as atualizações automáticas nas VMs. Isto reduz os conflitos entre as atualizações automáticas do Windows e o serviço de patches.

Autorizações

Os proprietários de um Trusted Cloud projeto têm acesso total para executar e gerir tarefas de aplicação de patches. Para todos os outros utilizadores, tem de conceder autorizações. Pode conceder uma das seguintes funções detalhadas:

  • roles/osconfig.patchJobExecutor: contém autorizações para executar, cancelar, obter e listar tarefas de aplicação de patches. Também contém autorizações para ver detalhes da instância para uma tarefa de aplicação de patches.
  • roles/osconfig.patchJobViewer: contém autorizações para acesso só de leitura para obter e listar tarefas de aplicação de patches. Também contém autorizações para ver detalhes da instância para uma tarefa de aplicação de patches.

Por exemplo, para conceder a um utilizador acesso à execução de tarefas de aplicação de patches, use o seguinte comando:

gcloud projects add-iam-policy-binding project-id \
    --member user:user-id@gmail.com \
    --role roles/osconfig.patchJobExecutor

Substitua o seguinte:

  • project-id: o ID do projeto.
  • user-id: o nome de utilizador do Google Workspace do utilizador.

Executar tarefas de aplicação de patches

Pode executar uma tarefa de patch através da Trusted Cloud consola, CLI do Google Cloud ou REST.

Quando executa uma tarefa de aplicação de patches, a aplicação de patches às VMs começa em simultâneo em todas as instâncias especificadas pelo filtro de instâncias.

Depois de iniciar uma tarefa de aplicação de patches, pode monitorizar os patches através do painel de controlo de patches. Demora aproximadamente 30 minutos após o início de uma tarefa de aplicação de patches para que os dados sejam preenchidos no painel de controlo.

Consola

  1. Na Trusted Cloud consola, aceda a Compute Engine > VM Manager > página Patch.

    Aceda à página Patch

  2. Clique em Nova implementação de patch.
  3. Na secção Segmentar VMs, selecione a zona que contém as VMs que quer aplicar patches. Também pode optar por selecionar todas as zonas.

    Depois de selecionar as zonas, pode filtrar ainda mais as VMs nessa zona.

    Por exemplo, para aplicar patches a VMs específicas nas zonas que selecionou, introduza os filtros de nome e etiqueta semelhantes aos seguintes:

    • Prefixo do nome: test-
    • Etiquetas: env=dev e app=web
  4. Na secção Configuração da correção, configure a correção.

    1. Especifique um nome para a correção.
    2. Selecione as atualizações necessárias para o seu sistema operativo. Para mais informações, consulte a configuração de patches.
  5. Na secção Agendamento, conclua o seguinte:

  6. Na secção Opções de implementação, configure as opções de implementação de patches:

    • Selecione se quer aplicar patches a uma zona de cada vez ou a várias zonas em simultâneo.
    • Defina um orçamento de interrupção. Um orçamento de interrupção é o número ou a percentagem de VMs numa zona que quer que sejam interrompidas de uma só vez pelo processo de aplicação de patches.
  7. Opcional: na secção Opções avançadas, pode concluir as seguintes tarefas:

  8. Clique em Implementar.

gcloud

Use o comando os-config patch-jobs execute para executar uma tarefa de aplicação de patches. Substitua instance-filter pelo filtro de instância que quer. Para mais informações sobre filtros de instâncias, consulte o artigo Filtros de instâncias.

gcloud compute os-config patch-jobs execute instance-filter

Para mais informações sobre as atualizações aplicadas, consulte o que está incluído num trabalho de patch do SO. Para personalizar as atualizações, use as flags opcionais.

Exemplos

Exemplo 1 Para executar uma tarefa de aplicação de patches com as seguintes configurações:

  • Nome da instância: instance-1
  • Zona: us-east1-b
  • Descrição: patch for instance-1

    Executaria o seguinte comando:

gcloud compute os-config patch-jobs execute \
    --instance-filter-names="zones/us-east1-b/instances/instance-1" \
    --description "patch for instance-1"

Exemplo 2 Suponhamos que quer executar uma tarefa de aplicação de patches de forma assíncrona com as seguintes configurações:

  • A correção tem de ser executada em todas as instâncias do projeto.
  • A tarefa de aplicação de patches tem de atingir o limite de tempo e parar após 1 hora e 30 minutos.
  • As máquinas têm de ser reiniciadas com base nas definições do sistema após a instalação das atualizações.
  • Em VMs com o Apt, a aplicação de patches é feita através do apt dist-upgrade.
  • Em VMs com o Windows, aplique apenas patches para a atualização KB4339284.
  • Em VMs que executam o Yum, a aplicação de patches é feita através do utilitário yum update-minimal --security.

Executaria o seguinte comando:

gcloud compute os-config patch-jobs execute \
    --instance-filter-all \
    --duration="1h30m" --reboot-config="DEFAULT" \
    --apt-dist --windows-exclusive-patches=4339284 \
    --yum-minimal --yum-security \
    --async

REST

Na API, crie um pedido POST para executar uma nova tarefa de aplicação de patches. Tem de definir explicitamente todos os campos de configuração obrigatórios, conforme descrito na documentação da API patchJobs.execute.

Para mais informações sobre as atualizações aplicadas, consulte o artigo O que está incluído num trabalho de patch do SO. Para personalizar as atualizações, use os parâmetros PatchConfig.

Por exemplo, um trabalho de patch com apenas os campos obrigatórios tem o seguinte aspeto.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter": instance-filter
}

Substitua o seguinte:

  • project-id: o ID do seu projeto.
  • instance-filter: os parâmetros de filtro que quer. Para mais informações sobre filtros de instâncias, consulte o artigo Filtros de instâncias.

Exemplos

Exemplo 1 Suponha que quer executar uma tarefa de aplicação de patches numa instância denominada instance1 localizada em us-east1-b. Neste exemplo, adicionamos uma descrição e especificamos que a tarefa é executada durante 1 hora e 30 minutos. Substitua project-id pelo ID do seu projeto.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "description":"patch instance1 in us-east1-b",
  "duration":"5400s",
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}

Exemplo 2 A seguinte tarefa de aplicação de patches seleciona VMs com as seguintes configurações:

  • Têm as etiquetas env=dev e app=web.
  • Estão em asia-east1-b ou asia-east1-c.
  • Têm o prefixo test-.

No comando seguinte, substitua project-id pelo ID do seu projeto.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "groupLabels":[
      {
        "labels":{
          "env":"dev",
          "app":"web"
        }
      }
    ],
    "instanceNamePrefixes":[
      "test-"
    ],
    "zones":[
      "asia-east1-b",
      "asia-east1-c"
    ]
  }
}

Exemplo 3

Suponhamos que quer executar uma tarefa de patch com as seguintes configurações:

  • A correção tem de ser executada em todas as instâncias do projeto.
  • A tarefa de aplicação de patches tem de atingir o limite de tempo e parar após 1 hora e 30 minutos. A API requer que o tempo seja expresso em segundos, por isso, defina-o como 5400 s.
  • As máquinas têm de ser reiniciadas com base nas definições do sistema após a instalação das atualizações.
  • Em VMs com o Apt, a aplicação de patches é feita através do apt dist-upgrade.
  • Em VMs com o Windows, aplique apenas patches para a atualização KB4339284.
  • Em VMs que executam o Yum, a aplicação de patches é feita através do utilitário yum update-minimal --security.

Criaria o seguinte pedido:

No comando seguinte, substitua project-id pelo ID do seu projeto.

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
 "duration":"5400s",
 "instanceFilter":{
   "all":true
 },
 "patchConfig":{
   "rebootConfig":"DEFAULT",
   "apt":{
     "type":"DIST"
   },
   "yum":{
     "security":true,
     "minimal":true
   },
   "windowsUpdate":{
     "exclusivePatches":"4339284"
   }
 }
}

Filtros de instâncias

Pode especificar as instâncias a incluir numa tarefa de aplicação de patches através de filtros. Os seguintes filtros são suportados para tarefas de aplicação de patches:

  • Filtrar por nome: limite a tarefa de aplicação de patches a instâncias com nomes específicos. Os nomes das instâncias têm de ser especificados através do URI completo. Os formatos de URI suportados incluem o seguinte:

    • zones/zone/instances/instance-name
    • projects/project-id/zones/zone/instances/instance-name
    • https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
  • Filtrar por prefixo do nome: limite a tarefa de aplicação de patches a instâncias com um prefixo específico no respetivo nome.

  • Filtrar por zona: limite a tarefa de aplicação de patches a instâncias numa zona específica.

  • Filtrar por etiqueta: limite a tarefa de aplicação de patches a instâncias com etiquetas específicas.

Também pode executar tarefas de patch em todas as instâncias num Trusted Cloud projeto definindo o campoall em instanceFilter como true. Para mais informações, consulte os exemplos de filtros de instâncias.

Exemplos de filtros de instâncias

Cenário gcloud filter Filtro de API
Todas as instâncias num Trusted Cloud projeto
--instance-filter-all
{
  "instanceFilter":{
    "all":"true"
  }
}
Uma instância com o nome instance1 localizada na zona us-east1-b.
--instance-filter-names="zones/us-east1-b/instances/instance1"
{
  "instanceFilter":{
    "instances":[
      "zones/us-east1-b/instances/instance1"
    ]
  }
}
Instâncias com o prefixo app-
--instance-filter-name-prefixes="app-"
{
  "instanceFilter":{
    "instanceNamePrefixes":[
      "app-"
    ]
  }
}
Instâncias nas zonas us-east1-b ou us-east1-c
--instance-filter-zones="us-east1-b","us-east1-c"
{
  "instanceFilter":{
    "zones":[
      "us-east1-b",
      "us-east1-c"
    ]
  }
}
Instâncias com a etiqueta de combinação de env=dev e app=web bem como instâncias com env=dev e app=worker.
--instance-filter-group-labels="env=dev,app=web"
--instance-filter-group-labels="env=dev,app=worker"
{
  "instanceFilter":{
    "groupLabels":[
      {
        "labels":{
          "env":"dev",
          "app":"web"
        }
      },
      {
        "labels":{
          "env":"dev",
          "app":"worker"
        }
      }
    ]
  }
}

Combinar filtros de instâncias

Também é possível combinar filtros de instâncias. Por exemplo, para executar uma tarefa de patch para instâncias que tenham o prefixo test-, que estejam localizadas na zona us-east1-c e que tenham as etiquetas env=dev e app=web, execute o seguinte comando:

gcloud compute os-config patch-jobs execute \
    --instance-filter-name-prefixes="test-" \
    --instance-filter-zones="us-east1-c" \
    --instance-filter-group-labels="env=prod,app=web"

Configuração de patch

Quando executa uma tarefa de patch, pode especificar parâmetros para controlar os patches que são aplicados na VM. Os parâmetros de configuração de patch dependem da plataforma e são frequentemente transmitidos às ferramentas de atualização do sistema subjacente. Os patches reais são provenientes dos repositórios de pacotes (Linux) ou do servidor do Windows Update (Windows) configurado na VM.

Pode especificar as seguintes configurações de patches para as suas VMs:

  • Para o Windows, especifica a classificação das correções a aplicar (por exemplo, Security e Critical) ou segmentar KBs específicos para exclusão. Para mais informações sobre a classificação de patches, consulte a documentação de apoio técnico da Microsoft.
  • Para o RHEL, o Rocky Linux e o CentOS, o sistema subjacente é o yum.

    • Para patches destinados a VMs do RHEL e do Rocky Linux, pode especificar pacotes security e minimal.
    • Para VMs do CentOS, não existem metadados security no repositório yum do CentOS. Por conseguinte, não precisa de especificar a opção security quando atualiza pacotes de segurança. Se não especificar nenhum pacote, a tarefa de patch atualiza todos os pacotes, incluindo os que têm atualizações de segurança.
    • Também pode excluir pacotes específicos. Para mais informações, consulte as yum páginas de manual.
  • Para o Debian e o Ubuntu, o sistema subjacente é o apt. Para patches que segmentam estas VMs, pode especificar dist-upgrade ou uma atualização padrão. Também pode excluir pacotes específicos. Para mais informações, consulte as páginas de manual do Debian ou as páginas de manual do Ubuntu.

  • Para o SuSE, o sistema subjacente é o zypper, que usa especificamente patches zypper. Para patches que segmentam estas VMs, pode especificar opções como:

    • with update: atualize todos os pacotes não abrangidos por patches
    • with optional: os patches opcionais são tratados conforme necessário
    • As categorias ou as gravidades das correções a aplicar

    Também pode excluir patches específicos.

Opcionalmente, para todos os sistemas operativos suportados, pode selecionar a instalação apenas de patches aprovados especificando estas atualizações. Isto permite-lhe introduzir uma lista de pacotes ou patches aprovados. Quando seleciona estes patches aprovados, só são instalados os pacotes ou os patches aprovados. Todos os outros parâmetros de configuração de patch são ignorados durante a atualização.

Exemplos

Consola

  1. Siga os passos descritos no separador da consola para criar um trabalho de patch ou uma implementação de patch.
  2. Na secção Configuração da correção, selecione os parâmetros da tarefa de correção.
  3. Faça as configurações adicionais necessárias para a tarefa de aplicação de patches ou a implementação.
  4. Clique em Implementar.

gcloud

Por exemplo, para executar uma tarefa de aplicação de patches em todas as instâncias na zona northamerica-northeast1-a com configurações de patches específicas para diferentes sistemas operativos, execute o comando gcloud compute os-config patch-jobs execute:

gcloud compute os-config patch-jobs execute \
    --instance-filter-zones="northamerica-northeast1-a" \
    --apt-dist \
    --yum-security \
    --yum-minimal \
    --zypper-categories=security \
    --windows-classifications=critical,security \
    --reboot-config=default

Para saber mais acerca das opções suportadas, execute o seguinte comando:

gcloud compute os-config patch-jobs execute --help

REST

Por exemplo, para executar uma tarefa de aplicação de patches em todas as instâncias na zona northamerica-northeast1-a com configurações de patches específicas para diferentes sistemas operativos, execute o seguinte comando:

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute
{
    "instanceFilter":{
        "zones":[
            "northamerica-northeast1-a"
        ]
    },
    "patchConfig":{
        "apt": {
            "type": "dist-upgrade"
        },
        "yum": {
            "security": true,
            "minimal": true
        },
        "zypper": {
            "categories": ["security"]
        },
        "windowsUpdate": {
            "classifications": ["CRITICAL", "SECURITY"]
        },
        "rebootConfig": "DEFAULT"
    }
}

Para saber mais sobre os parâmetros suportados, reveja a documentação PatchConfig API.

Período de manutenção

Um período de manutenção é o tempo total que permite que uma tarefa de aplicação de patches seja executada. As tarefas de aplicação de patches expiram se não forem concluídas dentro do período de manutenção especificado.

Por exemplo, se definir um período de manutenção de 60 minutes, não são iniciadas novas tarefas de aplicação de patches 60 minutos após a hora de início. Alguns processos, como o download de um ficheiro ou o reinício, podem ocorrer fora desta janela de manutenção. No entanto, não são iniciadas novas tarefas de patch.

Opções de reinício

Quando executa uma tarefa de aplicação de patches, pode especificar as opções de reinício para o patch. Estão disponíveis as seguintes opções:

  • Predefinição: o agente decide se é necessário reiniciar verificando os sinais conhecidos em cada SO. Podem ocorrer vários reinícios durante a aplicação de patches e podem ocorrer antes de serem instalados patches.
  • Sempre: a máquina é reiniciada após a conclusão da atualização.
  • Nunca: a máquina não é reiniciada após a conclusão da atualização. Em alguns casos, isto pode significar que nem todos os patches são totalmente aplicados.

Scripts pré-patch e pós-patch

Quando executa uma tarefa de aplicação de patches, pode especificar scripts a serem executados como parte do processo de aplicação de patches. Estes scripts são úteis para realizar tarefas como encerrar uma aplicação e fazer verificações de estado.

  • Os scripts de pré-patch são executados antes do início da aplicação de patches. Se for necessário reiniciar o sistema antes de iniciar a aplicação de patches, o script de pré-patch é executado antes do reinício.
  • Os scripts pós-patch são executados após a conclusão da aplicação de patches. Se for necessário reiniciar o sistema como parte da aplicação de patches, o script pós-patch é executado após o reinício.

Uma tarefa de aplicação de patches aceita um script pré-patch e um script pós-patch para Linux, e um script pré-patch e um script pós-patch para Windows. Os scripts do Linux e Windows têm de ser fornecidos através das flags, dos parâmetros ou das secções adequados quando especificados a partir da CLI do Google Cloud, do REST ou da Trusted Cloud consola, respetivamente. Os scripts Linux são executados apenas em VMs Linux e os scripts Windows são executados apenas em VMs Windows.

Estes ficheiros de scripts podem ser armazenados na VM ou num contentor do Cloud Storage com controlo de versões.

Armazene scripts de patches em contentores do Cloud Storage

Se quiser usar um contentor do Cloud Storage para armazenar os seus scripts, crie um contentor do Cloud Storage e carregue os seus scripts para o contentor. Quando usar um contentor do Cloud Storage, considere o seguinte:

  • Se o objeto do Cloud Storage não for publicamente legível, certifique-se de que a conta de serviço anexada à instância tem as autorizações do IAM necessárias para ler os objetos do Cloud Storage. Para garantir que tem as autorizações corretas, verifique as definições de autorizações no objeto do Cloud Storage.
  • Quando seleciona um script do Cloud Storage através da Trusted Cloud consola, é usada por predefinição a versão mais recente do objeto do Cloud Storage especificado.
  • Se a sua organização aplicar a restrição de localização de recursos, tem de armazenar os seus scripts em contentores do Cloud Storage em regiões e zonas que a política da organização permita.

Consola

  1. Siga os passos descritos no separador da consola para criar um trabalho de patch ou uma implementação de patch.
  2. Na secção Opções avançadas, tanto para a secção de pré-patch como para a de pós-patch, clique em Procurar. É apresentada uma página de objeto do Cloud Storage.
  3. Na página do objeto do Cloud Storage, selecione o contentor do Cloud Storage que contém o script e, de seguida, selecione o objeto ou o ficheiro do Cloud Storage.
  4. Faça as configurações adicionais necessárias para a tarefa de aplicação de patches ou a implementação.
  5. Clique em Implementar.

gcloud

Por exemplo, para executar uma tarefa de patch em todas as instâncias na zona northamerica-northeast1-a com o script pré e pós-patch para instâncias do Linux e Windows, execute o seguinte comando:

gcloud compute os-config patch-jobs execute \
    --instance-filter-zones="northamerica-northeast1-a" \
    --async \
    --pre-patch-linux-executable="/tmp/pre_patch_script.sh" \
    --post-patch-linux-executable="gs://my-patch-scripts/linux/post_patch_script#1523477886880" \
    --pre-patch-windows-executable="C:\\Users\\user\\pre-patch-script.cmd" \
    --post-patch-windows-executable="gs://my-patch-scripts/windows/post_patch_script.ps1#135920493447"

Para saber mais sobre os formatos de ficheiros aceitáveis, execute o seguinte comando:

gcloud compute os-config patch-jobs execute --help

REST

Por exemplo, para executar uma tarefa de patch em todas as instâncias na zona northamerica-northeast1-a com o script pré e pós-patch para instâncias do Linux e Windows, execute o seguinte comando:

POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "zones":[
      "northamerica-northeast1-a"
    ]
  },
  "patchConfig":{
    "preStep":{
      "linuxExecStepConfig":{
        "localPath":"/tmp/pre_patch_script.sh"
      },
      "windowsExecStepConfig":{
        "interpreter":"SHELL",
        "localPath":"C:\\Users\\user\\pre-patch-script.cmd"
      }
    },
    "postStep":{
      "linuxExecStepConfig":{
        "gcsObject":{
          "bucket":"my-patch-scripts",
          "generationNumber":"1523477886880",
          "object":"linux/post_patch_script"
        }
      },
      "windowsExecStepConfig":{
        "gcsObject":{
          "bucket":"my-patch-scripts",
          "generationNumber":"135920493447",
          "object":"windows/post_patch_script.ps1"
        },
        "interpreter":"POWERSHELL"
      }
    }
  }
}

Para saber mais sobre os formatos de ficheiros aceitáveis, reveja a secção ExecStepConfig da documentação da API PatchConfig.

Opções de implementação de patches

Pode optar por aplicar patches às VMs uma zona de cada vez (zona a zona) ou aplicar patches a todas as zonas em simultâneo (zonas concorrentes).

Além de fazer uma seleção para a implementação da zona, também pode especificar um orçamento de interrupção da zona para as suas VMs.

Orçamento de interrupção da zona

Um orçamento de interrupção é o número máximo (ou a percentagem) de VMs por zona a interromper em qualquer momento.

O que é considerado uma VM interrompida?

Durante a aplicação de patches, uma VM é considerada interrompida desde o momento em que o agente de configuração do SO é notificado para começar até à conclusão da aplicação de patches. Este tempo de interrupção inclui o tempo necessário para concluir o reinício e quaisquer passos pós-patch.

Uma VM também é contabilizada como parte do orçamento de interrupção se cumprir alguma das seguintes condições:

  • A operação de aplicação de patches falha ao aplicar os patches
  • A operação de aplicação de patches falha quando são executados passos pré ou pós-patch
  • A operação de aplicação de patches não responde com uma notificação de êxito antes de atingir o limite de tempo

Como funcionam os orçamentos de interrupção

Para implementações zona a zona, se o orçamento de interrupção numa zona for excedido, a tarefa de aplicação de patches é interrompida. Isto acontece porque a continuação para a zona seguinte requer a conclusão do processo de aplicação de patches na zona anterior.

Por exemplo, se o orçamento de interrupção tiver um valor de 10 e 8 VMs não forem corrigidas na zona atual, a tarefa de aplicação de patches continua a aplicar patches a 2 VMs de cada vez até a zona estar concluída. Quando essa zona for concluída com êxito, a aplicação de patches começa com 10 VMs de cada vez na zona seguinte. Se 10 VMs na zona seguinte não forem corrigidas, a tarefa de aplicação de patches é interrompida.

Exemplos

Consola

  1. Siga os passos descritos no separador da consola para criar um trabalho de patch ou uma implementação de patch.
  2. Na secção Opções de implementação, configure as opções de implementação:
    • Selecione se quer aplicar patches a uma zona de cada vez ou a todas as zonas em simultâneo.
    • Defina o orçamento de interrupção. Um orçamento de interrupção é o número ou a percentagem de VMs numa zona que quer que sejam interrompidas de uma só vez pelo processo de aplicação de patches.
  3. Faça as configurações adicionais necessárias para a tarefa de aplicação de patches ou a implementação.
  4. Clique em Implementar.

gcloud

Exemplo 1

Este exemplo mostra o comando os-config patch-jobs execute para executar uma tarefa de patch com as seguintes especificações:

  • Aplicar patches a todas as VMs no seu projeto
  • Aplicação de patches às VMs zona a zona
  • Garantir que não são interrompidas mais de 10 VMs na mesma zona num determinado momento
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=zone-by-zone \
   --rollout-disruption-budget=10

Exemplo 2

Este exemplo mostra o comando os-config patch-jobs execute para executar uma tarefa de patch com as seguintes especificações:

  • Aplicar patches a todas as VMs no seu projeto
  • Aplicação de patches a zonas em simultâneo
  • Garantir que não mais de 50% das VMs na mesma zona são interrompidas num determinado momento
gcloud compute os-config patch-jobs execute \
   --instance-filter-all \
   --rollout-mode=concurrent-zones \
   --rollout-disruption-budget-percent=50

REST

Este exemplo mostra o método patchJobs.execute para executar uma tarefa de patch com as seguintes especificações:

  • Aplicar patches a todas as VMs nas zonas us-central1-a, us-central1-c e us-central1-f
  • Aplicação de patches a zonas em simultâneo
  • Garantir que não mais de 25% das instâncias na mesma zona são interrompidas num determinado momento
POST https://osconfig.googleapis.com/v1/projects/project-id/patchJobs:execute

{
  "instanceFilter":{
    "zones":[
      "us-central1-a",
      "us-central1-c",
      "us-central1-f"
    ]
  },
  "rollout": {
    "disruptionBudget": {
      "percent": 25
    },
    "mode": "CONCURRENT_ZONES"
  }
}

Para saber mais sobre a implementação de patches, reveja a PatchRollout documentação da API.

Ative a aplicação de patches ao software Microsoft em VMs do Windows

Quando executa uma tarefa de aplicação de patches em VMs do Windows, por predefinição, o Patch aplica apenas os patches para o sistema operativo Windows.

Pode aplicar atualizações para software Microsoft, como o Microsoft SQL Server, o SharePoint Server ou o .NET Framework, em execução nas suas VMs do Windows quando executa uma tarefa de patch. Por predefinição, a aplicação de patches a estas aplicações está desativada para evitar a interrupção do serviço e separar as atualizações planeadas para este software. Para ativar a aplicação automática de patches ao software Microsoft, pode usar a IU do Windows ou o PowerShell.

IU do Windows

  1. No menu Iniciar do Windows, selecione Definições > Atualizar e segurança > Windows Update.
  2. Na secção Opções avançadas, ative a opção Receber atualizações de outros produtos Microsoft quando atualiza o Windows.

PowerShell

 $service_manager = New-Object -ComObject 'Microsoft.Update.ServiceManager'
 $service_manager.AddService2("7971f918-a847-4430-9279-4a52d1efe18d",7,"")

Depure uma tarefa de patch

Se a aplicação de patch falhar, pode usar os seguintes passos para ajudar a encontrar e resolver os problemas.

  1. Reveja os detalhes da instância para a tarefa de aplicação de patches afetada. Isto ajuda a identificar as instâncias que falharam ou o estado em que estão bloqueadas. A lista de detalhes da instância também contém uma breve mensagem de erro para cada instância.

    Se um patch falhar com o estado NO_AGENT_DETECTED ou TIMED_OUT, normalmente significa que o serviço enviou um pedido ao agente para iniciar a aplicação de patches, mas nunca recebeu uma resposta do agente. Reveja as seguintes possíveis causas e correções:

    • A instância não está em execução. Para corrigir este problema, inicie a instância de VM.
    • Valide a configuração através da lista de verificação de validação.
    • As definições de rede na rede VPC ou na instância não permitiram que o agente de configuração do SO comunicasse com a API OS Config. Para corrigir este problema, verifique as definições de rede.
  2. Se os detalhes da instância não fornecerem informações suficientes, reveja os registos do Cloud Logging ou a consola da porta série. O agente OS Config escreve as respetivas entradas de registo em ambas as localizações. No Cloud Logging, pode filtrar através do ID da tarefa de patch para ver todas as entradas de registo relacionadas com essa tarefa de patch. Também pode ativar o registo de depuração definindo o osconfig-log-level=debug valor de metadados ao nível da VM ou do Trusted Cloud projeto.

O que se segue?