Создание расписаний обновления
Вы можете управлять расписаниями обновления с помощью портала Azure или новых модулей командлетов PowerShell.
Инструкции по созданию расписания обновления на портале Azure см. в статье Планирование развертывания обновлений.
Теперь модуль Az.Automation
поддерживает настройку Управления обновлениями с помощью Azure PowerShell. Командлет New-AzAutomationUpdateManagementAzureQuery
позволяет использовать теги, расположение и сохраненные поисковые запросы с целью настройки расписаний обновления для гибкой группы компьютеров.
Пример сценария
В примере скрипта в этом разделе показано использование тегов и запросов для создания динамических групп компьютеров, к которым можно применять расписания обновления. Он выполняет указанные ниже действия. При создании собственных скриптов можно обращаться к реализациям конкретных действий.
- Создает расписание обновления службы автоматизации Azure, которое выполняется каждую субботу в 08:00.
- Создает запрос для всех компьютеров, соответствующих следующим условиям:
- развернуты в регионе Azure
westus
,eastus
илиeastus2
; - имеют тег
Owner
со значениемJaneSmith
; - имеют тег
Production
со значениемtrue
.
- развернуты в регионе Azure
- Применяет расписание обновления к запрошенным компьютерам и устанавливает интервал обновления, равный двум часам.
Перед запуском примера скрипта необходимо войти в систему с помощью командлета Connect-AzAccount
. При запуске скрипта укажите следующие сведения:
- идентификатор целевой подписки;
- целевая группа ресурсов;
- имя рабочей области Log Analytics;
- имя учетной записи службы автоматизации Azure.
<#
.SYNOPSIS
This script orchestrates the deployment of the solutions and the agents.
.Parameter SubscriptionName
.Parameter WorkspaceName
.Parameter AutomationAccountName
.Parameter ResourceGroupName
#>
param (
[Parameter(Mandatory=$true)]
[string] $SubscriptionId,
[Parameter(Mandatory=$true)]
[string] $ResourceGroupName,
[Parameter(Mandatory=$true)]
[string] $WorkspaceName,
[Parameter(Mandatory=$true)]
[string] $AutomationAccountName,
[Parameter(Mandatory=$false)]
[string] $scheduleName = "SaturdayCriticalSecurity"
)
Import-Module Az.Automation
$startTime = ([DateTime]::Now).AddMinutes(10)
$schedule = New-AzAutomationSchedule -ResourceGroupName $ResourceGroupName `
-AutomationAccountName $AutomationAccountName `
-StartTime $startTime `
-Name $scheduleName `
-Description "Saturday patches" `
-DaysOfWeek Saturday `
-WeekInterval 1 `
-ForUpdateConfiguration
# Using AzAutomationUpdateManagementAzureQuery to create dynamic groups.
$queryScope = @("/subscriptions/$SubscriptionID/resourceGroups/")
$query1Location =@("westus", "eastus", "eastus2")
$query1FilterOperator = "Any"
$ownerTag = @{ "Owner"= @("JaneSmith") }
$ownerTag.Add("Production", "true")
$DGQuery = New-AzAutomationUpdateManagementAzureQuery -ResourceGroupName $ResourceGroupName `
-AutomationAccountName $AutomationAccountName `
-Scope $queryScope `
-Tag $ownerTag
$AzureQueries = @($DGQuery)
$UpdateConfig = New-AzAutomationSoftwareUpdateConfiguration -ResourceGroupName $ResourceGroupName `
-AutomationAccountName $AutomationAccountName `
-Schedule $schedule `
-Windows `
-Duration (New-TimeSpan -Hours 2) `
-AzureQuery $AzureQueries `
-IncludedUpdateClassification Security,Critical
Дальнейшие действия
См. примеры реализации общих политик в Azure, которые могут помочь в управлении серверами.