다음을 통해 공유


업데이트 일정 만들기

Azure Portal 또는 새 PowerShell cmdlet 모듈을 사용하여 업데이트 일정을 관리할 수 있습니다.

Azure Portal을 통해 업데이트 일정을 만들려면 단일 VM에서 되풀이 업데이트 예약을참조하세요.

이제 Az.Automation 모듈은 Azure PowerShell을 사용하여 업데이트 관리 구성을 지원합니다. New-AzAutomationUpdateManagementAzureQuery cmdlet을 사용하면 태그, 위치 및 저장된 검색을 사용하여 유연한 컴퓨터 그룹에 대한 업데이트 일정을 구성할 수 있습니다.

예제 스크립트

이 섹션의 예제 스크립트는 태그 지정 및 쿼리를 사용하여 업데이트 일정을 적용할 수 있는 동적 컴퓨터 그룹을 만드는 방법을 보여 줍니다. 다음 작업을 수행합니다. 고유한 스크립트를 만들 때 특정 작업의 구현을 참조할 수 있습니다.

  • 매주 토요일 오전 8시에 실행되는 Azure Automation 업데이트 일정을 만듭니다.
  • 다음 조건과 일치하는 모든 컴퓨터에 대한 쿼리를 만듭니다.
    • westus, eastus또는 eastus2 Azure 위치에 배포됩니다.
    • Owner 태그에 JaneSmith값이 설정되어 적용되었습니다.
    • Production 태그에 true값이 설정되어 적용되었습니다.
  • 쿼리된 컴퓨터에 업데이트 일정을 적용하고 2시간 업데이트 기간을 설정합니다.

예제 스크립트를 실행하기 전에 Connect-AzAccount cmdlet을 사용하여 로그인해야 합니다. 스크립트를 시작할 때 다음 정보를 제공합니다.

  • 대상 구독 ID
  • 대상 리소스 그룹
  • Log Analytics 작업 영역 이름
  • 사용자의 Azure Automation 계정 이름

    <#
        .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 일반적인 정책을 구현하는 방법의 예제를 참조하세요.