Azure Pipelines를 사용하여 HPC 솔루션 빌드 및 배포
Azure DevOps 도구는 Azure Batch HPC(고성능 컴퓨팅) 솔루션 빌드 및 테스트를 자동화할 수 있습니다. Azure Pipelines는 소프트웨어를 빌드, 배포, 테스트 및 모니터링하기 위한 최신 CI(연속 통합) 및 CD(지속적인 배포) 프로세스를 제공합니다. 이러한 프로세스는 소프트웨어 제공을 가속해 주며 지원 인프라와 운영에 신경 쓰지 않고 코드에 집중할 수 있도록 지원합니다.
이 문서에서는 ARM 템플릿(Azure Resource Manager 템플릿)과 함께 Azure Pipelines를 사용하여 Azure Batch에 HPC 솔루션을 배포하여 CI/CD 프로세스를 설정하는 방법을 보여 줍니다. 이 예제에서는 Azure Batch 인프라를 배포하고 애플리케이션 패키지를 릴리스하기 위한 빌드 및 릴리스 파이프라인을 만듭니다. 다음 다이어그램은 코드가 로컬에서 개발된다는 가정하에 일반적인 배포 흐름을 보여 줍니다.
필수 조건
이 문서의 단계를 수행하려면 다음이 필요합니다.
Azure DevOps 조직 및 조직에서 생성된 Azure Repos 리포지토리가 있는 Azure DevOps 프로젝트입니다. Azure DevOps 프로젝트에 프로젝트 관리자, 빌드 관리자 및 릴리스 관리자 역할이 있어야 합니다.
역할 할당 기능을 포함하는 소유자 또는 기타 역할이 있는 활성 Azure 구독입니다. 자세한 내용은 Azure 역할 할당 이해를 참조하세요.
소스 제어 및 ARM 템플릿 구문에 대한 기본적인 이해.
솔루션 준비
이 문서의 예제에서는 여러 ARM 템플릿과 기존 오픈 소스 비디오 처리 애플리케이션인 FFmpeg를 사용합니다. 이러한 리소스를 복사하거나 다운로드하여 Azure Repos 리포지토리에 푸시할 수 있습니다.
Important
이 예제에서는 Windows 기반 Batch 노드에 Windows 소프트웨어를 배포합니다. Azure Pipelines, ARM 템플릿 및 Batch는 Linux 소프트웨어 및 노드도 완벽하게 지원합니다.
ARM 템플릿 이해
단위나 모듈과 유사한 세 가지 기능 템플릿은 특정 기능을 구현합니다. 그런 다음, 엔드투엔드 솔루션 템플릿은 기본 기능 템플릿을 배포합니다. 이 연결된 템플릿 구조를 사용하면 각 기능 템플릿을 개별적으로 테스트하고 여러 솔루션에서 재사용할 수 있습니다.
템플릿에 대한 자세한 내용은 Microsoft.Batch 리소스 종류에 대한 Resource Manager 템플릿 참조 가이드를 참조하세요.
스토리지 계정 템플릿
다음 코드를 storageAccount.json이라는 파일로 저장합니다. 이 템플릿은 Batch 계정에 애플리케이션을 배포하는 데 필요한 Azure Storage 계정을 정의합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"accountName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Storage Account"
}
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"name": "[parameters('accountName')]",
"sku": {
"name": "Standard_LRS"
},
"apiVersion": "2018-02-01",
"location": "[resourceGroup().location]",
"properties": {}
}
],
"outputs": {
"blobEndpoint": {
"type": "string",
"value": "[reference(resourceId('Microsoft.Storage/storageAccounts', parameters('accountName'))).primaryEndpoints.blob]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.Storage/storageAccounts', parameters('accountName'))]"
}
}
}
배치 계정 템플릿
다음 코드를 batchAccount.json이라는 파일로 저장합니다. 이 템플릿은 배치 계정을 정의합니다. 배치 계정은 노드 풀에서 애플리케이션을 실행하는 플랫폼 역할을 합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"batchAccountName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Batch Account"
}
},
"storageAccountId": {
"type": "string",
"metadata": {
"description": "ID of the Azure Storage Account"
}
}
},
"variables": {},
"resources": [
{
"name": "[parameters('batchAccountName')]",
"type": "Microsoft.Batch/batchAccounts",
"apiVersion": "2017-09-01",
"location": "[resourceGroup().location]",
"properties": {
"poolAllocationMode": "BatchService",
"autoStorage": {
"storageAccountId": "[parameters('storageAccountId')]"
}
}
}
],
"outputs": {}
}
Batch 풀 템플릿
다음 코드를 batchAccountPool.json이라는 파일로 저장합니다. 이 템플릿은 배치 계정에 노드 풀 및 노드를 만듭니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"batchAccountName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Batch Account"
}
},
"batchAccountPoolName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Batch Account Pool"
}
}
},
"variables": {},
"resources": [
{
"name": "[concat(parameters('batchAccountName'),'/', parameters('batchAccountPoolName'))]",
"type": "Microsoft.Batch/batchAccounts/pools",
"apiVersion": "2017-09-01",
"properties": {
"deploymentConfiguration": {
"virtualMachineConfiguration": {
"imageReference": {
"publisher": "MicrosoftWindowsServer",
"offer": "WindowsServer",
"sku": "2022-datacenter",
"version": "latest"
},
"nodeAgentSkuId": "batch.node.windows amd64"
}
},
"vmSize": "Standard_D2s_v3"
}
}
],
"outputs": {}
}
오케스트레이터 템플릿
다음 코드를 deployment.json이라는 파일로 저장합니다. 이 최종 템플릿은 세 가지 기본 기능 템플릿을 배포하는 오케스트레이터 역할을 합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"StorageContainerUri": {
"type": "string",
"metadata": {
"description": "URI of the Blob Storage Container containing the Azure Resource Manager templates"
}
},
"StorageContainerSasToken": {
"type": "string",
"metadata": {
"description": "The SAS token of the container containing the Azure Resource Manager templates"
}
},
"applicationStorageAccountName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Storage Account"
}
},
"batchAccountName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Batch Account"
}
},
"batchAccountPoolName": {
"type": "string",
"metadata": {
"description": "Name of the Azure Batch Account Pool"
}
}
},
"variables": {},
"resources": [
{
"apiVersion": "2017-05-10",
"name": "storageAccountDeployment",
"type": "Microsoft.Resources/deployments",
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/storageAccount.json', parameters('StorageContainerSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"accountName": {"value": "[parameters('applicationStorageAccountName')]"}
}
}
},
{
"apiVersion": "2017-05-10",
"name": "batchAccountDeployment",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"storageAccountDeployment"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/batchAccount.json', parameters('StorageContainerSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"batchAccountName": {"value": "[parameters('batchAccountName')]"},
"storageAccountId": {"value": "[reference('storageAccountDeployment').outputs.resourceId.value]"}
}
}
},
{
"apiVersion": "2017-05-10",
"name": "poolDeployment",
"type": "Microsoft.Resources/deployments",
"dependsOn": [
"batchAccountDeployment"
],
"properties": {
"mode": "Incremental",
"templateLink": {
"uri": "[concat(parameters('StorageContainerUri'), 'arm-templates/batchAccountPool.json', parameters('StorageContainerSasToken'))]",
"contentVersion": "1.0.0.0"
},
"parameters": {
"batchAccountName": {"value": "[parameters('batchAccountName')]"},
"batchAccountPoolName": {"value": "[parameters('batchAccountPoolName')]"}
}
}
}
],
"outputs": {}
}
리포지토리 설정
ARM 템플릿, FFmpeg 앱 및 YAML 빌드 정의 파일을 Azure Repos 리포지토리에 업로드합니다.
4개의 ARM 템플릿을 리포지토리의 arm-templates 폴더에 업로드합니다.
애플리케이션 패키지의 경우 Windows 64비트 버전의 FFmpeg 4.3.1을 다운로드하여 추출하고 이를 리포지토리의 hpc-application 폴더에 업로드합니다.
빌드 정의의 경우 다음 정의를 hpc-app.build.yml 파일로 저장하고 이를 리포지토리의 파이프라인 폴더에 업로드합니다.
# To publish an application into Batch, you need to # first zip the file, and then publish an artifact, so # you can take the necessary steps in your release pipeline. steps: # First, zip up the files required in the Batch account. # For this instance, those are the ffmpeg files. - task: ArchiveFiles@2 displayName: 'Archive applications' inputs: rootFolderOrFile: hpc-application includeRootFolder: false archiveFile: '$(Build.ArtifactStagingDirectory)/package/$(Build.BuildId).zip' # Publish the zip file, so you can use it as part # of your Release pipeline later. - task: PublishPipelineArtifact@0 inputs: artifactName: 'hpc-application' targetPath: '$(Build.ArtifactStagingDirectory)/package'
리포지토리 설정을 마치면 폴더 구조에 다음과 같은 기본 섹션이 있어야 합니다.
- ARM 템플릿을 포함하는 arm-templates 폴더입니다.
- ffmpeg를 포함하는 hpc-application 폴더입니다.
- 빌드 파이프라인에 대한 YAML 빌드 정의 파일이 포함된 파이프라인 폴더입니다.
참고 항목
이 예제 코드베이스 구조는 애플리케이션, 인프라 및 파이프라인 코드를 동일한 리포지토리에 저장할 수 있음을 보여 줍니다.
Azure 파이프라인 만들기
소스 코드 리포지토리를 설정한 후 Azure Pipelines를 사용하여 애플리케이션에 대한 빌드, 테스트 및 배포 파이프라인을 구현합니다. 파이프라인의 이 단계에서는 일반적으로 테스트를 실행하여 코드의 유효성을 검사하고 소프트웨어 조각을 빌드합니다. 테스트의 수와 유형, 실행하는 기타 작업은 전반적인 빌드 및 릴리스 전략에 따라 다릅니다.
빌드 파이프라인 만들기
이 섹션에서는 배치 계정에서 실행되는 ffmpeg 소프트웨어와 함께 작동하는 YAML 빌드 파이프라인을 만듭니다.
Azure DevOps 프로젝트의 왼쪽 탐색 창에서 파이프라인을 선택한 다음, 새 파이프라인을 선택합니다.
코드는 어디에 있나요 화면에서 Azure Repos Git을 선택합니다.
리포지토리 선택 화면에서 리포지토리를 선택합니다.
참고 항목
비주얼 디자이너를 사용하여 빌드 파이프라인을 만들 수도 있습니다. 새 파이프라인 페이지에서 클래식 편집기 사용을 선택합니다. 비주얼 디자이너에서 YAML 템플릿을 사용할 수 있습니다. 자세한 내용은 클래식 파이프라인 정의를 참조하세요.
파이프라인 구성 화면에서 기존 Azure Pipelines YAML 파일을 선택합니다.
기존 YAML 파일 선택 화면에서 리포지토리에서 hpc-app.build.yml 파일을 선택한 다음, 계속을 선택합니다.
파이프라인 YAML 검토 화면에서 빌드 구성을 검토한 다음, 실행을 선택하거나 실행 옆에 있는 드롭다운 캐럿을 선택하고 저장을 선택합니다. 이 템플릿은 연속 통합을 사용하도록 설정하므로 리포지토리에 대한 새 커밋이 빌드에 설정된 조건을 충족하면 빌드가 자동으로 트리거됩니다.
라이브 빌드 진행률 업데이트를 볼 수 있습니다. 빌드 결과를 보려면 Azure Pipelines의 빌드 정의에서 적절한 실행을 선택합니다.
참고 항목
클라이언트 응용 프로그램을 사용하여 HPC 솔루션을 실행하는 경우, 이 응용 프로그램에 대한 별도의 빌드 정의를 만들어야 합니다. 방법 가이드는 Azure Pipelines 설명서를 참조하세요.
릴리스 파이프라인 만들기
Azure Pipelines 릴리스 파이프라인을 사용하여 애플리케이션 및 기본 인프라를 배포합니다. 릴리스 파이프라인은 CD를 사용하도록 설정하고 릴리스 프로세스를 자동화합니다. 애플리케이션 및 기본 인프라를 배포하는 몇 가지 단계가 있습니다.
이 솔루션에 대한 연결된 템플릿은 공용 HTTP 또는 HTTPS 엔드포인트에서 액세스할 수 있어야 합니다. 이 엔드포인트는 GitHub 리포지토리, Azure Blob Storage 계정 또는 다른 스토리지 위치일 수 있습니다. 업로드된 템플릿 아티팩트의 보안을 유지하려면 프라이빗 모드로 유지하되 일부 형식의 SAS(공유 액세스 서명) 토큰을 사용하여 액세스합니다.
다음 예제에서는 Azure Storage Blob에서 템플릿을 사용하여 인프라 및 애플리케이션을 배포하는 방법을 보여 줍니다.
파이프라인 설정
Azure DevOps 프로젝트의 왼쪽 탐색 영역에서 파이프라인>릴리스를 선택합니다.
다음 화면에서 새로 만들기>새 릴리스 파이프라인을 선택합니다.
템플릿 선택 화면에서 빈 작업을 선택한 다음, 스테이지 화면을 닫습니다.
페이지 맨 위에서 새 릴리스 파이프라인을 선택하고 파이프라인 이름을 Deploy Azure Batch + Pool과 같이 파이프라인과 관련된 이름으로 바꿉니다.
아티팩트 섹션에서 추가를 선택합니다.
아티팩트 추가 화면에서 빌드를 선택한 다음, 빌드 파이프라인을 선택하여 HPC 애플리케이션에 대한 출력을 가져옵니다.
참고 항목
원본 별칭을 만들거나 기본값을 적용할 수 있습니다. 릴리스 정의에서 작업을 생성하는 데 필요하므로 원본 별칭 값을 기록해 둡니다.
추가를 선택합니다.
파이프라인 페이지에서 아티팩트 옆에 있는 추가를 선택하여 다른 아티팩트인 Azure Repos 리포지토리에 대한 링크를 만듭니다. 이 링크는 리포지토리의 ARM 템플릿에 액세스하는 데 필요합니다. ARM 템플릿은 컴파일이 필요하지 않으므로 빌드 파이프라인을 통해 푸시할 필요가 없습니다.
참고 항목
나중에 사용할 원본 별칭 값을 다시 기록합니다.
변수 탭을 선택합니다. 여러 작업에 동일한 정보를 다시 입력할 필요가 없도록 파이프라인에 다음 변수를 만듭니다.
속성 값 applicationStorageAccountName HPC 애플리케이션 이진 파일을 보관할 스토리지 계정의 이름입니다. batchAccountApplicationName 배치 계정의 애플리케이션 이름입니다. batchAccountName 배치 계정의 이름입니다. batchAccountPoolName 처리를 수행할 VM(가상 머신) 풀의 이름입니다. batchApplicationId 다음 형식의 Batch 애플리케이션에 대한 고유 ID: /subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>^
/providers/Microsoft.Batch/batchAccounts/<batchAccountName>^
/applications/<batchAccountApplicationName>
.<subscriptionId>
자리 표시자를 Azure 구독 ID로 바꾸고 다른 자리 표시자를 이 목록의 다른 변수에 대해 설정한 값으로 바꿉니다.batchApplicationVersion Batch 애플리케이션의 의미 체계 버전(이 경우 4.3.1). location 배포할 리소스에 대한 Azure 지역입니다. resourceGroupName 리소스를 배포할 리소스 그룹의 이름입니다. storageAccountName 연결된 ARM 템플릿을 저장할 스토리지 계정의 이름입니다. StorageContainerSasToken $(<referenceName>.StorageContainerSasToken)
.<referenceName
자리 표시자를 다음 Azure 파일 복사 단계의 출력 변수 섹션에서 구성한 참조 이름 값으로 바꿉니다.StorageContainerUri $(<referenceName>.StorageContainerUri)
.<referenceName>
자리 표시자를 Azure 파일 복사 단계의 출력 변수 섹션에서 구성한 참조 이름 값으로 바꿉니다.작업 탭을 선택한 다음, 에이전트 작업을 선택합니다.
에이전트 작업 화면의 에이전트 풀에서 Azure Pipelines를 선택합니다.
에이전트 사양에서 windows-latest를 선택합니다.
작업 추가
다음을 수행하기 위해 6개의 작업을 만듭니다.
- 압축된 ffmpeg 파일을 다운로드합니다.
- 중첩된 ARM 템플릿을 호스팅할 스토리지 계정을 배포합니다.
- ARM 템플릿을 스토리지 계정에 복사합니다.
- 배치 계정 및 필수 종속성을 배포합니다.
- 배치 계정에서 애플리케이션을 만듭니다.
- 배치 계정에 애플리케이션 패키지를 업로드합니다.
다음 단계에서 지정하는 각 새 작업에 대해 다음을 수행합니다.
왼쪽 창에서 에이전트 작업 옆에 있는 + 기호를 선택합니다.
오른쪽 창에서 지정된 작업을 검색하고 선택합니다.
속성을 추가하거나 선택하여 작업을 구성합니다.
추가를 선택합니다.
다음과 같이 작업을 만듭니다.
파이프라인 아티팩트 다운로드 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: ApplicationPackage를 에이전트로 다운로드를 입력합니다.
- 아티팩트 이름: hpc-application을 입력합니다.
- 대상 디렉터리:
$(System.DefaultWorkingDirectory)
를 입력합니다.
ARM 템플릿을 저장할 Azure Storage 계정을 만듭니다. 기존 스토리지 계정을 사용할 수 있지만 이 자체 포함된 예제 및 콘텐츠 격리를 지원하기 위해 전용 스토리지 계정을 만듭니다.
ARM 템플릿 배포: 리소스 그룹 범위 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: ARM 템플릿용 스토리지 계정 배포를 입력합니다.
- Azure Resource Manager 연결: 적절한 Azure 구독을 선택합니다.
- 구독: 적절한 Azure 구독 선택을 선택합니다.
- 작업: 리소스 그룹 만들기 또는 업데이트를 선택합니다.
- 리소스 그룹:
$(resourceGroupName)
을 입력합니다. - 위치:
$(location)
을 입력합니다. - 템플릿:
$(System.ArtifactsDirectory)/<AzureRepoArtifactSourceAlias>/arm-templates/storageAccount.json
을 입력합니다.<AzureRepoArtifactSourceAlias>
자리 표시자를 이전에 적어 둔 리포지토리 원본 별칭으로 바꿉니다. - 템플릿 매개 변수 재정의:
-accountName $(storageAccountName)
을 입력합니다.
소스 제어의 아티팩트를 스토리지 계정에 업로드합니다. 이 Azure 파일 복사 작업의 일부는 스토리지 계정 컨테이너 URI 및 SAS 토큰을 변수로 출력하므로 이후 단계에서 다시 사용할 수 있습니다.
Azure 파일 복사 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: AzureBlob 파일 복사를 입력합니다.
- 원본:
$(System.ArtifactsDirectory)/<AzureRepoArtifactSourceAlias>/arm-templates/
를 입력합니다.<AzureRepoArtifactSourceAlias>
자리 표시자를 이전에 적어 둔 리포지토리 원본 별칭으로 바꿉니다. - Azure 구독: 적절한 Azure 구독을 선택합니다.
- 대상 형식: Azure Blob을 선택합니다.
- RM 스토리지 계정:
$(storageAccountName)
을 입력합니다. - 컨테이너 이름: 템플릿을 입력합니다.
- 참조 이름: 출력 변수를 확장한 다음, ffmpeg를 입력합니다.
참고 항목
이 단계가 실패하면 Azure DevOps 조직에 스토리지 계정에 대한 Storage Blob 기여자 역할이 있는지 확인합니다.
오케스트레이터 ARM 템플릿을 배포하여 배치 계정 및 풀을 만듭니다. 이 템플릿에는 스토리지 계정 컨테이너 URI 및 SAS 토큰에 대한 매개 변수가 포함됩니다. ARM 템플릿에 필요한 변수는 릴리스 정의의 변수 섹션에 보관되며 AzureBlob 파일 복사 작업에서 설정되었습니다.
ARM 템플릿 배포: 리소스 그룹 범위 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: Azure Batch 배포를 입력합니다.
- Azure Resource Manager 연결: 적절한 Azure 구독을 선택합니다.
- 구독: 적절한 Azure 구독 선택을 선택합니다.
- 작업: 리소스 그룹 만들기 또는 업데이트를 선택합니다.
- 리소스 그룹:
$(resourceGroupName)
을 입력합니다. - 위치:
$(location)
을 입력합니다. - 템플릿 위치: 파일의 URL을 선택합니다.
- 템플릿 링크:
$(StorageContainerUri)arm-templates/deployment.json$(StorageContainerSasToken)
을 입력합니다. - 템플릿 매개 변수 재정의:
-StorageContainerUri $(StorageContainerUri) -StorageContainerSasToken $(StorageContainerSasToken) -applicationStorageAccountName $(applicationStorageAccountName) -batchAccountName $(batchAccountName) -batchAccountPoolName $(batchAccountPoolName)
을 입력합니다.
일반적인 방법은 Azure Key Vault 작업을 사용하는 것입니다. Azure 구독에 연결된 서비스 주체에 적절한 액세스 정책 세트가 있는 경우 Key Vault에서 비밀을 다운로드하고 파이프라인에서 변수로 사용할 수 있습니다. 비밀의 이름은 연관된 값으로 설정됩니다. 예를 들어, 릴리스 정의에서 $(sshPassword)를 사용하여 sshPassword의 비밀을 참조할 수 있습니다.
Azure CLI를 호출하여 Azure Batch에서 애플리케이션을 만듭니다.
Azure CLI 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: Azure Batch 계정에서 애플리케이션 만들기를 입력합니다.
- Azure Resource Manager 연결: 적절한 Azure 구독을 선택합니다.
- 스크립트 유형: PowerShell Core를 선택합니다.
- 스크립트 위치: 인라인 스크립트를 선택합니다.
- 인라인 스크립트:
az batch application create --application-name $(batchAccountApplicationName) --name $(batchAccountName) --resource-group $(resourceGroupName)
을 입력합니다.
Azure CLI를 호출하여 관련 패키지를 애플리케이션(이 경우 ffmpeg 파일)에 업로드합니다.
Azure CLI 작업을 선택하고 다음 속성을 설정합니다.
- 표시 이름: Azure Batch 계정에 패키지 업로드를 입력합니다.
- Azure Resource Manager 연결: 적절한 Azure 구독을 선택합니다.
- 스크립트 유형: PowerShell Core를 선택합니다.
- 스크립트 위치: 인라인 스크립트를 선택합니다.
- 인라인 스크립트:
az batch application package create --application-name $(batchAccountApplicationName) --name $(batchAccountName) --resource-group $(resourceGroupName) --version $(batchApplicationVersion) --package-file=$(System.DefaultWorkingDirectory)/$(Release.Artifacts.<AzureBuildArtifactSourceAlias>.BuildId).zip
을 입력합니다.<AzureBuildArtifactSourceAlias>
자리 표시자를 이전에 적어 둔 빌드 원본 별칭으로 바꿉니다.
참고 항목
애플리케이션 패키지의 버전 번호는 변수로 설정됩니다. 변수를 사용하면 이전 버전의 패키지를 덮어쓸 수 있으며 Azure Batch에 푸시된 패키지 버전을 수동으로 제어할 수 있습니다.
릴리스 만들기 및 실행
모든 단계 생성이 끝나면 파이프라인 페이지 상단에서 저장을 선택한 다음, 확인을 선택합니다.
페이지 상단에서 릴리스 만들기를 선택합니다.
라이브 릴리스 상태를 보려면 페이지 상단에서 릴리스가 생성되었다는 링크를 선택합니다.
에이전트의 로그 출력을 보려면 스테이지를 마우스로 가리킨 다음, 로그 단추를 선택합니다.
환경 테스트
환경이 설정되면 다음 테스트가 성공적으로 실행되는지 확인합니다. 자리 표시자를 리소스 그룹과 배치 계정 값으로 바꿉니다.
배치 계정에 연결
명령 프롬프트에서 Azure CLI를 사용하여 새 배치 계정에 연결합니다.
az login
을 사용하여 Azure 계정에 로그인하고 지침에 따라 인증합니다.az batch account login -g <resourceGroup> -n <batchAccount>
를 사용하여 배치 계정을 인증합니다.
사용 가능한 애플리케이션 나열
az batch application list -g <resourceGroup> -n <batchAccount>
풀이 유효한지 확인
az batch pool list
명령 출력에서 다음 테스트에서 조정할 currentDedicatedNodes
값을 기록해 둡니다.
풀 크기 조정
작업 및 태스크 테스트에 사용할 수 있는 컴퓨팅 노드가 있도록 다음 명령을 실행하여 풀 크기를 조정합니다. <poolName>
자리 표시자를 풀 이름 값으로 바꾸고, <targetNumber>
자리 표시자를 이전 명령 출력의 currentDedicatedNodes
보다 큰 숫자로 바꿉니다. 크기 조정이 완료되고 대상 노드 수가 표시될 때까지 az batch pool list
명령을 실행하여 상태를 확인합니다.
az batch pool resize --pool-id <poolname> --target-dedicated-nodes <target number>
다음 단계
간단한 애플리케이션을 통해 Batch 계정과 상호 작용하는 방법을 알아보려면 이 자습서를 참조하세요.