다음을 통해 공유


빠른 시작: Azure CLI를 사용하여 관리형 DevOps 풀 만들기

이 문서에서는 Azure CLI를 사용하여 관리형 DevOps 풀을 만들고 그 안에 파이프라인을 실행하는 방법을 보여 줍니다.

필수 조건

  • 관리형 DevOps 풀 필수 구성 요소

    이 문서의 단계를 완료하기 전에 필수 구성 요소 문서에 설명된 대로 관리되는 DevOps 풀에서 사용할 Azure 구독 및 Azure DevOps 조직을 구성해야 합니다. 이러한 단계는 Azure 구독 및 Azure DevOps 조직당 한 번만 완료해야 합니다.

  • Azure CLI 필수 구성 요소

    • 로컬 컴퓨터에서 Azure CLI 명령을 실행하려면 Azure CLI 설치 지침을 참조하세요. Azure CLI가 이미 설치되어 있는 경우 실행 az version 하여 버전을 확인합니다. 관리되는 DevOps 풀에 대한 Azure CLI 확장에는 Azure CLI 버전 2.57.0 이상이 필요합니다. Azure CLI가 2.57.0보다 낮으면 실행 az upgrade합니다. 자세한 내용은 Azure CLI를 업데이트하는 방법을 참조하세요.

    • 브라우저를 통해 Azure Cloud Shell 을 사용하려면 Azure Cloud Shell 임시 세션 시작 의 지침에 따라 Microsoft.CloudShell 네임스페이스를 등록합니다. 구독당 한 번만 네임스페이스를 등록하면 됩니다.

      다음 예제에서는 bash를 사용하므로 Azure Cloud Shell을 사용하는 경우 Azure Cloud Shell을 시작할 때 Bash 를 선택합니다.

Azure CLI에 로그인

명령 프롬프트를 열고(Windows에서 Windows 명령 프롬프트 또는 PowerShell 사용) 다음 명령을 실행합니다.

  1. Azure CLI에 로그인합니다. Azure Cloud Shell을 사용하는 경우 다른 계정을 사용하려는 경우가 아니면 실행할 az login 필요가 없습니다.

    az login
    
  2. 둘 이상의 Azure 구독이 있는 경우 기본 Azure 구독을 설정합니다.

    az account set --subscription "My subscription name"
    

    구독 목록을 얻으려면 다음 명령을 실행하면 됩니다.

    az account list -o table
    

    테넌트가 여러 개 있거나 Azure CLI를 사용하여 Azure 구독을 사용하는 방법에 대한 자세한 내용은 Azure CLI를 사용하여 Azure 구독을 관리하는 방법을 참조하세요.

환경 변수 정의

  1. 다음 명령을 실행하여 이 빠른 시작에서 리소스의 이름을 생성합니다. 이 예제에서는 지역을 EastUS2 사용합니다. EastUS2 원하는 지역으로 대체합니다.

    export REGION=EastUS2
    export RANDOM_ID="$(openssl rand -hex 3)"
    export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID"
    export POOL_NAME="mdpPool$RANDOM_ID"
    export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID"
    export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
    
    # Echo the generated resource names
    echo $REGION
    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    

리소스 그룹 만들기

  1. 다음 명령을 실행하여 이 빠른 시작에서 사용되는 리소스를 포함할 리소스 그룹을 만듭니다.

    az group create --name $RESOURCE_GROUP_NAME --location $REGION
    

개발자 센터 및 개발자 센터 프로젝트 만들기

  1. 다음 명령을 실행합니다. 이 명령은 Azure CLI devcenter 확장이 설치되지 않은 경우 설치하고 이미 설치된 경우 최신 버전으로 업데이트합니다.

    az extension add --name devcenter --upgrade
    
  2. 다음 명령을 실행하여 개발 센터 및 개발자 센터 프로젝트를 만듭니다.

    # Create a dev center
    az devcenter admin devcenter create -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION
    
    # Save the id of the newly created dev center
    DEVCID=$( \
        az devcenter admin devcenter show -n $DEV_CENTER_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    
    # Create a dev center project
    az devcenter admin project create -n $DEV_CENTER_PROJECT_NAME \
        --description "My dev center project." \
        -g $RESOURCE_GROUP_NAME \
        -l $REGION \
        --dev-center-id $DEVCID
    
    # Save the dev center project for use when creating
    # the Managed DevOps Pool
    DEVCPID=$( \
        az devcenter admin project show -n $DEV_CENTER_PROJECT_NAME \
        -g $RESOURCE_GROUP_NAME \
        --query id -o tsv)
    

    몇 분 후 출력은 개발자 센터가 생성되었음을 나타냅니다. id 생성된 개발 센터의 정보는 DEVCID에 저장되어 개발자 센터 프로젝트 생성에 사용됩니다.

    {
        "devCenterUri": "https://...",
        "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/devcenters/devCenterName",
        "location": "eastus",
        "name": "devCenterName",
        "provisioningState": "Succeeded",
        "resourceGroup": "resourceGroupName",
        "systemData": { ... },
        "type": "microsoft.devcenter/devcenters"
    }
    

    몇 분 후에 출력은 개발 센터 프로젝트가 생성되었음을 나타냅니다. 생성된 개발자 센터 프로젝트의 idDEVCPID에 저장되며, 다음 섹션에서 관리되는 DevOps 풀을 만들 때 사용됩니다.

    {
      "description": "My dev center project.",
      "devCenterId": "...",
      "devCenterUri": "https://...",
      "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/resourceGroupName/providers/Microsoft.DevCenter/projects/devCenterProjectName",
      "location": "eastus",
      "name": "devCenterProjectName",
      "provisioningState": "Succeeded",
      "resourceGroup": "resourceGroupName",
      "systemData": { ... },
      "type": "microsoft.devcenter/projects"
    }
    

관리형 DevOps 풀 구성 파일 준비

mdp pool create 메서드에는 풀의 다양한 측면을 구성하는 JSON 값을 사용하는 여러 매개 변수가 있습니다.

  • agent-profile 는 풀의 상태가 저장되는지 비상태 저장인지 지정하며, 백업 에이전트 일정을 포함합니다. 의도한 에이전트 구성에 따라 이름이 Stateful 또는 Stateless 중 하나인 단일 키를 가진 사전입니다. 속성에 대한 agent-profile 자세한 내용은 크기 조정 구성을 참조 하세요.
  • fabric-profile 는 에이전트 크기, VM 이미지, OS 디스크 및 연결된 스토리지를 지정합니다. 속성에 대한 fabric-profile 자세한 내용은 풀 설정 구성 및 추가 스토리지 구성을 참조하세요.
  • organization-profile 는 풀을 사용할 수 있는 Azure DevOps 조직 및 프로젝트를 지정합니다. 설정에 대한 organization-profile 자세한 내용은 보안 설정 구성 - 조직 액세스 구성을 참조하세요.

다음 세 개의 파일을 만들고 Azure CLI 명령을 실행하여 풀을 만들려는 폴더에 저장합니다.

  1. 다음 내용이 포함된 agent-profile.json 파일을 만듭니다.

    {
      "Stateless": {}
    }
    

    이 구성은 풀을 위한 상태 없는 에이전트를 지정합니다.

  2. 다음 내용이 포함된 fabric-profile.json 파일을 만듭니다.

    {
      "vmss": {
        "sku": {
          "name": "Standard_D2as_v5"
        },
        "images": [
          {
            "aliases": [
              "ubuntu-24.04"
            ],
            "buffer": "*",
            "wellKnownImageName": "ubuntu-24.04/latest"
          }
        ],
        "osProfile": {
          "secretsManagementSettings": {
            "observedCertificates": [],
            "keyExportable": false
          },
          "logonType": "Service"
        },
        "storageProfile": {
          "osDiskStorageAccountType": "Standard",
          "dataDisks": []
        }
      }
    }
    

    이 구성은 Standard_D2as_v5 이미지, ubuntu-24.04Azure Pipelines 이미지연결된 데이터 디스크가 없는 표준OS 디스크 유형을 사용하여 풀을 지정합니다.

  3. 다음 내용이 포함된 organization-profile.json 파일을 만듭니다. Azure DevOps 조직의 이름으로 <organization-name>을(를) 바꾸십시오.

    {
      "AzureDevOps": {
        "organizations": [
          {
            "url": "https://dev.azure.com/<organization-name>",
            "projects": [],
            "parallelism": 1
          }
        ],
        "permissionProfile": {
          "kind": "CreatorOnly"
        }
      }
    }
    

    이 구성은 Azure DevOps 조직의 모든 프로젝트에서 사용할 수 있는 풀을 지정합니다.

관리형 DevOps 풀 만들기

  1. 다음 명령을 실행합니다. 이 명령은 Azure CLI mdp 확장이 설치되지 않은 경우 설치하고 이미 설치된 경우 최신 버전으로 업데이트합니다.

     az extension add --name mdp --upgrade
    
  2. 다음 az mdp pool create 명령을 실행하여 관리되는 DevOps 풀을 만듭니 다.

    az mdp pool create -n $POOL_NAME \
       -g $RESOURCE_GROUP_NAME \
       -l $REGION \
       --devcenter-project-id $DEVCPID \
       --maximum-concurrency 1 \
       --agent-profile agent-profile.json \
       --fabric-profile fabric-profile.json \
       --organization-profile organization-profile.json
    

    구독에 원하는 Azure VM SKU 및 최대 에이전트 수를 사용하여 풀을 구성할 수 있는 용량이 없는 경우 다음 메시지와 유사한 오류와 함께 풀 만들기가 실패합니다. Cores needed to complete this request is 2, which exceeds the current limit of 0 for SKU family standardDDSv4Family in region eastus. Please choose a different region if possible, or request additional quota at https://portal.azure.com/#view/Microsoft_Azure_Support/NewSupportRequestV3Blade/issueType/quota/subscriptionId/subscription_id_placeholder/topicId/3eadc5d3-b59a-3658-d8c6-9c729ba35b97; 이 문제를 해결하려면 관리 DevOps 풀 할당량 검토를 참조하세요.

Azure Portal에서 만든 풀 보기

  1. Azure Portal에 로그인합니다.

  2. 관리형 DevOps 풀을 검색하고 사용 가능한 옵션에서 선택합니다.

  3. 목록에서 새 관리형 DevOps 풀을 선택합니다.

  4. JSON 보기를 선택하여 관리되는 DevOps 풀 리소스의 JSON 형식을 확인합니다.

    풀 개요의 JSON 보기 단추 스크린샷

Azure DevOps에서 에이전트 풀 보기

  1. Azure DevOps 포털로 이동하여 Azure DevOps 조직(https://dev.azure.com/{your-organization})에 로그인합니다.

  2. Azure DevOps의 >으로 이동합니다.

    조직 설정 단추의 스크린샷

  3. Pipelines 탭에 있는 >로 이동하여 새 풀이 나열되었는지 확인합니다. 관리되는 DevOps 풀을 방금 만든 경우 새 풀이 에이전트 목록에 표시되는 데 몇 분 정도 걸릴 수 있습니다.

    에이전트 풀 목록의 스크린샷

새 풀에서 파이프라인 실행

이 단계에서는 Azure DevOps 프로젝트의 기본 리포지토리에 간단한 파이프라인을 만들고 새 관리형 DevOps 풀에서 실행합니다.

  1. Azure DevOps 포털로 이동하여 Azure DevOps 조직(https://dev.azure.com/{your-organization})에 로그인합니다.

  2. 파이프라인을 실행하려는 프로젝트로 이동하고 파이프라인을 선택합니다.

    프로젝트 목록의 스크린샷.

  3. 새 파이프라인(또는 첫 번째 파이프라인인 경우 파이프라인 만들기)을 선택합니다.

    새 파이프라인 단추의 스크린샷

  4. Azure Repos Git을 선택합니다.

    리포지토리 형식의 스크린샷.

  5. 프로젝트와 이름이 같은 리포지토리를 선택합니다. 이 예제에서는 프로젝트 이름이 FabrikamFiber이므로 이름이 같은 리포지토리를 선택합니다.

    FabrikamFiber 리포지토리의 스크린샷.

  6. 시작 파이프라인을 선택합니다.

    파이프라인 템플릿 목록의 스크린샷

  7. 기본적으로 시작 템플릿은 Microsoft 호스팅 Linux 에이전트를 사용합니다. 파이프라인 템플릿을 편집하고 pool 섹션을 이전 단계에서 만든 풀을 참조하도록 변경합니다.

    # Change these two lines as shown in the following example.
     pool:
      vmImage: ubuntu-latest
    

    이 예제에서 Managed DevOps 풀의 이름은 fabrikam-managed-pool입니다. 따라서 vmImage: ubuntu-latestname: fabrikam-managed-pool로 교체하고, 사용하고자 하는 Managed DevOps 풀의 이름을 지정하십시오.

    # Replace fabrikam-managed-pools with the name
    # of your Managed DevOps Pool.
    pool:
      name: fabrikam-managed-pool
    
  8. 저장 및 실행을 선택하고, 저장 및 실행을 다시 한 번 선택하여 확인합니다.

    저장 및 실행 단추의 스크린샷.

  9. 이 풀에서 첫 번째 파이프라인 실행인 경우 파이프라인이 실행되기 전에 권한을 부여하라는 메시지가 표시될 수 있습니다. 자세한 내용은 이 파이프라인을 계속 실행하려면 리소스에 액세스할 수 있는 권한이 필요합니다.

  10. Azure DevOps에서 파이프라인 실행을 확인하고 Azure Portal로 전환하고 에이전트 보기에서 실행 중인 에이전트를 볼 수 있습니다.

리소스 정리

이 애플리케이션을 계속 사용하지 않려면 리소스 그룹, 개발자 센터, 개발자 센터 프로젝트 및 관리되는 DevOps 풀을 삭제합니다. 이 빠른 시작에서는 새 리소스 그룹의 모든 리소스를 만들었으므로 az group delete 명령을 사용하여 리소스 그룹 및 해당 리소스를 모두 삭제할 수 있습니다.

az group delete -n $RESOURCE_GROUP_NAME

참고 항목