Atualizações de controlo com Configurações de Manutenção e o CLI Azure

Aplica-se a: ✔️ VMs ✔️ Linux Windows VMs Conjuntos de escala ✔️ flexível conjuntos ✔️ de escala uniforme

As Configurações de Manutenção permitem-lhe decidir quando aplicar atualizações da plataforma a vários recursos Azure. Este tópico abrange as opções Azure CLI para anfitriões dedicados e VMs isolados. Para obter mais sobre os benefícios da utilização de Configurações de Manutenção, as suas limitações e outras opções de gestão, consulte Atualizações da plataforma de Gestão com Configurações de Manutenção.

Importante

Existem diferentes âmbitos que suportam certos tipos e horários de máquinas, por isso certifique-se de que está a selecionar o âmbito certo para a sua máquina virtual.

Criar uma configuração de manutenção

Utilize az maintenance configuration create para criar uma configuração de manutenção. Este exemplo cria uma configuração de manutenção chamada myConfig telescópio para o anfitrião.

az group create \
   --location eastus \
   --name myMaintenanceRG
az maintenance configuration create \
   -g myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope host\
   --location eastus

Copie o ID de configuração da saída para utilizar mais tarde.

A utilização --maintenance-scope host garante que a configuração de manutenção é utilizada para controlar atualizações na infraestrutura do anfitrião.

Se tentar criar uma configuração com o mesmo nome, mas num local diferente, terá um erro. Os nomes de configuração devem ser exclusivos do seu grupo de recursos.

Pode consultar as configurações de manutenção disponíveis utilizando az maintenance configuration list.

az maintenance configuration list --query "[].{Name:name, ID:id}" -o table 

Criar uma configuração de manutenção com janela programada

Também pode declarar uma janela agendada quando o Azure aplicará as atualizações dos seus recursos. Este exemplo cria uma configuração de manutenção chamada myConfig com uma janela programada de 5 horas na quarta segunda-feira de cada mês. Uma vez que crie uma janela programada, já não terá de aplicar as atualizações manualmente.

az maintenance configuration create \
   -g myMaintenanceRG \
   --resource-name myConfig \
   --maintenance-scope host \
   --location eastus \
   --maintenance-window-duration "05:00" \
   --maintenance-window-recur-every "Month Fourth Monday" \
   --maintenance-window-start-date-time "2020-12-30 08:00" \
   --maintenance-window-time-zone "Pacific Standard Time"

Importante

A duração da manutenção deve ser de 2 horas ou mais.

A recorrência da manutenção pode ser expressa diariamente, semanal ou mensalmente. Alguns exemplos incluem:

  • diariamente- manutenção-janela-recur-cada: "Dia" ou "3Days"
  • semanalmente- manutenção-janela-recur-cada: "3Weeks" ou "Week Saturday,Sunday"
  • mensal: "Mês dia23,dia 24" ou "Mês último domingo" ou "Quarta Segunda-feira do mês" ou "Quarta Segunda-feira mês"

Atribuir a configuração

Utilize az maintenance assignment create para atribuir a configuração à sua máquina.

VM isolado

Aplique a configuração num VM utilizando o ID da configuração. Especifique --resource-type virtualMachines e forneça o nome do VM para --resource-name, e o grupo de recursos para o VM em --resource-group, e a localização do VM para --location.

az maintenance assignment create \
   --resource-group myMaintenanceRG \
   --location eastus \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/1111abcd-1a11-1a2b-1a12-123456789abc/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"

Anfitrião dedicado

Para aplicar uma configuração a um anfitrião dedicado, é necessário incluir --resource-type hosts, --resource-parent-name com o nome do grupo anfitrião, e --resource-parent-type hostGroups.

O parâmetro --resource-id é a identificação do hospedeiro. Você pode usar a visão az-vm-host-get-instance-para obter a identificação do seu anfitrião dedicado.

az maintenance assignment create \
   -g myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --configuration-assignment-name myConfig \
   --maintenance-configuration-id "/subscriptions/1111abcd-1a11-1a2b-1a12-123456789abc/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
   -l eastus \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups 

Configuração de verificação

Pode verificar se a configuração foi aplicada corretamente ou verificar qual a configuração atualmente aplicada utilizando az maintenance assignment list.

VM isolado

az maintenance assignment list \
   --provider-name Microsoft.Compute \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --query "[].{resource:resourceGroup, configName:name}" \
   --output table

Anfitrião dedicado

az maintenance assignment list \
   --resource-group myDHResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups 
   --query "[].{ResourceGroup:resourceGroup,configName:name}" \
   -o table

Verifique se há atualizações pendentes

Utilize az maintenance update list para ver se existem atualizações pendentes. Atualização -subscrição para ser o ID para a subscrição que contém o VM.

Se não houver atualizações, o comando devolverá uma mensagem de erro, que conterá o texto: Resource not found...StatusCode: 404.

Se houver atualizações, apenas uma será devolvida, mesmo que existam várias atualizações pendentes. Os dados desta atualização serão devolvidos num objeto:

[
  {
    "impactDurationInSec": 9,
    "impactType": "Freeze",
    "maintenanceScope": "Host",
    "notBefore": "2020-03-03T07:23:04.905538+00:00",
    "resourceId": "/subscriptions/9120c5ff-e78e-4bd0-b29f-75c19cadd078/resourcegroups/DemoRG/providers/Microsoft.Compute/hostGroups/demoHostGroup/hosts/myHost",
    "status": "Pending"
  }
]

VM isolado

Verifique se há atualizações pendentes de um VM isolado. Neste exemplo, a saída é formatada como uma tabela de legibilidade.

az maintenance update list \
   -g myMaintenanceRg \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   -o table

Anfitrião dedicado

Para verificar se há atualizações pendentes para um anfitrião dedicado. Neste exemplo, a saída é formatada como uma tabela de legibilidade. Substitua os valores pelos recursos pelos seus.

az maintenance update list \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   -g myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parentname myHostGroup \
   --resource-parent-type hostGroups \
   -o table

Aplicar atualizações

Utilize az maintenance apply update para aplicar atualizações pendentes. No sucesso, este comando devolverá JSON contendo os detalhes da atualização. Aplicar chamadas de atualização pode demorar até 2 horas para ser concluída.

VM isolado

Crie um pedido para aplicar atualizações a um VM isolado.

az maintenance applyupdate create \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute

Anfitrião dedicado

Aplique atualizações a um anfitrião dedicado.

az maintenance applyupdate create \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   --resource-group myHostResourceGroup \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \
   --resource-parent-type hostGroups

Verifique o estado da aplicação de atualizações

Pode verificar o andamento das atualizações utilizando az maintenance applyupdate get.

Pode utilizar default como nome de atualização para ver os resultados da última atualização, ou substituir myUpdateName pelo nome da atualização que foi devolvida quando executou az maintenance applyupdate create.

Status         : Completed
ResourceId     : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso
LastUpdateTime : 1/1/2020 12:00:00 AM
Id             : /subscriptions/12ae7457-4a34-465c-94c1-17c058c2bd25/resourcegroups/TestShantS/providers/Microsoft.Comp
ute/virtualMachines/DXT-test-04-iso/providers/Microsoft.Maintenance/applyUpdates/default
Name           : default
Type           : Microsoft.Maintenance/applyUpdates

LastUpdateTime será o momento em que a atualização foi concluída, iniciada por si ou pela plataforma no caso de não ser utilizada a janela de auto-manutenção. Se nunca tiver havido uma atualização aplicada através do controlo de manutenção, mostrará o valor predefinido.

VM isolado

az maintenance applyupdate get \
   --resource-group myMaintenanceRG \
   --resource-name myVM \
   --resource-type virtualMachines \
   --provider-name Microsoft.Compute \
   --apply-update-name default 

Anfitrião dedicado

az maintenance applyupdate get \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \ 
   --resource-group myMaintenanceRG \
   --resource-name myHost \
   --resource-type hosts \
   --provider-name Microsoft.Compute \
   --resource-parent-name myHostGroup \ 
   --resource-parent-type hostGroups \
   --apply-update-name myUpdateName \
   --query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
   --output table

Excluir uma configuração de manutenção

Utilize az maintenance configuration delete para eliminar uma configuração de manutenção. A eliminação da configuração remove o controlo de manutenção dos recursos associados.

az maintenance configuration delete \
   --subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
   -g myResourceGroup \
   --resource-name myConfig

Passos seguintes

Para saber mais, consulte Manutenção e atualizações.