Agende tarefas de patch

Além de executar tarefas de aplicação de patches a pedido, pode querer ter tarefas de aplicação de patches que sejam executadas automaticamente com base num horário definido, criando uma implementação de patches.

Cada implementação de patches pode ter uma programação única, que executa uma tarefa de patches numa data e hora específicas, ou uma programação recorrente, que executa uma tarefa de patches num intervalo especificado.

Os filtros de instâncias permitem-lhe aplicar patches a muitas instâncias em simultâneo. Estes filtros são aplicados a cada tarefa de patch individual no momento da respetiva execução. Isto garante que as alterações no seu projeto são captadas em tempo real. Por exemplo, suponhamos que é criada uma implementação de patch para aplicar patches a todas as instâncias na zona asia-souteast1-b a partir de dentro de duas semanas. No momento da criação do patch, tinha 20 instâncias na zona, mas, alguns dias depois, foram adicionadas 40 novas instâncias à zona. Uma vez que o filtro é aplicado no momento em que a correção começa, todas as 60 instâncias são atualizadas. Isto permite-lhe adicionar e remover instâncias sem ter de atualizar a programação da implementação de patches.

Antes de começar

  • Reveja as quotas de configuração do SO.
  • 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.

Pode agendar as tarefas de aplicação de patches através da Trusted Cloud consola, da CLI Google Cloud ou da REST.

Autorizações

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

  • roles/osconfig.patchDeploymentAdmin: Contém autorizações para criar, eliminar, obter e listar implementações de patches.
  • roles/osconfig.patchDeploymentViewer: contém autorizações para acesso de leitura para obter e listar implementações de patches.

Por exemplo, para conceder a um utilizador acesso de administrador às implementações de patches, execute o seguinte comando:

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

Substitua o seguinte:

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

Criar uma implementação de patch

Quando cria uma implementação de patch, o nome da implementação de patch tem de cumprir os seguintes requisitos de nomenclatura:

  • Cada nome tem de ser exclusivo num projeto
  • Contenham apenas letras minúsculas, números e hífenes
  • Começar com uma letra
  • Terminar com um número ou uma letra
  • Ter entre 1 e 63 carateres

Na CLI do Google Cloud e na REST, o nome da implementação de patches é designado por patch-deployment-id.

Depois de iniciar uma implementação de patches, pode monitorizar os seus 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.

    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 o que está incluído num trabalho de patch do SO.
  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-deployments create para criar uma implementação de patch.

gcloud compute os-config patch-deployments create patch-deployment-id \
    --file patch-deployment-file

Substitua o seguinte:

  • patch-deployment-id: o nome da implementação do patch.
  • patch-deployment-file: o caminho para o ficheiro YAML ou JSON que contém as configurações para a implementação de patches.

Exemplos de ficheiros YAML de implementação de patches

O seguinte ficheiro YAML de exemplo pode ser usado para criar um horário recorrente para todas as instâncias nas zonas us-west2-b e us-west2-c. A programação recorrente tem as seguintes especificações:

  • A data de início é 09 de janeiro de 2019 às 19:30
  • A data de conclusão é 9 de janeiro de 2020 às 19:30
  • O fuso horário a usar é "America/Los_Angeles"
  • É executado todas as semanas numa terça-feira
instanceFilter:
  zones:
  - us-west2-b
  - us-west2-c
recurringSchedule:
  frequency: WEEKLY
  weekly:
    dayOfWeek: TUESDAY
  timeOfDay:
    hours: 19
    minutes: 30
  timeZone:
    id: America/Los_Angeles
  startTime: '2019-09-01T12:00:00Z'
  endTime: '2020-09-01T12:00:00Z'

REST

Na API, crie um pedido POST para criar uma nova implementação de patches. Tem de definir explicitamente todos os campos de configuração obrigatórios, conforme descrito na documentação da API patchDeployments.create. Por exemplo, uma implementação de patch com os campos mínimos necessários (filtro de instância e agendamento) tem o seguinte aspeto. Substitua project-id pelo ID do seu projeto.

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

{
  "instanceFilter": instance-filter

  // Add one of the following parameters:
  "recurringSchedule": schedule
  "oneTimeSchedule": schedule
}

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.
  • schedule: forneça o parâmetro oneTimeSchedule ou recurringSchedule que detalha os parâmetros de agendamento, como a data, a hora e a frequência de execução da tarefa de aplicação de patches.

Exemplos

Exemplo 1: crie um agendamento único para executar uma tarefa de aplicação de patches a 10 de janeiro de 2020 às 00:00 UTC em todas as instâncias nas zonas us-west2-b e us-west2-c.

{
 "instanceFilter":{
   "zones":[
     "us-west2-b",
     "us-west2-c"
   ]
 },
 "oneTimeSchedule": {
   "executeTime": "2020-01-10T00:00:00Z"
 }
}

Exemplo 2: crie um agendamento recorrente para todas as instâncias nas zonas us-west2-b e us-west2-c. O horário recorrente tem as seguintes especificações:

  • A data de início é 09 de janeiro de 2019 às 19:30
  • A data de conclusão é 9 de janeiro de 2020 às 19:30
  • O fuso horário a usar é "America/Los_Angeles"
  • É executado todas as semanas numa terça-feira
POST https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments
{
  "instanceFilter":{
    "zones":[
      "us-west2-b",
      "us-west2-c"
    ]
  },
  "recurringSchedule":{
    "frequency":"WEEKLY",
    "weekly":{
      "dayOfWeek":"TUESDAY"
    },
    "timeOfDay":{
      "hours":19,
      "minutes":30
    },
    "timeZone":{
      "id":"America/Los_Angeles"
    },
    "startTime":"2019-09-01T12:00:00Z",
    "endTime":"2020-09-01T12:00:00Z"
  }
}

Apresentar implementações de patches

consola

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

    Aceda à página Patch

  2. Selecione o separador Implementações agendadas.

gcloud

Use o comando os-config patch-deployments list para listar as implementações de patches.

gcloud compute os-config patch-deployments list

Este comando devolve todas as implementações de patches. O resultado é semelhante ao seguinte:

NAME              LAST_RUN                  NEXT_RUN              FREQUENCY
first-deployment  2019-12-18T00:07:00.738Z  ---                   Once: Scheduled for 2019-12-18T00:07:00.000Z
my-deployment1    2020-01-05T14:00:00.228Z  2020-01-12T14:00:00Z  Recurring - Weekly
my-deployment2    ---                       2020-01-15T05:30:00Z  Recurring - Monthly on specific date(s)

Pode usar mais flags para limitar e formatar a sua pesquisa. Por exemplo, para listar as primeiras 10 implementações de patches em páginas de 2, execute o seguinte comando. Substitua project-id pelo ID do seu projeto.

gcloud compute os-config patch-deployments list --limit 10 --page-size 2

REST

Na API, crie um pedido GET para o método patchDeployments.list. Substitua project-id pelo ID do seu projeto.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments

Descreva uma implementação de patch

consola

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

    Aceda à página Patch

  2. Selecione o separador Implementações agendadas.
  3. Clique no nome da implementação que quer rever.

gcloud

Use o comando os-config patch-deployments describe para descrever uma implementação de patch. Substitua patch-deployment-id pelo nome da implementação de patches.

gcloud compute os-config patch-deployments describe patch-deployment-id

REST

Na API, crie um pedido GET para o método patchDeployments.get.

GET https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Substitua o seguinte:

  • project-id: o ID do seu projeto.
  • patch-deployment-id: o nome da implementação da correção.

Elimine uma implementação de patch

consola

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

    Aceda à página Patch

  2. Selecione o separador Implementações agendadas.
  3. Clique no nome da implementação que quer eliminar.
  4. Clique em Eliminar este horário.

gcloud

Use o comando os-config patch-deployments delete para eliminar uma implementação de patches. Substitua patch-deployment-id pelo nome da sua implementação de patch.

gcloud compute os-config patch-deployments delete patch-deployment-id

REST

Na API, crie um pedido DELETE para o método patchDeployments.delete.

DELETE https://osconfig.googleapis.com/v1/projects/project-id/patchDeployments/patch-deployment-id

Substitua o seguinte:

  • project-id: o ID do seu projeto.
  • patch-deployment-id: o nome da implementação da correção.

O que se segue?