다음을 통해 공유


개발 상자에 대한 사용자 지정 파일 작성

이 문서에서는 VS Code(Visual Studio Code) 및 개발자 홈 사용하여 개발 상자에 대한 사용자 지정 파일을 만들고 테스트하는 방법을 알아봅니다.

Microsoft Dev Box에서 사용자 지정 파일을 사용하는 방법에는 두 가지가 있습니다. 팀 사용자 지정은 개발자가 풀에서 구성할 때 자동으로 적용됩니다. 개별 사용자 지정은 사용자가 개발 상자를 만들 때 적용됩니다.

이 문서는 사용자 지정 파일에서 새 작업을 정의하고, 개발 상자에 적용하고, VS Code에서 직접 이러한 사용자 지정을 테스트하는 데 도움이 됩니다.

Important

Dev Box 팀 사용자 지정 기능은 현재 미리 보기로 제공됩니다. 미리 보기 상태에 대한 자세한 내용은 Microsoft Azure 미리 보기에 대한 추가 사용 약관을 참조하세요. 이 문서에서는 베타, 미리 보기 또는 아직 일반 공급으로 릴리스되지 않은 Azure 기능에 적용되는 법적 조건을 정의합니다.

필수 조건

이 문서의 단계를 완료하려면 다음을 수행해야 합니다.

사용자 지정을 구성하는 데 필요한 권한

개발 상자에 사용자 지정을 만들고 적용하는 데 필요한 작업을 수행하려면 다음 권한이 필요합니다.

작업 권한/역할
개발자 센터에 프로젝트 수준 카탈로그를 사용하도록 설정합니다. 구독에 대한 쓰기 액세스 권한이 있는 플랫폼 엔지니어입니다.
프로젝트에 카탈로그 동기화 설정을 사용하도록 설정합니다. 구독에 대한 쓰기 액세스 권한이 있는 플랫폼 엔지니어입니다.
프로젝트에 카탈로그를 연결합니다. 프로젝트에 대한 프로젝트 관리자 또는 기여자 권한입니다.
사용자 지정 파일을 만듭니다. 지정한 항목이 없습니다. 누구나 사용자 지정 파일을 만들 수 있습니다.
개발자 포털을 사용하여 개발 상자를 만드는 동안 YAML 파일을 업로드하고 적용합니다. Dev Box User.
카탈로그에 작업을 추가합니다. 카탈로그를 호스트하는 리포지토리에 추가할 수 있는 권한입니다.

사용자 지정 파일이란?

Dev Box 사용자 지정은 YAML 형식 파일을 사용하여 개발자가 개발 상자를 만들 때 적용할 작업 목록을 지정합니다. 이러한 작업은 패키지를 설치하는 것만큼 간단하거나 복잡한 스크립트 집합을 실행하여 코드 베이스를 설정하는 것만큼 정교할 수 있습니다. 태스크는 카탈로그를 식별하고 설치할 소프트웨어의 이름과 같은 매개 변수를 제공합니다. 그런 다음 사용자 지정 파일을 개발 상자를 만드는 개발자가 사용할 수 있게 됩니다.

다음 예제에서는 태스크를 winget 사용하여 VS Code를 설치하고 git-clone 작업을 사용하여 리포지토리를 복제합니다.

# From https://github.com/microsoft/devcenter-examples
$schema: 1.0
tasks:
  - name: winget
    parameters:
      package: Microsoft.VisualStudioCode
      runAsUser: true
  - name: git-clone
    description: Clone this repository into C:\Workspaces
    parameters:
      repositoryUrl: https://github.com/OrchardCMS/OrchardCore.git
      directory: C:\Workspaces

사용자 지정 파일을 사용하는 방법에는 두 가지가 있습니다. 개별 사용자 지정은 단일 개발 상자에 적용되고 팀 사용자 지정은 전체 팀에 적용됩니다.

개별 사용자 지정 파일

  • 개발자가 개발 상자를 만들 때 적용되는 작업을 포함합니다.
  • 개발자가 개발 상자를 만드는 동안 업로드합니다.

팀 사용자 지정 파일

  • 개발자가 개발 상자를 만들 때 적용되는 작업을 포함합니다.
  • 팀 또는 프로젝트에서 공유됩니다.
  • 기본 이미지를 지정하는 필드를 포함합니다.
  • imagedefinition.yaml이라는 이름이 지정됩니다.
  • 카탈로그를 호스트하는 리포지토리에 업로드됩니다.
  • 개발자가 구성된 풀에서 개발 상자를 만들 때 자동으로 사용됩니다.

Important

이미지 정의는 Dev Box 마켓플레이스 이미지만 기본 이미지로 사용할 수 있습니다. 개발자 센터에서 액세스할 수 있는 이미지 목록을 얻으려면 다음 Azure CLI 명령을 사용합니다.

az devcenter admin image list --dev-center-name CustomizationsImagingHQ --resource-group TeamCustomizationsImagingRG --query "[].name"

사용자 지정 파일 만들기

VS Code를 사용하여 사용자 지정 파일을 만들고 관리할 수 있습니다. VS Code에서 Microsoft Dev Box 확장을 사용하여 연결된 카탈로그의 작업을 검색하고 사용자 지정 파일을 테스트할 수 있습니다.

  1. 테스트용 개발 상자(또는 기존 개발 상자 사용)를 만듭니다.

  2. 테스트 개발 상자에서 VS Code를 설치한 다음 Dev Box 확장을 설치합니다.

  3. 샘플 리포지토리에서 예제 YAML 사용자 지정 파일을 다운로드하고 VS Code에서 엽니다.

  4. 명령 팔레트를 사용하여 카탈로그에서 사용할 수 있는 작업을 검색합니다. 보기>명령 팔레트>개발 상자를 선택합니다. 이 개발 상자에 사용 가능한 작업을 나열합니다.

    사용 가능한 작업을 나열하는 명령을 보여 주는 Visual Studio Code의 Dev Box 명령 팔레트 스크린샷

  5. 명령 팔레트를 사용하여 VS Code에서 사용자 지정을 테스트합니다. 보기>명령 팔레트>개발 상자 선택: 사용자 지정 작업 적용

    사용자 지정 작업을 적용하기 위한 명령을 보여 주는 Visual Studio Code의 Dev Box 명령 팔레트 스크린샷

  6. 사용자 지정 파일은 즉시 실행되고 지정된 작업을 테스트 개발 상자에 적용합니다. 변경 내용을 검사하고 VS Code 터미널에서 작업 실행 중에 생성된 오류 또는 경고를 확인합니다.

  7. 사용자 지정 파일이 성공적으로 실행되면 카탈로그에 업로드합니다.

사용자 지정 파일을 사용하여 프라이빗 리포지토리 복제

YAML 사용자 지정에서 Azure 키 자격 증명 모음의 비밀을 사용하여 프라이빗 리포지토리를 복제하거나 액세스 토큰이 필요한 사용자 지정 작업을 작성할 수 있습니다. 팀 사용자 지정 파일에서 키 자격 증명 모음에 저장된 PAT(개인 액세스 토큰)를 사용하여 프라이빗 리포지토리에 액세스할 수 있습니다.

팀 사용자 지정 파일에서 키 자격 증명 모음 비밀 사용

프라이빗 리포지토리를 복제하려면 PAT를 키 자격 증명 모음 비밀로 저장하고 사용자 지정에서 작업을 호출 git-clone 할 때 사용합니다.

YAML 사용자 지정에서 사용할 키 자격 증명 모음 비밀을 구성하려면 다음을 수행합니다.

  1. 개발자 센터 프로젝트의 관리 ID에 Key Vault 판독기 역할과 키 자격 증명 모음의 Key Vault 비밀 사용자 역할이 있는지 확인합니다.
  2. 개발 상자를 사용자 지정하는 동안 비밀을 사용할 수 있어야 하는 각 사용자 또는 사용자 그룹에 키 자격 증명 모음 비밀에 대한 Key Vault 비밀 사용자 역할을 부여합니다. 역할이 부여된 사용자 또는 그룹에는 개발 센터의 관리 ID, 사용자 고유의 사용자 계정 및 개발 상자를 사용자 지정하는 동안 비밀이 필요한 사용자 또는 그룹이 포함되어야 합니다.

자세한 내용은 다음을 참조하세요.

YAML 사용자 지정의 비밀을 다음 형식으로 참조할 수 있습니다. 이 형식에서는 작업을 예로 사용합니다 git-clone .

$schema: "1.0"
tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{KEY_VAULT_SECRET_URI}}'

개별 사용자 지정 파일에서 키 자격 증명 모음 비밀 사용

개별 사용자 지정 파일에서 프라이빗 Azure Repos 리포지토리를 복제하려는 경우 Azure Key Vault에서 비밀을 구성할 필요가 없습니다. 대신 매개 변수로 사용하거나 {{ado://your-ado-organization-name}} 사용할 {{ado}} 수 있습니다. 이 매개 변수는 개발자 상자를 만들 때 사용자 대신 액세스 토큰을 가져옵니다. 액세스 토큰에는 리포지토리에 대한 읽기 전용 권한이 있습니다.

git-clone 빠른 시작 카탈로그의 작업은 액세스 토큰을 사용하여 리포지토리를 복제합니다. 예를 들어 다음과 같습니다.

tasks:
   name: git-clone
   description: Clone this repository into C:\Workspaces
      parameters:
         repositoryUrl: https://myazdo.visualstudio.com/MyProject/_git/myrepo
         directory: C:\Workspaces
         pat: '{{ado://YOUR_ADO_ORG}}'

개발자 센터에서 키 자격 증명 모음에 액세스해야 합니다. 개발자 센터는 서비스 태그를 지원하지 않으므로 키 자격 증명 모음이 비공개로 유지되는 경우 신뢰할 수 있는 Microsoft 서비스 방화벽을 우회하도록 허용해야 합니다.

신뢰할 수 있는 Microsoft 서비스 Azure Key Vault 설정에서 방화벽을 바이패스하도록 허용하는 옵션을 보여 주는 스크린샷

신뢰할 수 있는 Microsoft 서비스가 방화벽을 우회하도록 허용하는 방법을 알아보려면 Azure Key Vault 네트워킹 설정 구성을 참조하세요.

기존 WinGet 구성 파일을 사용하여 개발 상자 사용자 지정

WinGet 구성은 Windows 환경을 즉시 코드 상태로 만드는 데 필요한 고유한 소프트웨어 및 구성 설정 집합을 정의하는 구성-코드 접근 방식을 사용합니다. Microsoft에서 제공하는 빠른 시작 카탈로그에 포함된 WinGet 작업을 사용하여 이러한 구성 파일을 사용하여 개발 상자를 설정할 수도 있습니다.

다음 예제에서는 기존 WinGet DSC(필요한 상태 구성) 파일을 호출하는 개발 상자 사용자 지정 파일을 보여 줍니다.

tasks:
    - name: winget
      parameters:
          configure: "projectConfiguration.dsc.yaml"

자세한 내용은 WinGet 구성을 참조하세요.

코드 리포지토리에서 사용자 지정 파일 공유

imagedefinition.yaml의 이름을 지정하고 카탈로그를 호스트하는 리포지토리에 업로드하여 개발 상자 풀에서 사용자 지정 파일을 사용할 수 있도록 합니다. 개발 상자 풀을 만들 때 카탈로그에서 사용자 지정 파일을 선택하여 풀의 개발 상자에 적용할 수 있습니다.