Поделиться через


Создание расписаний обновления

Вы можете управлять расписаниями обновления с помощью портала Azure или новых модулей командлетов PowerShell.

Инструкции по созданию расписания обновления на портале Azure см. в статье Планирование развертывания обновлений.

Теперь модуль Az.Automation поддерживает настройку Управления обновлениями с помощью Azure PowerShell. Командлет New-AzAutomationUpdateManagementAzureQuery позволяет использовать теги, расположение и сохраненные поисковые запросы с целью настройки расписаний обновления для гибкой группы компьютеров.

Пример сценария

В примере скрипта в этом разделе показано использование тегов и запросов для создания динамических групп компьютеров, к которым можно применять расписания обновления. Он выполняет указанные ниже действия. При создании собственных скриптов можно обращаться к реализациям конкретных действий.

  • Создает расписание обновления службы автоматизации Azure, которое выполняется каждую субботу в 08:00.
  • Создает запрос для всех компьютеров, соответствующих следующим условиям:
    • развернуты в регионе Azure westus, eastus или eastus2;
    • имеют тег Owner со значением JaneSmith;
    • имеют тег Production со значением true.
  • Применяет расписание обновления к запрошенным компьютерам и устанавливает интервал обновления, равный двум часам.

Перед запуском примера скрипта необходимо войти в систему с помощью командлета 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, которые могут помочь в управлении серверами.