Microsoft Dev Box 사용자 지정 기능을 사용하여 클라우드 기반 개발 환경 설정을 간소화합니다. 새 프로젝트를 시작하거나 새 팀에 합류하는 것은 복잡하고 시간이 오래 걸릴 수 있습니다. 팀 사용자 지정은 이미지 정의 파일(imagedefinition.yaml)을 사용하여 도구를 사전 설치하고, 리포지토리를 복제하고, 풀의 모든 개발 상자에 대한 설정을 설정합니다. 관리자는 팀 사용자 지정을 통해 앱, 도구, 리포지토리, 코드 라이브러리, 패키지 및 빌드 스크립트를 사용하여 즉시 코딩할 수 있는 워크스테이션을 제공할 수 있습니다. 이 문서에서는 Visual Studio Code에서 개발 상자에 대한 이미지 정의 파일을 만들고, 테스트하고, 편집하는 방법을 보여 줍니다.
두 가지 방법으로 Dev Box에서 사용자 지정을 사용할 수 있습니다. 팀 사용자 지정은 팀에 대한 공유 구성을 만듭니다. 사용자 사용자 지정은 개별 개발자를 위한 개인 구성을 만듭니다. 다음 목록에는 이러한 사용자 지정 형식 간의 차이점이 요약되어 있습니다.
- 팀 사용자 지정: 한 번 정의되며, 카탈로그의 imagedefinition.yaml을 통해 풀의 모든 개발 상자에 적용됩니다.
- 사용자 사용자 지정: 상자를 만드는 동안 업로드된 개인 YAML; 는 해당 상자 하나에만 영향을 줍니다.
- 일관성 및 규정 준수를 위해 팀을 사용합니다. 개인 기본 설정에 사용자를 사용합니다.
자세한 내용은 Microsoft Dev Box 사용자 지정을 참조하세요.
다음 단계에 따라 팀 사용자 지정을 구성합니다.
필수 조건
| 제품 | 요구 사항 |
|---|---|
| Microsoft Dev Box | - 개발 상자를 만들 수 있도록 개발 상자 풀 및 개발 상자 프로젝트를 사용하여 개발 센터를 설정합니다.
- 이미지 정의 파일에서 사용할 수 있는 작업을 사용하여 개발자 센터에 카탈로그를 연결합니다. 카탈로그가 없는 경우 GitHub 또는 Azure Repos에서 카탈로그 추가 및 구성을 참조하세요. -권한 - 개발 상자를 만들려면: 다음을 수행합니다. 하나 이상의 프로젝트에 대해 Dev Box Users 보안 그룹에 가입합니다. - 개발자 센터에 프로젝트 수준 카탈로그를 사용하도록 설정하려면 다음을 수행합니다. 구독에 대한 쓰기 액세스 권한이 있는 플랫폼 엔지니어입니다. - 프로젝트에 카탈로그 동기화 설정을 사용하도록 설정하려면 다음을 수행합니다. 구독에 대한 쓰기 액세스 권한이 있는 플랫폼 엔지니어입니다. - 프로젝트에 카탈로그를 연결하려면 다음을 수행합니다. 프로젝트에 대한 개발자 센터 프로젝트 관리자 또는 기여자 권한입니다. |
| 비주얼 스튜디오 코드 | - 최신 버전을 설치합니다. |
이미지 정의 파일 만들기
팀이 필요로 하는 도구, 패키지 및 구성을 정의하려면 개발 상자 환경에 필요한 작업을 나열하는 이미지 정의 파일을 YAML 형식으로 만듭니다.
사용자 지정 작업에 기본 제공 작업 또는 카탈로그 사용
작업은 기본 제공 기본 형식(WinGet, PowerShell 및 Git-Clone) 또는 개발자 센터 프로젝트에 연결하는 카탈로그에서 제공되는 재사용 가능한 작업입니다. 사용자 지정 요구 사항 및 프로젝트 요구 사항에 가장 적합한 원본을 선택합니다.
WinGet, PowerShell 및 Git-Clone 기본 제공 작업을 사용합니다. Dev Box 개발 센터는 PowerShell 및 WinGet 작업을 기본으로 지원합니다. 사용자 지정에 PowerShell, WinGet 또는 Git-Clone만 필요한 경우 이러한 기본 제공 작업을 시작하고 이미지 정의 파일을 만들 수 있습니다. 자세한 내용은 이미지 정의 파일 만들기를 참조하세요.
중요합니다
WinGet 기본 제공 작업은 WinGet 실행 파일과 동일하지 않습니다. WinGet 기본 제공 작업은 PowerShell WinGet cmdlet을 기반으로 합니다.
카탈로그를 사용하여 사용자 지정 작업을 정의합니다. 사용자 고유의 사용자 지정 작업을 만듭니다. 전체 조직에서 사용자 지정 작업을 사용할 수 있도록 하려면 사용자 지정 작업 정의가 있는 카탈로그를 개발자 센터에 연결합니다. Dev Box는 Azure Repos 및 GitHub 카탈로그를 지원합니다. 작업은 개발자 센터에서만 정의되므로 작업 및 이미지 정의를 별도의 리포지토리에 저장합니다.
사용자 지정 작업을 정의하는 방법에 대한 자세한 내용은 Dev Box 사용자 지정에 대한 작업 구성을 참조하세요.
Dev Box는 GitHub Copilot 에이전트 모드를 사용하여 에이전트 워크플로를 지원합니다. 자연어 프롬프트를 사용하여 이미지 정의 파일(imagedefinition.yaml)을 생성합니다. GitHub Copilot를 사용하면 YAML 파일을 수동으로 만드는 대신 대화형으로 요구 사항을 설명하므로 Dev Box 환경을 보다 쉽게 설정할 수 있습니다.
Dev Box 에이전트 워크플로를 사용하면 다음을 수행할 수 있습니다.
- 현재 개발 환경 모방 - 현재 컴퓨터의 구성과 일치하는 정의를 생성하거나 변경합니다.
- 리포지토리 컨텍스트 사용 - 특정 GitHub 리포지토리의 컨텍스트에서 정의를 만들거나 변경합니다.
- 자연어 지침 사용 - 원하는 개발 환경을 설명하여 이미지 정의 파일을 생성합니다.
비고
에이전트 워크플로는 WinGet, PowerShell 및 Git-Clone을 비롯한 Dev Box 기본 작업만 지원합니다.
이미지 정의 파일 생성
Visual Studio Code를 엽니다.
Dev Box 확장을 설치합니다.
확장(Ctrl+Shift+X)을 열고, Dev Box를 검색하고, 확장을 설치합니다.
VS Code에 설정된 GitHub Copilot 확장을 설치합니다.
설정 편집기에서 chat.agent.enabled를 설정하여 에이전트 모드를 사용하도록 설정했는지 확인합니다. 이 설정에는 Visual Studio Code 1.99 이상이 필요합니다.
VS Code에서 Copilot Chat을 엽니다.
선택 도구에서 Dev Box 도구가 미리 선택되어 있는지 확인합니다.
에이전트 모드를 선택하고 Model: Claude 3.5 Sonnet을 선택합니다.
다음과 같은 자연어 프롬프트를 제공합니다.
"이 [리포지토리 이름] 리포지토리에서 작업하는 데 필요한 모든 도구와 패키지를 사용하여 개발 상자를 설정하려고 합니다."
"Visual Studio 2022 Enterprise, Visual Studio Code, Git, .NET SDK 8, Node.js LTS 및 Docker Desktop을 개발 상자에 미리 설치하고 팀의 리포지토리 [URL]을 개발 상자에 복제하려고 합니다."
"현재 컴퓨터에 모든 개발 도구와 패키지가 설치된 개발 상자를 설정하려고 합니다."
팁 (조언)
리포지토리의 컨텍스트에서 정의를 생성하려면 Visual Studio Code에서 특정 리포지토리를 복제하고 엽니다.
프롬프트에 따라 패키지를 구성합니다.
메시지가 표시되면 계속을 선택하여 패키지 설정을 계속합니다.
Copilot은 imagedefinition.yaml 파일을 생성합니다.
더 많은 프롬프트를 사용하여 구체화합니다.
- 원하는 도구와 패키지가 파일에 표시될 때까지 에이전트와 계속 상호 작용합니다.
리포지토리에 이미지 정의 파일 업로드
GitHub 또는 Azure Repos 리포지토리를 카탈로그로 사용하여 개발 상자 프로젝트에서 이미지 정의 파일에 액세스할 수 있도록 할 수 있습니다. 각 프로젝트에는 여러 이미지 정의 파일을 저장하는 카탈로그가 있을 수 있으며, 개발자 팀의 요구에 맞게 풀에서 구성할 수 있습니다.
사용하려는 이미지 정의 파일이 있으면 카탈로그에 업로드합니다. 다음 섹션에서는 프로젝트에 카탈로그를 연결하고 개발 상자 풀을 구성할 때 이미지 정의를 선택할 수 있도록 하는 방법을 보여 줍니다.
프로젝트 수준에서 이미지 정의 구성
프로젝트는 Dev Box 리소스를 효율적으로 관리하는 데 도움이 됩니다. 각 개발자 팀에 자체 프로젝트를 할당하여 리소스를 효과적으로 구성할 수 있습니다. 카탈로그 리포지토리에 여러 이미지 정의를 만들고 각 이미지 정의를 자체 폴더에 만들어 프로젝트의 여러 개발자 팀을 대상으로 지정합니다.
프로젝트 수준 카탈로그 사용
프로젝트에 카탈로그를 추가하기 전에 개발자 센터 수준에서 프로젝트 수준 카탈로그를 사용하도록 설정합니다. 개발 센터 수준에서 프로젝트 수준 카탈로그를 사용하도록 설정하려면 다음을 수행합니다.
Azure Portal에서 개발자 센터로 이동합니다.
왼쪽 메뉴의 설정에서 개발자 센터 설정을 선택합니다.
프로젝트 수준 카탈로그에서 프로젝트당 카탈로그 사용을 선택한 다음 적용을 선택합니다.
프로젝트에 카탈로그를 추가하는 방법에 대한 자세한 내용은 GitHub 또는 Azure Repos에서 카탈로그 추가 및 구성을 참조하세요.
프로젝트에 대한 카탈로그 동기화 설정 구성
카탈로그에서 이미지 정의를 동기화하도록 프로젝트를 구성합니다. 이 설정을 사용하면 카탈로그의 이미지 정의를 사용하여 개발 상자 풀을 만들 수 있습니다.
Azure Portal에 로그인합니다.
검색 창에 프로젝트를 입력합니다. 결과 목록에서 프로젝트를 선택합니다.
카탈로그 동기화 설정을 설정할 Dev Box 프로젝트를 엽니다.
카탈로그를 선택합니다.
동기화 설정을 선택합니다.
동기화 설정 창에서 이미지 정의를 선택한 다음 저장을 선택합니다.
이미지 정의 파일이 포함된 카탈로그 연결
이미지 정의 파일을 사용하려면 파일이 포함된 카탈로그를 프로젝트에 첨부합니다. 이렇게 하면 개발 상자 풀을 구성할 때 이미지 정의를 선택할 수 있습니다.
이미지 정의 창에는 프로젝트에서 사용할 수 있는 이미지 정의가 표시됩니다.
카탈로그를 연결하는 방법을 알아보려면 GitHub 또는 Azure Repos에서 카탈로그 추가 및 구성을 참조하세요.
이미지 정의를 사용하도록 개발 상자 풀 구성
개발 팀이 이미지 정의 파일을 사용하여 개발 상자 풀을 설정하여 사용자 지정을 사용하도록 합니다. 이미지 정의 파일을 프로젝트에 연결된 리포지토리에 카탈로그로 저장합니다. 이 파일을 풀에 대한 이미지 정의로 지정하고 사용자 지정이 새 개발 상자에 적용됩니다.
다음 단계에 따라 개발 상자 풀을 만들고 이미지 정의를 지정합니다.
Azure Portal에 로그인합니다.
검색 창에 프로젝트를 입력합니다. 결과 목록에서 프로젝트를 선택합니다.
새 개발 상자 풀을 연결하려는 프로젝트를 엽니다.
개발 상자 풀를 선택한 다음, 만들기를 선택합니다.
개발 상자 풀 만들기 창에서 다음 값을 입력합니다.
설정 가치 이름 풀 이름을 입력합니다. 개발자는 개발자가 개발 상자를 만들 때 풀 이름을 볼 수 있습니다. 프로젝트 내에서 고유해야 합니다. 정의 이 상자에는 액세스 가능한 카탈로그와 개발 상자 정의의 이미지 정의가 나열되어 있습니다. 이미지 정의 파일을 선택합니다. 네트워크 연결 Microsoft 호스팅 네트워크에 배포를 선택하거나 기존 네트워크 연결을 사용합니다. Single Sign-On 사용 예를 선택하여 이 풀의 개발 상자에 Single Sign-On을 허용합니다. 조직에 대해 Single Sign-On을 설정해야 합니다. 자세한 내용은 개발 상자에 대한 Single Sign-On 사용을 참조하세요. 개발 상자 작성자 권한 로컬 관리자 또는 표준 사용자를 선택합니다. 자동 중지 사용 예가 기본값입니다. 자동 중지 일정을 끄려면 아니요를 선택합니다. 풀을 만든 후 자동 중지 일정을 설정할 수 있습니다. 중지 시간 풀의 모든 개발 상자를 종료할 시간을 선택합니다. 표준 시간대 중지 시간에 대한 표준 시간대를 선택합니다. 라이센스 조직에 이 풀의 개발 상자에 적용할 Azure 하이브리드 혜택 라이선스가 있는지 확인하려면 이 확인란을 선택합니다. 선택하고생성합니다.
새 개발 상자 풀이 목록에 표시되는지 확인합니다. 화면을 새로 고쳐야 할 수도 있습니다.
개발자 포털을 사용하여 개발 상자 만들기
이미지 정의 파일의 사용자 지정이 적용되는지 확인하려면 Dev Box 개발자 포털에서 개발 상자를 만듭니다. 빠른 시작의 단계를 수행합니다. Dev Box 개발자 포털을 사용하여 개발 상자를 만들고 연결합니다. 그런 다음 새 개발 상자에 연결하고 사용자 지정이 예상대로 작동하는지 확인합니다.
이미지 정의 파일을 변경하고 테스트할 새 개발 상자를 만듭니다. 사용자 지정이 올바르다고 확신하는 경우 재사용 가능한 이미지를 빌드합니다.
Dev Box 사용자 지정에서 모듈식 스크립트 및 파일 사용
PowerShell 스크립트, DSC(Desired State Configuration) 파일, 구성 파일, 텍스트 파일 또는 이미지와 같은 모듈식 스크립트 및 파일은 공유 카탈로그에 저장할 수 있으므로 여러 이미지에서 Dev Box 사용자 지정을 다시 사용하고 표준화할 수 있습니다.
다음을 수행하도록 설계되었습니다.
- 여러 Dev Box 설정에서 재사용을 촉진하십시오.
- 중복 및 유지 관리 오버헤드 감소
- 일관된 구성 관행을 가능하게 하다
카탈로그 구조
imagedefinition.yaml과 동일한 폴더 또는 하위 폴더에 있는 파일은 만들 때 개발 상자에 복사됩니다. 사용자 지정 작업을 실행할 때 이러한 파일을 사용할 수 있습니다.
다음 다이어그램에서는 Dev Box 사용자 지정의 모듈식 스크립트 및 파일에 대한 카탈로그 구조를 보여 줍니다.
최상위 수준에는 이미지 정의 폴더가 있습니다 . 내부에서 프런트 엔드-imagedef 및 백 엔드-imagedef 와 같은 이미지 정의 하위 폴더 를 찾습니다. 프런트 엔드-imagedef 폴더에는 PowerShell 스크립트 파일이 있습니다. 백 엔드-imagedef 폴더에는 DSC 파일이 포함된 하위 폴더가 포함되어 있습니다. 두 구조체 중 하나를 사용하여 스크립트 및 기타 파일을 저장할 수 있습니다.
모듈식 스크립트 또는 파일 참조
이미지 정의 파일은 시스템 컨텍스트에서 실행되는 작업 및 사용자 컨텍스트에서 새 개발 상자의 첫 번째 로그인 후 실행되는 userTasks 목록을 설정합니다. 작업에 표시 이름을 사용하여 각 작업의 목적을 명확히 합니다. 이미지 정의 파일에서 실행하려는 모듈식 스크립트 또는 포함할 파일을 참조합니다.
$schema: "1.0"
name: "modular-script"
image: microsoftvisualstudio_visualstudioplustools_vs-2022-ent-general-win11-m365-gen2
description: "This definition shows examples of referencing PowerShell scripts and DSC configuration files."
tasks:
- name: ~/powershell
displayName: "Modular Script"
parameters:
script: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso.ps1
- name: ~/winget
displayName: "Install VS Code"
parameters:
configurationFile: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso.dsc.yaml
userTasks:
- name: ~/winget
displayName: "Install Insomnia"
parameters:
configurationFile: C:\ProgramData\Microsoft\DevBoxAgent\ImageDefinitions\catalog-name\modular-script\contoso-user.dsc.yaml
Dev Box는 모든 태스크가 내장 함수(예: PowerShell 또는 WinGet) 또는 개발 센터 수준에서 사용할 수 있는 작업을 참조하는지 확인합니다. 모든 이미지 정의 파일을 관련 작업 파일과 함께 새 개발 상자의 집합 디렉터리에 다운로드합니다. 그런 다음 다운로드한 작업 디렉터리에서 각 작업을 실행하고 완료 시 작업 상태를 업로드합니다.
다음 단계
이제 개발 팀에 대한 개발 상자를 구성하고 만드는 이미지 정의 파일이 있으므로 개발자 센터 이미징을 사용하여 개발 상자 만들기 시간을 최적화하는 방법을 알아봅니다.