환경 - 가상 머신 리소스

Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020

VM(가상 머신) 리소스를 사용하여 YAML 파이프라인을 사용하여 여러 머신에서 배포를 관리합니다. VM 리소스를 사용하면 배포를 롤링하기 위해 자체 서버에 에이전트를 설치할 수 있습니다.

VM 리소스는 환경에 연결 됩니다. 환경을 정의한 후 배포를 사용하여 대상에 VM을 추가할 수 있습니다. 환경의 배포 기록 보기는 VM에서 파이프라인으로의 추적 가능성을 제공합니다.

필수 조건

기본 라이선스 이상이 있어야 하며 다음 영역에 액세스할 수 있어야 합니다.

  • 파이프라인에 연결된 리포지토리
  • 환경에 연결하려는 VM

Azure Pipelines의 보안에 대한 자세한 내용은 파이프라인 보안 리소스를 참조 하세요.

환경에 VM을 추가하려면 해당 배포 풀에 대한 관리주체 역할이 있어야 합니다. 배포 풀은 조직에서 사용할 수 있는 대상 서버 집합입니다. 배포 풀 및 환경 권한에 대해 자세히 알아봅니다.

참고 항목

배포 그룹 에이전트를 구성하거나 VM 환경 리소스를 등록할 때 오류가 표시되는 경우 PAT 범위를 액세스 가능한 모든 조직으로 설정해야 합니다.

VM 리소스 만들기

참고 항목

이 동일한 프로세스를 사용하여 등록 스크립트를 사용하여 물리적 컴퓨터를 설정할 수 있습니다.

VM 리소스를 추가하는 첫 번째 단계는 환경을 정의하는 것입니다.

환경 정의

  1. 첫 번째 환경인지 여부에 따라 환경 만들기 또는 새 환경을 선택합니다.
  2. 환경 및 설명에 대한 이름 (필수)을 추가합니다.
  3. 새 환경을 저장합니다.

리소스 추가

  1. 환경을 선택하고 리소스 추가를 선택합니다.

  2. 리소스 유형에 대한 가상 머신선택합니다. 그런 후 다음을 선택합니다.

    Add an environment.

  3. 운영 체제용 Windows 또는 Linux를 선택합니다.

  4. 등록 스크립트를 복사합니다. Linux를 선택한 경우 Windows 및 Linux 스크립트 를 선택한 경우 스크립트는 PowerShell 스크립트가 됩니다.

    Add a virtual machine.

  5. 이 환경에 등록하려는 각 대상 가상 머신에서 복사된 스크립트를 실행합니다.

    • Windows에 설치하는 경우 스크립트를 PowerShell 관리자로 실행해야 합니다.
    • Linux에 설치하는 경우 실행 스크립트를 다운로드하고 실행할 수 있는 권한이 있어야 합니다.

    참고 항목

    • 로그인한 사용자의 PAT(개인 액세스 토큰)가 스크립트에 포함됩니다. PAT는 스크립트를 생성하는 날에 만료됩니다.
    • VM에 이미 다른 에이전트가 실행 중인 경우 에이전트가 환경에 등록할 고유한 이름을 제공합니다.
    • 에이전트 스크립트 설치에 대한 자세한 내용은 자체 호스팅 Linux 에이전트자체 호스팅 Windows 에이전트를 참조하세요. VM 리소스에 대한 에이전트 스크립트는 자체 호스팅 에이전트에 대한 스크립트와 같으며 동일한 명령을 사용할 수 있습니다.
  6. VM이 등록되면 환경의 리소스 탭 아래에 환경 리소스로 표시됩니다.

  7. VM을 더 추가하려면 스크립트를 다시 복사합니다. 리소스>가상 머신 추가를 선택합니다. Windows 및 Linux 스크립트는 환경에 추가된 모든 VM에 대해 동일합니다.

  8. VM 스크립트가 성공적으로 설치되면 VM이 환경에 대한 리소스 목록에 표시됩니다.

    View resources.

파이프라인에서 VM 사용

환경을 참조하여 파이프라인의 VM을 대상으로 지정합니다. 기본적으로 파이프라인 작업은 .가 있는 환경에 resourceName대해 정의된 모든 VM에 대해 실행됩니다.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
   name: VMenv
   resourceName: VMenv
   resourceType: virtualMachine
  strategy:
     runOnce:
        deploy:   
          steps:
            - script: echo "Hello world"

참고 항목

값은 resourceType 대/소문자를 구분합니다. 잘못된 대/소문자를 지정하면 환경에서 일치하는 리소스를 찾을 수 없습니다. 자세한 내용은 YAML 스키마를 참조하세요.

환경에서 특정 가상 머신을 선택하여 해당 가상 머신을 지정하여 배포만 받을 수 있습니다 resourceName. 예를 들어 환경에 명명된 USHAN-PCVMenv Virtual Machine 리소스에만 배포를 대상으로 지정하려면 매개 변수를 resourceName 추가하고 값을 USHAN-PC지정합니다.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    resourceName: USHAN-PC # only deploy to the VM resource named USHAN-PC
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

배포 작업에 대한 자세한 내용은 YAML 스키마참조하세요.

태그 추가 및 관리

태그를 사용하면 배포를 위해 환경에서 특정 VM 집합을 대상으로 지정할 수 있습니다. 대화형 등록 스크립트의 일부로 또는 UI를 통해 VM에 태그를 추가할 수 있습니다. 태그는 각각 256자로 제한됩니다. 사용할 수 있는 태그 수에는 제한이 없습니다.

VM 리소스에 대한 추가 작업을 선택하여 리소스 보기에서 UI의 태그를 추가하거나 제거합니다.

Set VM tags.

여러 태그를 선택하면 모든 태그를 포함하는 VM이 파이프라인에서 사용됩니다. 예를 들어 이 파이프라인은 태그와 prod 태그가 둘 다 있는 VM을 windows 대상으로 합니다. VM에 이러한 태그 중 하나만 있는 경우 대상으로 지정되지 않습니다.

trigger: 
- main

pool: 
   vmImage: ubuntu-latest

jobs:
- deployment: VMDeploy
  displayName: Deploy to VM
  environment: 
    name: VMenv
    resourceType: virtualMachine
    tags: windows,prod # only deploy to virtual machines with both windows and prod tags
  strategy:
    runOnce:
      deploy:   
          steps:
          - script: echo "Hello world"

배포 전략 적용

배포 전략을 적용하여 애플리케이션이 롤아웃되는 방법을 정의합니다. runOnce VM에 대한 전략과 rolling 전략은 모두 지원됩니다. 배포 전략 및 수명 주기 후크에 대한 자세한 내용은 배포 작업/배포 전략을 참조하세요.

배포 기록 보기

커밋 및 작업 항목의 전체 추적 가능성과 환경 및 리소스당 파이프라인 간 배포 기록을 보려면 배포 탭을 선택합니다.

VMDeployments_view

환경에서 VM 제거

Windows 환경

Windows 환경에서 VM을 제거하려면 다음 명령을 실행합니다. 다음 작업을 수행해야 합니다.

  • 관리자 PowerShell 명령 프롬프트에서 명령 실행
  • 각 컴퓨터에서 명령 실행
  • 환경 등록 명령이 실행된 것과 동일한 폴더 경로에서 명령을 실행합니다.
./config.cmd remove

Linux 환경

Linux 환경에서 VM을 제거하려면 각 컴퓨터에서 다음 명령을 실행합니다.

./config.sh remove

알려진 제한 사항

스테이지를 다시 시도하면 실패한 대상뿐만 아니라 모든 VM에서 배포를 다시 실행합니다.