다음을 통해 공유


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

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

필수 조건

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

Azure Cloud Shell에서 설치 또는 실행

Azure CLI를 사용하는 방법을 알아보는 가장 쉬운 방법은 브라우저를 통해 Azure Cloud Shell에서 Bash 환경을 실행하는 것입니다. Cloud Shell에 대해 자세히 알아보려면 Azure Cloud Shell의 Bash에 대한 빠른 시작을 참조하세요.

Azure CLI를 설치할 준비가 되면 Windows, Linux, macOS 및 Docker 컨테이너에 대한 설치 지침을 참조하세요.

를 실행 az --version하여 버전을 확인합니다. Azure Cloud Shell에는 항상 최신 버전의 Azure CLI가 미리 설치되어 있습니다.

az version

Azure CLI에 로그인

명령 프롬프트를 열고(Windows에서 Windows 명령 프롬프트 또는 PowerShell 사용) 다음 명령을 실행합니다. Azure Cloud Shell을 사용하는 경우 다른 계정을 사용하려는 경우가 아니면 실행할 az login 필요가 없습니다.

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

    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 RANDOM_ID="$(openssl rand -hex 3)"
    export RESOURCE_GROUP_NAME="myManagedDevOpsPoolGroup$RANDOM_ID"
    export REGION=EastUS2
    export POOL_NAME="mdpPool$RANDOM_ID"
    export DEV_CENTER_NAME="mdpDevCenter$RANDOM_ID"
    export DEV_CENTER_PROJECT_NAME="mdpDevCenterProject$RANDOM_ID"
    
  2. 다음 명령을 실행하여 리소스 이름을 검토합니다.

    echo $RESOURCE_GROUP_NAME
    echo $POOL_NAME
    echo $DEV_CENTER_NAME
    echo $DEV_CENTER_PROJECT_NAME
    echo $REGION
    

리소스 그룹 만들기

  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"
    }
    

    몇 분 후에 출력은 개발 센터 프로젝트가 생성되었음을 나타냅니다. id 만든 개발자 센터 프로젝트의 저장 DEVCPID 되며 다음 섹션에서 관리되는 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 는 풀이 상태 저장인지 상태 비저장인지를 지정하고 대기 에이전트 일정을 포함합니다. 이 사전은 원하는 에이전트 구성에 따라 이름이 하나 또는 Stateless단일 Stateful 키인 사전입니다. 속성에 대한 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-22.04"
            ],
            "buffer": "*",
            "wellKnownImageName": "ubuntu-22.04/latest"
          }
        ],
        "osProfile": {
          "secretsManagementSettings": {
            "observedCertificates": [],
            "keyExportable": false
          },
          "logonType": "Service"
        },
        "storageProfile": {
          "osDiskStorageAccountType": "Standard",
          "dataDisks": []
        }
      }
    }
    

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

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

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

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

관리형 DevOps 풀 만들기

  1. 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-latest Managed DevOps 풀의 이름을 로 name: fabrikam-managed-pools바꾸고 지정합니다.

    # 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

참고 항목