이 문서에서는 Azure DevTest Labs 사용자가 다음을 수행할 수 있는 방법을 설명합니다.
- Azure VM을 만들기 위한 ARM(Azure Resource Manager) 템플릿을 보고 편집하고 저장합니다.
- ARM 템플릿을 원본 제어 리포지토리에 저장합니다.
- Azure DevTest Labs에서 ARM 템플릿 리포지토리를 추가하고 액세스합니다.
Azure Resource Manager 템플릿은 프로젝트에 대한 인프라 및 구성을 정의하는 JSON(JavaScript Object Notation) 파일입니다. 이 템플릿은 선언적 구문을 사용합니다. 배포를 만들기 위한 프로그래밍 명령의 시퀀스를 작성하지 않고 의도하는 배포를 설명합니다.
VM 만들기를 위한 ARM 템플릿은 Microsoft.DevTestLab/labs/virtualmachines 리소스 유형을 사용합니다. 이 리소스 유형으로 만든 각 랩 VM은 랩의 내 가상 머신 목록에 별도의 항목으로 표시됩니다.
랩 사용자는 고유한 ARM 템플릿을 만들거나, 요구 사항에 맞게 기존 ARM 템플릿을 수정하거나, VM을 만드는 데 사용할 프라이빗 리포지토리 또는 공용 DevTest Labs GitHub 리포지토리 에서 미리 구성된 템플릿에 액세스할 수 있습니다.
Prerequisites
- VM을 만드는 동안 ARM 템플릿을 보거나 저장하려면 적어도 랩에서 DevTest Lab 사용자 역할입니다.
- 공용 리포지토리를 사용하도록 설정하거나 랩에 프라이빗 템플릿 리포지토리를 추가하려면 적어도 랩에서 기여자 역할입니다.
VM용 ARM 템플릿 보기 및 저장
사용 가능한 모든 Azure VM 기반에서 ARM 템플릿을 사용자 지정하고 사용하여 동일한 유형의 더 많은 VM을 배포하는 데 사용할 수 있습니다. Azure Portal에서 ARM 템플릿을 사용자 지정하고 저장하려면 다음을 수행합니다.
랩의 개요 페이지 위쪽 도구 모음에서 추가를 선택합니다.
기본 선택 페이지에서 원하는 VM 기반을 선택합니다.
랩 리소스 만들기 탭에서 설정을 구성하고 템플릿 VM에 원하는 아티팩트 추가
고급 설정 탭의 양식 아래쪽에 있는 Automation에서 ARM 템플릿 보기를 선택합니다.
Azure Resource Manager 템플릿 보기 페이지의 내용을 복사하여 azuredeploy.json파일로 저장한 다음 페이지를 닫습니다.
VM을 즉시 만들려면 랩 리소스 만들기 페이지의 맨 아래에서 만들기를 선택합니다.
랩 VM을 만드는 방법에 대한 자세한 내용은 Azure DevTest Labs에서 랩 가상 머신 만들기를 참조하세요.
ARM 템플릿 편집
ARM 템플릿을 다시 사용하여 더 많은 VM을 만들 때 템플릿 파일의 매개 변수 및 값을 변경할 수 있습니다. 기본 템플릿 파일을 편집하지 않고 템플릿 parameters
섹션만 업데이트하려면 azuredeploy.parameters.json라는 별도의 파일을 만들고 편집할 수 있습니다.
예를 들어 학습, 데모 및 평가판 시나리오에서는 특정 날짜 이후에 VM을 자동으로 삭제하여 비용이 계속 발생하지 않도록 할 수 있습니다. Azure Portal에서 랩 VM을 만들 때 고급 설정 탭에서 만료 날짜를 지정할 수 있습니다. ARM 템플릿에서 매개 변수를 expirationDate
추가하거나 해당 값을 변경할 수도 있습니다.
"parameters": {
"expirationDate": {
"type": "string",
"defaultValue": "2025-03-15T07:00:00.000Z"
}
}
예제 템플릿은 지정된 만료 날짜가 있는 랩에서 새 VM 만들기를 참조하세요.
Tip
중첩된 템플릿을 자동으로 관리하기 위한 URI 값을 만들려면 섹션 또는 파일에 및 _artifactsLocationSasToken
매개 변수를 parameters
추가할 _artifactsLocation
수 있습니다. 중첩된 템플릿에 관한 자세한 내용은 테스트 환경을 위한 중첩된 Azure Resource Manager 템플릿 배포를 참조하세요.
한 번에 여러 VM 만들기
Azure Portal에서 DevTest Labs VM 만들기 화면의 고급 설정 탭에서 인스턴스 수를 지정하여 한 번에 둘 이상의 VM을 만들 수 있습니다. ARM 템플릿에서 섹션의 copy
요소를 resources
추가하거나 편집하여 만들 인스턴스 수를 지정할 수 있습니다. For example:
"copy": {
"name": "[parameters('newVMName')]",
"count": 2
},
ARM 템플릿에서 둘 이상의 VM 인스턴스를 만드는 방법에 대한 자세한 내용은 ARM 템플릿의 리소스 반복을 참조하세요.
Git 리포지토리에 ARM 템플릿 저장
코드 제공 인프라와 코드 제공 구성에 대한 모범 사례로 ARM 템플릿은 원본 제어에 저장합니다. DevTest Labs는 GitHub 또는 Azure Repos 소스 제어 리포지토리에서 직접 ARM 템플릿을 로드할 수 있습니다. 그런 다음, 개발부터 테스트, 프로덕션 환경에 이르기까지 릴리스 주기 전반에 걸쳐 템플릿을 사용할 수 있습니다.
다음 파일 구조를 사용하여 ARM 템플릿을 원본 제어 리포지토리에 저장합니다.
- 기본 템플릿 파일 이름을 azuredeploy.json으로 지정합니다.
- 독립 실행형 매개 변수 사용자 지정 파일 의 이름을azuredeploy.parameters.json.
- 필요에 따라 템플릿 표시 이름 및 설명과 같은 메타데이터를 metadata.json파일에 정의합니다.
다음 스크린샷은 리포지토리의 일반적인 ARM 템플릿 폴더 구조를 보여 줍니다.
랩에 대한 액세스 템플릿 리포지토리
랩에서 사용할 수 있는 템플릿 리포지토리를 보고 액세스하려면 다음을 수행합니다.
- Azure Portal의 랩 개요 페이지에서 왼쪽 탐색 영역에서 구성 및 정책을 선택합니다.
- 구성 및 정책 페이지 왼쪽 탐색 영역의 외부 리소스에서 리포지토리를 선택합니다.
- Git 복제 URL을 복사하고 리포지토리에 연결하여 템플릿에 액세스합니다.
DevTest Labs 공용 GitHub 리포지토리의 공용 아티팩트 리포지토리 및 공용 환경 리포지토리는 모든 랩에서 사용할 수 있습니다. 랩에서 이러한 리포지토리를 사용하도록 설정하지 않은 경우 랩 소유자 또는 참가자는 공용 아티팩트 리포지토리 및 공용 환경 리포지토리 옆에 있는 확인란을 선택한 다음, 위쪽 메뉴 모음에서 사용을 선택하여 사용하도록 설정할 수 있습니다. 자세한 내용은 퍼블릭 환경 사용 및 구성을 참조하세요.
랩에 템플릿 리포지토리 추가
랩 소유자 또는 참가자는 모든 랩 사용자가 템플릿에 액세스할 수 있도록 ARM 템플릿 리포지토리를 랩에 추가할 수 있습니다. 랩에 리포지토리를 추가하려면 다음을 수행합니다.
- 리포지토리 페이지의 위쪽 메뉴 모음에서 추가를 선택합니다.
-
리포지토리 화면에서 다음 정보를 입력합니다.
- 이름: 리포지토리 이름입니다.
- Git 복제 URL: GitHub의 Git HTTPS 복제 URL입니다.
- 분기 (선택 사항): ARM 템플릿 정의가 있는 분기입니다.
- Azure Resource Manager 템플릿 폴더 경로: ARM 템플릿 정의에 대한 Git 복제 URI를 기준으로 하는 폴더 경로입니다.
-
인증 유형: 리포지토리에 안전하게 액세스하는 인증 방법: 개인 액세스 토큰 또는 GitHub 앱.
- 개인 액세스 토큰을 가져오려면 GitHub에서 프로필을 선택한 다음 설정>개발자 설정>개인 액세스 토큰을 선택합니다.
- GitHub 앱을 사용하려면 GitHub로 로그인 을 선택하고 필요한 경우 로그인합니다. Microsoft DevCenter GitHub 앱이 설치되어 있어야 합니다.
- Select Save.
이제 리포지토리가 랩의 리포지토리 목록에 표시됩니다. 랩 사용자는 리포지토리 템플릿을 사용하여 다중 VM DevTest Labs 환경을 만들 수 있습니다. 랩 관리자는 템플릿을 사용하여 랩 배포 및 관리 작업을 자동화할 수 있습니다.
ARM 템플릿을 사용하여 VM 배포
ARM 템플릿을 사용하여 Azure VM을 만들고 배포하려면 다음 방법 중 원하는 방법을 사용할 수 있습니다.
- Azure portal
- Azure CLI
- PowerShell
- REST API
- GitHub 리포지토리의 단추
- Azure Cloud Shell
- Azure Pipelines DevTest Labs 작업 확장
배포에 대한 자세한 내용은 템플릿 배포 프로세스를 참조하세요.