가상 머신 확장 집합 이미지를 배포합니다.
비고
이 버전의 작업은 Azure RBAC를 사용하여 Azure Storage에 연결합니다. 자세한 내용은 Azure Storage에 액세스하도록 Azure RBAC 구성을 참조하세요.
문법
# Azure VM scale set deployment v1
# Deploy a virtual machine scale set image.
- task: AzureVmssDeployment@1
inputs:
# Azure Details
azureSubscription: # string. Alias: ConnectedServiceName. Required. Azure subscription.
action: 'Update image' # 'Update image' | 'Configure application startup'. Required. Action. Default: Update image.
vmssName: # string. Required. Virtual Machine scale set name.
vmssOsType: # 'Windows' | 'Linux'. Required. OS type.
# Image Details
#imageUrl: # string. Required when action = Update image || action = UpdateImage. Image URL.
# Configure start-up
#customScriptsDirectory: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Custom script directory.
#customScript: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Command.
#customScriptArguments: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Arguments.
#customScriptsStorageAccount: # string. Optional. Use when action = Configure application startup || action = Update image || action = UpdateImage. Azure storage account where custom scripts will be uploaded.
# Advanced
#skipArchivingCustomScripts: false # boolean. Skip Archiving custom scripts. Default: false.
입력
action
-
작업
string
; 필수 사항입니다. 허용되는 값: Update image
(이미지를 사용하여 VM 확장 집합 업데이트), Configure application startup
(VM 확장 집합에서 사용자 지정 스크립트 VM 확장 실행). 기본값은 Update image
입니다.
VHD 이미지를 사용하여 VM 확장 집합을 업데이트하거나 사용자 지정 스크립트 VM 확장을 사용하여 배포/설치 스크립트를 실행하는 것 중에서 선택합니다.
VHD 이미지 접근 방식은 빠르게 확장하고 롤백을 수행하는 데 더 좋습니다. 확장 접근 방식은 배포 후 구성, 소프트웨어 설치 또는 기타 구성/관리 작업에 유용합니다.
VHD 이미지를 사용하여 VM 확장 집합을 업데이트할 수 있는 것은 사용자 지정 이미지를 사용하여 만든 경우에만 해당되며, Azure에서 사용할 수 있는 플랫폼/갤러리 이미지를 사용하여 VM 확장 집합을 만든 경우 업데이트가 실패합니다.
사용자 지정 스크립트 VM 확장 접근 방식은 사용자 지정 이미지 또는 플랫폼/갤러리 이미지를 사용하여 만든 VM 확장 집합에 사용할 수 있습니다.
vmssName
-
Virtual Machine 확장 집합 이름
string
; 필수 사항입니다.
VHD 이미지를 사용하거나 사용자 지정 스크립트 VM 확장을 사용하여 업데이트하려는 VM 확장 집합의 이름입니다.
OS 유형
string
; 필수 사항입니다. 허용되는 값: Windows
, Linux
.
VM 확장 집합의 운영 체제 유형을 선택합니다.
imageUrl
-
이미지 URL
string
;
action = Update image || action = UpdateImage
때 필요합니다.
VHD 이미지의 URL을 지정합니다. Azure Storage Blob URL인 경우 스토리지 계정 위치는 확장 집합 위치와 동일해야 합니다.
사용자 지정 스크립트 디렉터리
string
; 선택 사항입니다.
action = Configure application startup || action = Update image || action = UpdateImage
때 사용합니다.
사용자 지정 스크립트 VM 확장을 사용하여 실행될 사용자 지정 스크립트가 포함된 디렉터리의 경로입니다. 확장 방법은 배포 후 구성, 애플리케이션/소프트웨어 설치 또는 기타 애플리케이션 구성/관리 작업에 유용합니다. 예를 들어 스크립트는 데이터베이스 연결 문자열과 같이 응용 프로그램이 사용하는 컴퓨터 수준 환경 변수를 설정할 수 있습니다.
customScript
-
명령
string
; 선택 사항입니다.
action = Configure application startup || action = Update image || action = UpdateImage
때 사용합니다.
사용자 지정 스크립트 VM 확장을 사용하여 실행할 스크립트입니다. 이 스크립트는 디렉터리의 다른 스크립트를 호출할 수 있습니다. 스크립트는 아래에 전달된 인수를 사용하여 호출됩니다.
이러한 인수와 결합된 이 스크립트를 사용하여 명령을 실행할 수 있습니다. 다음은 그 예입니다.
1. Update-DatabaseConnectionStrings.ps1 -clusterType dev -user $(dbUser) -password $(dbUserPwd)는 웹 응용 프로그램의 web.config 연결 문자열을 업데이트합니다.
2. servicePrincipalKey-key --key-vault-type prod를 install-secrets.sh 하면 서비스 주체 키가 포함된 암호화된 파일이 만들어집니다.
customScriptArguments
-
인수
string
; 선택 사항입니다.
action = Configure application startup || action = Update image || action = UpdateImage
때 사용합니다.
사용자 지정 스크립트는 전달된 인수를 사용하여 호출됩니다. 빌드/릴리스 변수를 사용하여 비밀을 쉽게 사용할 수 있습니다.
사용자 지정 스크립트가 업로드되는 Azure Storage 계정
string
; 선택 사항입니다.
action = Configure application startup || action = Update image || action = UpdateImage
때 사용합니다.
사용자 지정 스크립트 확장은 VM 확장 집합의 각 가상 머신에서 제공하는 스크립트를 다운로드하고 실행합니다. 이러한 스크립트는 여기에 지정된 스토리지 계정에 저장됩니다. 기존 ARM 스토리지 계정을 지정합니다.
사용자 지정 스크립트 보관 건너뛰기
boolean
; 기본값은 false
입니다.
기본적으로 이 작업은 사용자 지정 스크립트를 포함하는 디렉터리의 압축된 아카이브를 만듭니다. 이렇게 하면 Azure Storage에 업로드하는 동안 성능과 안정성이 향상됩니다. 선택하지 않으면 보관이 수행되지 않으며 모든 파일이 개별적으로 업로드됩니다.
작업 제어 옵션
모든 작업에는 작업 입력 외에 제어 옵션이 있습니다. 자세한 내용은 컨트롤 옵션 및 일반적인 작업 속성참조하세요.
출력 변수
없음.
비고
이 작업을 사용하여 Virtual Machine 확장 집합 이미지를 배포합니다.
스크립트 실행은 성공한 것으로 보고되지만 VMSS 인스턴스는 업데이트되지 않습니다.
확장 집합에는 최신 확장 집합 모델을 사용하여 VM을 up-to가져오는 방법을 결정하는 업그레이드 정책이 있으며 업그레이드 정책이 수동으로 설정된 경우 각 VM을 수동으로 업그레이드해야 합니다. 자세한 내용은 최신 확장 집합 모델VM을 up-to-date로 가져오는 방법을 참조하세요. 업데이트 정책을 변경하거나 각 VM을 수동으로 업그레이드할 수 있습니다. 예를 들어 정책을 Automatic
업그레이드하려면 다음 Az CLI 명령을 사용합니다. az vmss update --set upgradePolicy.mode=Automatic -g <resource group name> -n <vmss name>
오류: '사용 권한이 거부됨: 스크립트가 실행 가능하지 않습니다.'
이 문제는 사용자 지정 스크립트를 실행하려고 하지만 스크립트가 실행 가능하지 않은 경우에 발생합니다.
이 문제를 해결하려면 먼저 스크립트 이름이 customScript
전에 ./
입력에 'test.sh'
또는 다른 항목이 없는지 확인합니다.
customScript: 'test.sh'
다음으로, 가상 머신 확장 집합 작업 전에 명령줄 작업을 추가해 봅니다.
- task: CmdLine@2
inputs:
script: 'chmod 777 $(System.DefaultWorkingDirectory)/test.sh'
Azure Storage에 액세스하도록 Azure RBAC 구성
이 버전의 작업은 워크로드 ID 페더레이션 및 Azure RBAC를 사용하여 구성된 Azure Resource Manager 서비스 연결을 사용하여 스토리지 계정 키 또는 SAS(공유 액세스 서명) 대신 Azure Storage에 연결합니다. 이 작업에서 Azure Storage에 연결하려면 스토리지 계정의 Storage Blob 데이터 기여자 역할을 에 대해 azureSubscription
구성된 서비스 연결의 ID에 할당해야 합니다.
자세한 내용은 Blob 데이터에 액세스하기 위한 Azure 역할 할당 및 역할을 할당하는 단계를 참조하세요.
이 AzureVmssDeployment@1
작업에는 에 customScriptsStorageAccount
구성된 스토리지 계정에 액세스하도록 구성된 다음과 같은 추가 RBAC 역할이 필요합니다.
역할 | 리소스 | 사용자 |
---|---|---|
기여자 또는 가상 머신 기여자 | 가상 머신 스케일 세트 (Virtual Machine Scale Set) | 에 대해 구성된 서비스 연결의 ID입니다. azureSubscription |
Storage Blob 데이터 기여자 | 사용자 지정 스크립트를 보유하는 Azure Storage 계정 | 에 대해 구성된 서비스 연결의 ID입니다. azureSubscription |
Storage Blob 데이터 판독기 | 사용자 지정 스크립트를 보유하는 Azure Storage 계정 | Virtual Machine Scale Set 시스템이 할당한 관리 ID |