Controlar as atualizações com as Configurações de Manutenção e a CLI do Azure
Aplica-se a: ✔️ VMs do Linux ✔️ VMs do Windows ✔️ Conjuntos de dimensionamento flexíveis ✔️ Conjuntos de dimensionamento uniformes
Você pode usar o recurso Configurações de Manutenção para controlar quando aplicar as atualizações de plataforma para vários recursos do Azure. Este artigo aborda as opções da CLI do Azure para usar esse recurso. Para obter mais informações sobre os benefícios de uso das Configurações de Manutenção, suas limitações e outras opções de gerenciamento, consulte Gerenciamento de atualizações de plataforma com as Configurações de Manutenção.
Importante
Escopos específicos com suporte para determinados tipos de computadores e agendamentos. Certifique-se de selecionar o escopo correto para sua máquina virtual (VM).
Criar uma configuração de manutenção
A primeira etapa da criação de uma configuração de manutenção é criar um grupo de recursos como contêiner para a sua configuração. Este exemplo cria um grupo de recursos chamado myMaintenanceRG em eastus. Se você já tiver um grupo de recursos que deseja usar, poderá ignorar essa parte e substituir o nome do grupo de recursos pelo seu no restante dos exemplos.
az group create \
--location eastus \
--name myMaintenanceRG
Depois de criar o grupo de recursos, use az maintenance configuration create
para criar uma configuração de manutenção.
Host
Este exemplo cria uma configuração de manutenção denominada myConfig com escopo para computadores host, com uma janela de agendamento de 5 horas na quarta segunda-feira de cada mês:
az maintenance configuration create \
--resource-group 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"
O uso de --maintenance-scope host
garante que a configuração de manutenção seja usada para controlar atualizações para a infraestrutura do host. Se você tentar criar uma configuração com o mesmo nome, mas em um local diferente, receberá um erro. Os nomes de configuração devem ser exclusivos para seu grupo de recursos.
Para verificar se a configuração de manutenção foi criada com êxito, você pode consultar as Configurações de Manutenção disponíveis usando az maintenance configuration list
:
az maintenance configuration list
--query "[].{Name:name, ID:id}"
--output table
Você pode expressar a recorrência da manutenção como diária, semanal ou mensal. Estes são alguns exemplos:
- Diário: Um valor
maintenance-window-recur-every
de"Day"
ou"3Days"
. - Semanal: Um valor
maintenance-window-recur-every
de"3Weeks"
ou"Week Saturday,Sunday"
. - Mensal: Um valor
maintenance-window-recur-every
de"Month day23,day24"
ou"Month Last Sunday"
ouMonth Fourth Monday
.
conjuntos de escala de máquina virtual
Este exemplo cria uma configuração de manutenção chamada myConfig com o escopo da imagem do SO para conjuntos de dimensionamento de máquinas virtuais, com uma janela de agendamento de 5 horas na quarta segunda-feira de cada mês:
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope osimage \
--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"
VMs convidadas
Este exemplo cria uma configuração de manutenção chamada myConfig com escopo para computadores convidadas (VMs e servidores habilitados para Azure Arc), com uma janela de agendamento de 2 horas a cada 20 dias. Saiba mais sobre Configurações de Manutenção em VMs convidadas.
az maintenance configuration create \
--resource-group myMaintenanceRG \
--resource-name myConfig \
--maintenance-scope InGuestPatch \
--location eastus \
--maintenance-window-duration "02:00" \
--maintenance-window-recur-every "20days" \
--maintenance-window-start-date-time "2022-12-30 07:00" \
--maintenance-window-time-zone "Pacific Standard Time" \
--install-patches-linux-parameters package-name-masks-to-exclude="ppt" package-name-masks-to-include="apt" classifications-to-include="Other" \
--install-patches-windows-parameters kb-numbers-to-exclude="KB123456" kb-numbers-to-include="KB123456" classifications-to-include="FeaturePack" \
--reboot-setting "IfRequired" \
--extension-properties InGuestPatchMode="User"
Atribuir a configuração
Use az maintenance assignment create
para atribuir a configuração ao seu computador.
VM Isolada
Aplique a configuração a uma VM de host isolada usando a ID da configuração. Especifique --resource-type virtualMachines
. Forneça o nome da VM para --resource-name
, o grupo de recursos da VM para --resource-group
e o local da 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/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Host dedicado
Para aplicar uma configuração a um host dedicado, você precisa incluir --resource-type hosts
, --resource-parent-name
com o nome do grupo de hosts e --resource-parent-type hostGroups
.
O parâmetro --resource-id
é a ID do host. Você pode usar az-vm-host-get-instance-view para obter a ID do host dedicado.
az maintenance assignment create \
--resource-group myDHResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myDhResourceGroup/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig" \
--location eastus \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
conjuntos de escala de máquina virtual
az maintenance assignment create \
--resource-group myMaintenanceRG \
--location eastus \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--configuration-assignment-name myConfig \
--maintenance-configuration-id "/subscriptions/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
VMs convidadas
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/{subscription ID}/resourcegroups/myMaintenanceRG/providers/Microsoft.Maintenance/maintenanceConfigurations/myConfig"
Verificar a configuração
Você pode verificar se a configuração foi aplicada corretamente ou verificar qual configuração está aplicada no momento, usando az maintenance assignment list
.
VM Isolada
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Host 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}" \
--output table
conjuntos de escala de máquina virtual
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
VMs convidadas
az maintenance assignment list \
--provider-name Microsoft.Compute \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--query "[].{resource:resourceGroup, configName:name}" \
--output table
Verificar atualizações pendentes
Use az maintenance update list
para verificar se há atualizações pendentes. Atualize --subscription
para que seja a ID da assinatura que contém a VM.
Se não houver atualizações, o comando retornará uma mensagem de erro que contém o texto Resource not found...StatusCode: 404
.
Se houver atualizações, o comando retornará apenas uma, mesmo que várias atualizações estejam pendentes. Os dados para essa atualização são retornados em um 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 Isolada
Verifique se há atualizações pendentes para uma VM isolada. Neste exemplo, a saída é formatada como uma tabela para facilitar a leitura:
az maintenance update list \
--subscription {subscription ID} \
--resource-group myMaintenanceRg \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--output table
Host dedicado
Verifique se há atualizações pendentes para um host dedicado. Neste exemplo, a saída é formatada como uma tabela para facilitar a leitura. Substitua os valores dos recursos pelos seus próprios.
az maintenance update list \
--subscription {subscription ID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parentname myHostGroup \
--resource-parent-type hostGroups \
--output table
Aplicar atualizações
Use az maintenance apply update
para aplicar atualizações pendentes. Em caso de sucesso, esse comando retorna o JSON que contém os detalhes da atualização. As chamadas para aplicar atualizações podem levar até 2 horas para serem concluídas.
VM Isolada
Crie uma solicitação para aplicar atualizações a uma VM isolada:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute
Host dedicado
Aplicar atualizações a um host dedicado:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myHostResourceGroup \
--resource-name myHost \
--resource-type hosts \
--provider-name Microsoft.Compute \
--resource-parent-name myHostGroup \
--resource-parent-type hostGroups
conjuntos de escala de máquina virtual
Aplicar atualizações a um conjunto de dimensionamento:
az maintenance applyupdate create \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute
Verificar o status de aplicação das atualizações
Você pode verificar o andamento das atualizações usando az maintenance applyupdate get
.
Para ver os resultados da última atualização, use default
como o nome da atualização. Ou substitua myUpdateName
pelo nome da atualização que foi retornada quando você 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
é a hora em que a atualização foi concluída, quer você tenha iniciado a atualização ou a plataforma a tenha iniciado porque você não usou a janela de manutenção automática. Se uma atualização nunca foi aplicada por meio das Configurações de Manutenção, LastUpdateTime
mostrará o valor padrão.
VM Isolada
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVM \
--resource-type virtualMachines \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Host dedicado
az maintenance applyupdate get \
--subscription {subscriptionID} \
--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
conjuntos de escala de máquina virtual
az maintenance applyupdate get \
--subscription {subscriptionID} \
--resource-group myMaintenanceRG \
--resource-name myVMSS \
--resource-type virtualMachineScaleSets \
--provider-name Microsoft.Compute \
--apply-update-name myUpdateName \
--query "{LastUpdate:lastUpdateTime, Name:name, ResourceGroup:resourceGroup, Status:status}" \
--output table
Excluir uma configuração de manutenção
Para excluir uma configuração de manutenção, use az maintenance configuration delete
. A exclusão da configuração remove o controle de manutenção dos recursos associados.
az maintenance configuration delete \
--subscription 1111abcd-1a11-1a2b-1a12-123456789abc \
-resource-group myResourceGroup \
--resource-name myConfig
Próximas etapas
Para saber mais, consulte Manutenção para máquinas virtuais no Azure.