자동화된 Runbook 스크립트를 사용하여 마이그레이션
적용 대상: ✔️ Windows VM ✔️ Linux VM ✔️ 온-프레미스 환경 ✔️ Azure Arc 지원 서버
이 문서에서는 마이그레이션 Runbook을 사용하여 모든 워크로드(컴퓨터 및 일정)를 Automation 업데이트 관리에서 Azure 업데이트 관리자로 자동으로 마이그레이션하는 방법에 대해 자세히 설명합니다.
다음 섹션에서는 스크립트를 실행하는 방법, 백 엔드에서 스크립트가 수행하는 작업, 예상되는 동작 및 제한 사항(해당되는 경우)에 대해 자세히 설명합니다. 스크립트를 사용하면 한 번에 하나의 자동화 계정에서 모든 머신과 일정을 마이그레이션할 수 있습니다. 자동화 계정이 여러 개라면 모든 자동화 계정에 대해 Runbook을 실행해야 합니다.
큰 틀에서 보면, 사용자는 다음 단계에 따라 머신과 일정을 Automation 업데이트 관리에서 Azure 업데이트 관리자로 마이그레이션해야 합니다.
지원되지 않는 시나리오
- 비 Azure 저장된 검색 쿼리는 마이그레이션되지 않습니다. 수동으로 마이그레이션해야 합니다.
제한 사항 및 주의 사항의 전체 목록은 마이그레이션의 핵심 사항을 참조하세요.
단계별 가이드
위의 각 단계에서 언급하는 정보는 아래에서 자세히 설명합니다.
필수 구성 요소 1: 비 Azure 머신을 Arc에 온보딩
수행할 작업
마이그레이션 자동화 Runbook은 Arc에 온보딩되지 않은 리소스는 무시합니다. 따라서 마이그레이션 Runbook을 실행하기 전에 모든 비 Azure 머신을 Azure Arc에 온보딩하는 것이 필수 구성 요소입니다. 단계에 따라 머신을 Azure Arc에 온보딩합니다.
필수 구성 요소 2: PowerShell 스크립트를 실행하여 사용자 ID 및 역할 할당 만들기
A. 스크립트 실행을 위한 필수 구성 요소
- PowerShell에서
Install-Module -Name Az -Repository PSGallery -Force
명령을 실행합니다. 필수 구성 요소 스크립트는 Az.Modules에 따라 달라집니다. 이 단계는 Az.Modules가 없거나 업데이트되지 않을 때 필요합니다. - 이 필수 구성 요소 스크립트를 실행하려면 머신, 일정, 로그 분석 작업 영역 및 자동화 계정 같은 Automation 업데이트 관리 리소스를 포함하는 모든 구독에 대해 Microsoft.Authorization/roleAssignments/write 권한이 있어야 합니다. Azure 역할을 할당하는 방법을 참조하세요.
- 업데이트 관리 권한이 있어야 합니다.
B. 스크립트 실행
PowerShell 스크립트 MigrationPrerequisiteScript
를 다운로드하여 실행합니다. 이 스크립트는 입력으로 마이그레이션할 Automation 계정의 AutomationAccountResourceId와 AutomationAccountAzureEnvironment를 사용합니다. AutomationAccountAzureEnvironment에 허용되는 값은 자동화 계정이 속한 클라우드를 나타내는 AzureCloud, AzureUSGovernment 및 AzureChina입니다.
자동화 계정>속성으로 이동하면 AutomationAccountResourceId를 가져올 수 있습니다.
C. 확인
스크립트를 실행한 후 자동화 계정에서 사용자 관리 ID가 생성되었는지 확인합니다. Automation 계정>ID>할당된 사용자.
D. 스크립트에 의한 백 엔드 작업
마이그레이션을 실행하고 스크립트를 디보딩하는 데 필요한 Automation 계정의 Az.Modules 업데이트.
자동화 계정이 속한 Azure 클라우드 환경을 저장할 AutomationAccountAzureEnvironment라는 이름의 자동화 변수를 만듭니다.
Automation 계정과 동일한 구독 및 리소스 그룹에서 사용자 ID를 만듭니다. 사용자 ID의 이름은 AutomationAccount_aummig_umsi 형식이 됩니다.
Automation 계정에 사용자 ID 연결.
스크립트는 사용자 관리 ID에 업데이트 관리 권한 필요 권한을 할당합니다.
- 이를 위해 스크립트는 이 자동화 계정으로 Automation 업데이트 관리에 온보딩된 모든 머신을 가져오고, 해당 구독 ID를 구문 분석하여 필요한 RBAC를 사용자 ID에 부여합니다.
- 이 스크립트는 여기서 MRP 구성을 만들 수 있도록, 자동화 계정이 속한 구독의 사용자 ID에 적절한 RBAC를 제공합니다.
- 스크립트는 Log Analytics 작업 영역 및 솔루션에 필요한 역할을 할당합니다.
Microsoft.Maintenance 및 Microsoft.EventGrid 리소스 공급자에 대한 필수 구독 등록입니다.
1단계: 머신 및 일정 마이그레이션
이 단계에서는 자동화 Runbook을 사용하여 자동화 계정에서 Azure Update Manager로 모든 머신과 일정을 마이그레이션합니다.
다음 단계를 따르세요.:
Runbook 갤러리에서 마이그레이션 Runbook을 가져오고 게시합니다. 찾아보기 갤러리에서 Azure Automation 업데이트를 검색하고, Azure Automation 업데이트 관리에서 Azure 업데이트 관리자로 마이그레이션이라는 마이그레이션 Runbook을 가져온 다음 Runbook을 게시합니다.
Runbook은 PowerShell 5.1을 지원합니다.
Runbook에 대한 자세한 정보 로깅을 True로 설정합니다.
Runbook을 실행하고 AutomationAccountResourceId, UserManagedServiceIdentityClientId 같은 필수 매개 변수를 전달합니다.
자동화 계정>속성에서 AutomationAccountResourceId를 가져올 수 있습니다.
자동화 계정>ID>할당된 사용자>ID>속성>클라이언트 ID에서 UserManagedServiceIdentityClientId를 가져올 수 있습니다.
EnablePeriodicAssessmentForMachinesOnboardedToUpdateManagement를 TRUE로 설정하면 Automation 업데이트 관리에 온보딩된 모든 컴퓨터에서 주기적 평가 속성이 사용하도록 설정됩니다.
MigrateUpdateSchedulesAndEnablePeriodicAssessmentonLinkedMachines를 TRUE로 설정하면 Automation 업데이트 관리에 있는 모든 업데이트 일정이 Azure 업데이트 관리자로 마이그레이션되고, 이러한 일정에 연결된 모든 컴퓨터에서 주기적 평가 속성이 True로 켜집니다.
Azure 업데이트 관리자에서 모든 유지 관리 속성이 생성될 ResourceGroupForMaintenanceConfigurations를 지정해야 합니다. 새 이름을 입력하면, 모든 유지 관리 구성이 생성될 리소스 그룹이 생성됩니다. 그러나 리소스 그룹이 이미 있는 이름을 입력하면, 모든 유지 관리 구성이 기존 리소스 그룹에 생성됩니다.
Azure Runbook 로그에서 SUC의 실행 상태와 마이그레이션 상태를 확인합니다.
백 엔드에서의 Runbook 작업
Runbook 마이그레이션은 다음 작업을 수행합니다.
- 모든 컴퓨터에서 주기적 평가를 사용하도록 설정합니다.
- 자동화 계정에 있는 모든 일정은 Azure 업데이트 관리자로 마이그레이션되고, 각 일정에 대한 (동일한 속성을 갖는) 유지 관리 구성이 생성됩니다.
스크립트 정보
다음은 마이그레이션 스크립트가 수행하는 동작입니다.
입력으로 가져온 이름의 리소스 그룹이 자동화 계정의 구독에 이미 존재하는지 확인합니다. 존재하지 않는다면 고객이 지정한 이름을 사용하여 리소스 그룹을 만듭니다. 이 리소스 그룹은 V2용 MRP 구성을 만드는 데 사용됩니다.
RebootOnly 설정은 Azure 업데이트 관리자에서 사용할 수 없습니다. RebootOnly 설정이 있는 일정은 마이그레이션되지 않습니다.
errored/expired/provisioningFailed/disabled 상태인 SUC를 필터링하고 마이그레이션되지 않음으로 표시한 다음, 이러한 SUC가 마이그레이션되지 않음을 나타내는 적절한 로그를 인쇄합니다.
구성 할당 이름은 AUMMig_AAName_SUCName 형식인 문자열입니다.
Azure Resource Graph를 확인하여, 이 동적 범위가 유지 관리 구성에 이미 할당되었는지 확인합니다. 할당되지 않았다면 AUMMig_ AAName_SUCName_SomeGUID 형식의 할당 이름으로 할당해야 합니다.
사전/사후 작업이 구성된 일정의 경우 스크립트는 사전/사후 작업의 Runbook과 사전/사후 유지 관리 이벤트에 대한 Event Grid 구독에 대한 자동화 웹후크를 만듭니다. 자세한 내용은 Azure 업데이트 관리자에서 사전/사후 작동 방식을 참조하세요.
요약된 로그 집합이 출력 스트림에 인쇄되어, 컴퓨터와 SUC의 전반적인 상태를 확인할 수 있습니다.
자세한 로그는 자세한 정보 표시 스트림으로 인쇄됩니다.
마이그레이션 후 작업인 소프트웨어 업데이트 구성은 다음 네 가지 마이그레이션 상태 중 하나일 수 있습니다.
- MigrationFailed
- PartiallyMigrated
- NotMigrated
- Migrated
아래 표에서는 각 마이그레이션 상태와 관련된 시나리오를 확인할 수 있습니다.
MigrationFailed | PartiallyMigrated | NotMigrated | Migrated |
---|---|---|---|
소프트웨어 업데이트 구성에 대한 유지 관리 구성을 만들지 못했습니다. | 패치 설정을 적용하지 못한 컴퓨터 수가 0이 아닙니다. | 내부 서비스 오류 같은 일부 클라이언트/서버 오류 때문에 API에서 소프트웨어 업데이트 구성을 얻지 못했습니다. | |
구성 할당이 실패한 컴퓨터의 수가 0이 아닙니다. | 소프트웨어 업데이트 구성의 재부팅 설정이 재부팅 전용입니다. 이 기능은 현재 Azure 업데이트 관리자에서 지원되지 않습니다. | ||
0이 아닌 동적 쿼리 수를 확인하지 못하여 Azure Resource Graph에 대한 쿼리를 실행하지 못했습니다. | |||
동적 범위 구성 할당 실패 수가 0이 아닙니다. | 소프트웨어 업데이트 구성의 DB에 성공 프로비전 상태가 없습니다. | ||
소프트웨어 업데이트 구성에 저장된 검색 쿼리가 있습니다. | 소프트웨어 업데이트 구성이 DB에서 errored 상태입니다. | ||
소프트웨어 업데이트 구성에 성공적으로 마이그레이션되지 않은 사전/사후 작업이 있습니다. | 소프트웨어 업데이트 구성과 연결된 일정이 마이그레이션 시점에 이미 만료되었습니다. | ||
소프트웨어 업데이트 구성과 관련된 일정이 사용 안 함으로 설정되었습니다. | |||
소프트웨어 업데이트 구성을 마이그레이션하는 동안 처리되지 않은 예외입니다. | 패치 설정을 적용하지 못한 컴퓨터 수가 0입니다. And 구성 할당이 실패한 컴퓨터의 수가 0입니다. And 0인 동적 쿼리 수를 확인하지 못하여 Azure Resource Graph에 대한 쿼리를 실행하지 못했습니다. And 동적 범위 구성 할당 실패 수가 0입니다. And 소프트웨어 업데이트 구성에 저장된 검색 쿼리가 없습니다. |
위의 표에서 소프트웨어 업데이트 구성에 특정 상태가 있는 이유에 해당하는 (하나 또는 그 이상의) 시나리오를 파악하려면 자세한 정보 표시/실패/경고 로그를 확인하여 오류 코드와 오류 메시지를 확인합니다.
또한 업데이트 일정의 이름으로 검색하여 관련된 로그를 가져와 디버깅할 수도 있습니다.
2단계: Automation 업데이트 관리 솔루션에서 디보딩
다음 단계를 따르세요.:
Runbook 갤러리에서 마이그레이션 Runbook을 가져옵니다. 찾아보기 갤러리에서 Azure Automation 업데이트를 검색하고, Azure Automation 업데이트 관리 디보딩이라는 마이그레이션 Runbook을 가져온 다음 Runbook을 게시합니다.
Runbook은 PowerShell 5.1을 지원합니다.
Runbook에 대한 자세한 정보 로깅을 True로 설정합니다.
Runbook을 시작하고 Automation AccountResourceId, UserManagedServiceIdentityClientId 등의 매개 변수를 전달합니다.
자동화 계정>속성에서 AutomationAccountResourceId를 가져올 수 있습니다.
자동화 계정>ID>할당된 사용자>ID>속성>클라이언트 ID에서 UserManagedServiceIdentityClientId를 가져올 수 있습니다.
Azure Runbook 로그에서 머신 및 일정의 디보딩 상태를 확인합니다.
백 엔드에서의 디보딩 스크립트 작업
- 이 Automation 계정에 존재하는 모든 소프트웨어 업데이트 구성에 대해 모든 기본 일정을 사용하지 않도록 설정합니다. 이 작업은 V2에 부분적으로 마이그레이션된 SUC에 Patch-MicrosoftOMSComputers Runbook이 트리거되지 않게 하기 위해 수행합니다.
- V1의 Automation 업데이트 관리에서 디보딩되는 자동화 계정의 연결된 Log Analytics 작업 영역에서 업데이트 솔루션을 삭제합니다.
- 비활성화된 모든 SUC의 요약 로그와, 연결된 로그 분석 작업 영역에서 업데이트 솔루션을 제거한 상태도 출력 스트림에 인쇄됩니다.
- 자세한 로그는 자세한 정보 표시 스트림에 인쇄됩니다.