Microsoft 호스팅 에이전트

Azure Pipelines

Microsoft 호스팅 에이전트는 클라우드에서 호스트되는 Azure DevOps Services 사용할 수 있습니다. 온-프레미스 TFS 또는 Azure DevOps Server Microsoft 호스팅 에이전트 또는 Azure Pipelines 에이전트 풀을 사용할 수 없습니다. 이러한 온-프레미스 버전에서는 자체 호스팅 에이전트 를 사용해야 합니다.

중요

Azure DevOps 콘텐츠 버전 선택기에서 버전을 선택합니다.

플랫폼에서 사용할 수 있는 콘텐츠를 보려면 목차 위에 있는 버전 선택기에서 이 문서의 올바른 버전을 선택해야 합니다. 기능 지원은 Azure DevOps Services에서 작업하고 있는지 또는 온-프레미스 버전의 Azure DevOps Server(TFS(Team Foundation Server)에서 이름이 변경됨)에서 작업하고 있는지에 따라 달라집니다.
사용 중인 온-프레미스 버전을 알아보려면 사용 중인 플랫폼/버전을 참조하세요.

파이프라인이 Azure Pipelines 경우 Microsoft 호스팅 에이전트를사용하여 작업을 실행하는 편리한 옵션이 있습니다. Microsoft 호스팅 에이전트를 사용하므로 유지 관리와 업그레이드가 자동으로 처리됩니다. 파이프라인을 실행할 때마다 파이프라인의 각 작업에 대한 새 가상 머신을 얻게 됩니다. 가상 머신은 한 작업 후에 삭제됩니다. Microsoft 호스팅 에이전트는 VM 또는 컨테이너에서직접 작업을 실행할 수 있습니다.

Azure Pipelines Microsoft 호스팅 에이전트와 Azure Pipelines 라는 미리 정의된 에이전트 풀을 제공합니다.

많은 팀에서 작업을 실행하는 가장 간단한 방법입니다. 먼저 시도해 보고 빌드 또는 배포에 작동하는지 확인할 수 있습니다. 가상 머신을 사용하지 않는다면 자체 호스팅 에이전트를 사용할 수 있습니다.

Microsoft 호스팅 에이전트를 무료로 사용해 볼 수 있습니다.

소프트웨어

Azure Pipelines 에이전트 풀은 다양한 도구와 소프트웨어를 포함하여 선택할 수 있는 여러 가상 머신 이미지를 제공합니다.

이미지 클래식 편집기 에이전트 사양 YAML VM 이미지 레이블 포함된 소프트웨어
Windows Server 2022 및 Visual Studio 2022 windows-2022 windows-2022 링크
Visual Studio 2019가 Windows Server 2019 windows-2019 windows-latest 또는 windows-2019 링크
Ubuntu 20.04 ubuntu-20.04 ubuntu-latest 또는 ubuntu-20.04 링크
Ubuntu 18.04 ubuntu-18.04 ubuntu-18.04 링크
macOS 11 Big Sur macOS-11 macOS-latest 또는 macOS-11 링크
macOS X Catalina 10.15 macOS-10.15 macOS-10.15 링크
macOS X Mojave 10.14 macOS-10.14 macOS-10.14 링크

표에서 포함된 소프트웨어 링크를 선택하여 호스트된 각 에이전트에 대해 설치된 소프트웨어를 볼 수 있습니다. macOS 이미지를 사용하는 경우 도구 버전에서 수동으로 선택할 수 있습니다. 아래를 참조하세요.

참고

가 로 macOS-11 변경됩니다.

Ubuntu 16.04 호스팅 이미지는 2021년 9월에 제거되었습니다.

Visual Studio 2017 이미지의 Windows Server 2016 더 이상 사용되지 않습니다.

2020년 3월에 다음 Azure Pipelines 호스트된 이미지를 제거했습니다.

  • Windows Server 2012R2 및 Visual Studio 2015( vs2015-win2012r2 )
  • macOS X High Sierra 10.13( macOS-10.13 )
  • Windows Server Core 1803( win1803 )

고객은 각각 , 또는 vs2017-win2016macOS-10.14 자체 호스팅 vs2017-win2016 마이그레이션하는 것이 좋습니다.

이러한 이미지를 사용하는 파이프라인을 업데이트하는 방법에 대한 자세한 내용 및 지침은 Azure Pipelines 호스트된 풀에서 이전 이미지 제거를 참조하세요.

참고

Azure Pipelines 호스트된 풀은 해당 이미지에 매핑된 이름이 있는 이전 호스트된 풀을 대체합니다. 이전 호스트된 풀에 있던 모든 작업은 새 Azure Pipelines 호스트된 풀의 올바른 이미지로 자동으로 리디렉션됩니다. 경우에 따라 여전히 이전 풀 이름이 표시되기도 하지만 백그라운드에서 호스트된 작업은 Azure Pipelines 풀을 사용하여 실행됩니다. 이 업데이트에 대한 자세한 내용은 2019년 7월 1일 - 스프린트 154 릴리스 정보단일 호스트된 풀 릴리스 정보를 참조하세요.

중요

Microsoft 호스팅 에이전트에 설치할 추가 소프트웨어를 요청하려면 이 문서에 대한 피드백 요청을 만들거나 지원 티켓을 열지 마세요. 대신, 다양한 이미지를 생성하는 스크립트를 관리하는 리포지토리에서 문제를 엽니다.

Microsoft 호스팅 에이전트 사용

YAML 파이프라인에서 풀을 지정하지 않으면 파이프라인은 기본적으로 Azure Pipelines 에이전트 풀로 설정됩니다. 사용하려는 가상 머신 이미지를 지정하기만 하면 됩니다.

jobs:
- job: Linux
  pool:
    vmImage: 'ubuntu-latest'
  steps:
  - script: echo hello from Linux
- job: macOS
  pool:
    vmImage: 'macOS-latest'
  steps:
  - script: echo hello from macOS
- job: Windows
  pool:
    vmImage: 'windows-latest'
  steps:
  - script: echo hello from Windows

참고

풀의 사양은 YAML 파일의 여러 수준에서 수행할 수 있습니다. 파이프라인이 예상 이미지에서 실행되고 있지 않은 경우 파이프라인, 단계 및 작업 수준에서 풀 사양을 확인해야 합니다.

하드 코드된 참조 방지

Microsoft 호스팅 에이전트를 사용하는 경우 항상 변수를 사용하여 빌드 환경 및 에이전트 리소스를 참조합니다. 예를 들어 리포지토리가 포함된 드라이브 문자 또는 폴더를 하드 코딩하지 마세요. 호스트된 에이전트의 정확한 레이아웃은 경고 없이 변경될 수 있습니다.

하드웨어

Windows 및 Linux 이미지를 실행하는 Microsoft 호스팅 에이전트는 2코어 CPU, 7GB RAM 및 14GB SSD 디스크 공간이 있는 Azure 범용 가상 머신에 프로비전됩니다. 이러한 가상 머신은 Azure DevOps 조직과 동일한 지역에 공동 배치됩니다.

macOS 이미지를 실행하는 에이전트는 3코어 CPU, 14GB RAM 및 14GB SSD 디스크 공간이 있는 Mac Pro에서 프로비전됩니다. 이러한 에이전트는 Azure DevOps 조직의 위치에 관계없이 항상 미국에서 실행됩니다. 데이터 주권이 중요하고 조직이 미국에 있지 않은 경우 macOS 이미지를 사용하면 안 됩니다. 자세한 정보.

이러한 모든 컴퓨터에는 파이프라인을 실행할 수 있는 10GB 이상의 사용 가능한 디스크 공간이 있습니다. 이 여유 공간은 파이프라인이 소스 코드를 체크 아웃하거나, 패키지를 다운로드하거나, Docker 이미지를 끌어오거나, 중간 파일을 생성할 때 소비됩니다.

중요

Microsoft 호스팅 에이전트의 디스크 공간을 늘리거나 더 강력한 컴퓨터를 프로비전하는 요청을 수용할 수 없습니다. Microsoft 호스팅 에이전트의 사양이 요구 사항을 충족하지 않는 경우 자체 호스팅 에이전트 또는 확장 집합 에이전트를 고려해야 합니다.

네트워킹

일부 설정에서는 에이전트가 배포되는 IP 주소의 범위를 알아야 할 수 있습니다. 예를 들어 방화벽을 통해 호스트된 에이전트에 액세스 권한을 부여해야 하는 경우 IP 주소로 해당 액세스를 제한할 수 있습니다. Azure DevOps Azure 글로벌 네트워크를 사용하기 때문에 IP 범위는 시간에 따라 달라집니다. Azure 데이터 센터의 IP 범위를 나열하는 주별 JSON 파일을 지역별로 게시합니다. 이 파일은 새로운 계획된 IP 범위로 매주 업데이트됩니다. 새 IP 범위는 다음 주에 적용됩니다. 자주(매주 한 번 이상) 다시 확인하여 최신 목록을 유지하는 것이 좋습니다. 에이전트 작업이 실패하기 시작하는 경우 주요 첫 번째 문제 해결 단계는 구성이 최신 IP 주소 목록과 일치하는지 확인하는 것입니다. 호스트된 에이전트의 IP 주소 범위는 미국 서부 지역과 같이 의 주간 파일에 AzureCloud.<region>AzureCloud.westus 나열됩니다.

호스트된 에이전트는 조직과 동일한 Azure 지역에서 실행됩니다. 각 지리에는 하나 이상의 지역이 포함됩니다. 에이전트는 조직과 동일한 지역에서 실행되지만 그렇게 하는 것은 보장되지 않습니다. 에이전트에 사용할 수 있는 IP 범위의 전체 목록을 가져오려면 지역에 포함된 모든 지역의 IP 범위를 사용해야 합니다. 예를 들어 조직이 미국 지역에 있는 경우 해당 지역의 모든 지역에 대해 IP 범위를 사용해야 합니다.

지리를 확인하려면 으로 https://dev.azure.com/<your_organization>/_settings/organizationOverview 이동하고, 지역을 구하고, https://dev.azure.com/<your_organization>/_settings/organizationOverview 테이블에서 연결된 지리를 찾습니다. 지리를 식별한 후에는 해당 지역의 모든 지역에 대해 주간 파일의 IP 범위를 사용합니다.

중요

ExpressRoute 또는 VPN과 같은 프라이빗 연결을 사용하여 Microsoft 호스팅 에이전트를 회사 네트워크에 연결할 수 없습니다. Microsoft 호스팅 에이전트와 서버 간의 트래픽은 공용 네트워크를 통해 진행됩니다.

Microsoft 호스팅 에이전트에 대해 가능한 IP 범위를 식별하려면

  1. 조직 설정에서 조직의 지역을 식별합니다.
  2. 조직의 지역에 대한 Azure 지리를 식별합니다.
  3. 지역 이름을 와 같은 형식에 따라 주간 파일에 사용되는 형식에 AzureCloud.<region>AzureCloud.westus 매핑합니다. .NET용Azure 관리 라이브러리 에서 지역 클래스 에 대한 소스 코드에정의된 지역의 생성자에 전달된 지역 이름을 검토하여 Azure Geography 목록의 지역 이름을 매주 파일에 사용되는 형식으로 매핑할 수 있습니다.

    참고

    Azure Management Libraries for .NET에는 지리에 대한 지역을 나열하는 API가 없으므로 다음 예제와 같이 수동으로 나열해야 합니다.

  4. 주간 파일에서 지리에 있는 모든 지역의 IP 주소를 검색합니다. 지역이 브라질 남부 또는 서유럽인경우 다음 참고에 설명된 대로 대체 지역에 따라 추가 IP 범위를 포함해야 합니다.

참고

용량 제한으로 인해 브라질 남부 또는 서유럽 지역의 일부 조직에서 예상된 지리적 위치 밖에 있는 호스트된 에이전트를 볼 수 있는 경우가 있습니다. 이러한 경우 이전 섹션에서 설명한 대로 지리에 있는 모든 지역에 대한 IP 범위를 포함할 뿐만 아니라 용량 대체 지리에 있는 지역에 대한 추가 IP 범위를 포함해야 합니다.

조직이 브라질 남부 지역에 있는 경우 용량 대체 지역은 미국.

조직이 서유럽 지역에 있는 경우 용량 대체 지역은 프랑스입니다.

Mac IP 범위는 GitHub macOS 클라우드에서 호스트되기 때문에 위의 Azure IP에 포함되지 않습니다. IP 범위는 여기에 제공된 지침을 사용하여 GitHub 메타데이터 API를 사용하여 검색할 수 있습니다.

예제

다음 예제에서는 미국 서부 지역의 조직에 대한 호스트된 에이전트 IP 주소 범위가 주간 파일에서 검색됩니다. 미국 서부 지역은 미국 지역에 있기 때문에 미국 지역의 모든 지역에 대한 IP 주소가 포함됩니다. 이 예제에서는 IP 주소가 콘솔에 기록됩니다.

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace WeeklyFileIPRanges
{
    class Program
    {
        // Path to the locally saved weekly file
        const string weeklyFilePath = @"C:\MyPath\ServiceTags_Public_20210823.json";

        static void Main(string[] args)
        {
            // United States geography has the following regions:
            // Central US, East US, East US 2, North Central US, 
            // South Central US, West Central US, West US, West US 2
            // This list is accurate as of 8/26/2021
            List<string> USGeographyRegions = new List<string>
            {
                "centralus",
                "eastus",
                "eastus2",
                "northcentralus",
                "southcentralus",
                "westcentralus",
                "westus",
                "westus2"
            };

            // Load the weekly file
            JObject weeklyFile = JObject.Parse(File.ReadAllText(weeklyFilePath));
            JArray values = (JArray)weeklyFile["values"];

            foreach (string region in USGeographyRegions)
            {
                string azureCloudRegion = $"AzureCloud.{region}";
                Console.WriteLine(azureCloudRegion);

                var ipList =
                    from v in values
                    where (string)v["name"] == azureCloudRegion
                    select v["properties"]["addressPrefixes"];

                foreach (var ip in ipList.Children())
                {
                    Console.WriteLine(ip);
                }
            }
        }
    }
}

서비스 태그

Microsoft 호스팅 에이전트는 서비스 태그로 나열할 수 없습니다. 호스트된 에이전트에 리소스에 대한 액세스 권한을 부여하려는 경우 IP 범위 허용 목록 메서드를 따라야 합니다.

보안

Microsoft 호스팅 에이전트는 보안 Azure 플랫폼에서 실행됩니다. 그러나 다음과 같은 보안 고려 사항을 알고 있어야 합니다.

  • Microsoft 호스팅 에이전트는 Azure 공용 네트워크에서 실행되지만 공용 IP 주소는 할당되지 않습니다. 따라서 외부 엔터티는 Microsoft 호스팅 에이전트를 대상으로 할 수 없습니다.
  • Microsoft 호스팅 에이전트는 개별 VM에서 실행되며 각 실행 후에 다시 이미지로 표시됩니다. 각 에이전트는 단일 조직 전용이며 각 VM은 단일 에이전트만 호스트합니다.
  • 보안 관점에서 Microsoft 호스팅 에이전트에서 파이프라인을 실행하는 데는 몇 가지 이점이 있습니다. 포크의 기여와 같이 파이프라인에서 신뢰할 수 없는 코드를 실행하는 경우 회사 네트워크에 상주하는 자체 호스팅 에이전트보다 Microsoft 호스팅 에이전트에서 파이프라인을 실행하는 것이 안전합니다.
  • 파이프라인이 방화벽 뒤에 있는 회사 리소스에 액세스해야 하는 경우 Azure 지리에 대한 IP 주소 범위를 허용해야 합니다. 이렇게 하면 IP 주소 범위가 다소 크고 이 범위의 컴퓨터가 다른 고객에게도 속할 수 있기 때문에 노출이 증가할 수 있습니다. 이를 방지하는 가장 좋은 방법은 내부 리소스에 액세스할 필요가 없는 것입니다.
  • 호스트된 이미지는 CIS 강화 벤치마크를준수하지 않습니다. CIS 강화 이미지를 사용하려면 자체 호스팅 에이전트 또는 확장 집합 에이전트를 만들어야 합니다.

기능 및 제한 사항

Microsoft 호스팅 에이전트:

  • 위의 소프트웨어가 있어야합니다. 도구 설치 관리자 작업을 사용하여 빌드 또는 릴리스 중에 소프트웨어를 추가할 수도 있습니다.
    • 파이프라인의 각 작업에 대해 새로 이미지로 된 에이전트를 얻게 됩니다.
  • 원본 및 빌드 출력에 10GB의 스토리지를 제공합니다.
  • 무료 계층 제공:
    • 퍼블릭 프로젝트: 매월 전체 시간 제한 없이 최대 360분(6시간) 동안 실행할 수 있는 10개의 무료 Microsoft 호스팅 병렬 작업입니다. 무료 계층 제한을 늘리려면 문의하세요.
    • 프라이빗 프로젝트: 매월 1,800분(30시간)을 사용할 때까지 최대 60분 동안 실행할 수 있는 하나의 무료 병렬 작업입니다. 병렬 작업당 추가 용량에 대한 비용을 지불할 수 있습니다. 유료 병렬 작업은 월별 시간 제한을 제거하고 최대 360분(6시간) 동안 각 작업을 실행할 수 있습니다. Microsoft 호스팅 병렬 작업 를 구입합니다.
    • 새 Azure DevOps 조직을 만들 때 기본적으로 이러한 무료 부여가 제공되지 않습니다. 퍼블릭 또는 프라이빗 프로젝트에 대한 무료 부여를 요청하려면 요청을 제출합니다.
  • 범용 가상 머신 Standard_DS2_v2 Microsoft Azure 실행
  • Windows 관리자 권한으로 실행 및 Linux에서 암호 없는 sudo 사용자로 실행
  • (Linux에만 해당) cgroup 6GB의 실제 메모리와 13GB의 총 메모리를 제공하는 에서 단계를 실행합니다.

Microsoft 호스팅 에이전트는 다음을 제공하지 않습니다.

  • 원격으로 연결할 수 있는 기능입니다.
  • UNC 파일 공유 에 아티팩트 를 삭제하는기능입니다.
  • 컴퓨터를 회사 네트워크에 직접 조인하는 기능입니다.
  • 더 크거나 더 강력한 빌드 머신을 얻을 수 있습니다.
  • 사용자 지정 소프트웨어를 미리 로드하는 기능입니다. 도구 설치 관리자 작업을 통하거나 스크립트에서와 같이 파이프라인을 실행하는 동안 소프트웨어를 설치할 수 있습니다.
  • 빌드를 더 빠르게 시작하고 실행할 수 있는 자체 호스팅 에이전트를 사용하여 얻을 수 있는 잠재적인 성능 이점 자세한 정보
  • XAML을실행하는 기능은 를 빌드합니다.

Microsoft 호스팅 에이전트가 요구 사항을 충족하지 않는 경우 자체 호스팅 에이전트를 배포하거나 확장 집합 에이전트를사용할 수 있습니다.

FAQ

이미지에 포함된 소프트웨어를 확인하려면 어떻게 해야 합니까?

소프트웨어 테이블에서 포함된 소프트웨어 링크를 선택하여 호스트된 각 에이전트에 대해 설치된 소프트웨어를 볼 수 있습니다.

Microsoft는 이미지에 배치할 소프트웨어 및 버전을 어떻게 선택하나요?

이미지에 포함된 소프트웨어 버전에 대한 자세한 내용은 설치된 소프트웨어에 대한 지침에서찾을 수 있습니다.

이미지가 업데이트되는 시기는 언제인가요?

이미지는 일반적으로 매주 업데이트됩니다. 첫 번째 부분이 이미지가 업데이트된 날짜를 나타내는 형식의 상태 배지를 확인할 수 있습니다.

필요한 소프트웨어를 제거하거나 최신 버전으로 바꾸면 어떻게 해야 합니까?

Microsoft 호스팅 에이전트 사용 테이블에서 포함된 소프트웨어 링크를 선택하여 GitHub 문제를 제출하면 알려줄 수 있습니다.

필요한 소프트웨어의 정확한 버전을 포함하는 자체 호스팅 에이전트를 사용할 수도 있습니다. 자세한 내용은 자체 호스팅 에이전트를 참조하세요.

처리 능력, 메모리 또는 디스크 공간이 더 많은 더 큰 컴퓨터가 필요한 경우 어떻게 해야 할까요?

Microsoft 호스팅 에이전트의 메모리, 처리 능력 또는 디스크 공간을 늘릴 수는 없지만 원하는 사양으로 머신에서 호스트되는 자체 호스팅 에이전트 또는 확장 집합 에이전트를 사용할 수 있습니다.

Microsoft 호스팅 에이전트를 선택할 수 없으며 빌드 또는 배포를 큐에 대기할 수 없습니다.   어떻게 해야 합니까?

Microsoft 호스팅 에이전트는 TFS 또는 Azure DevOps Server 아닌 Azure Pipelines 사용할 수 있습니다.

기본적으로 조직의 모든 프로젝트 기여자는 Microsoft 호스팅 에이전트에 액세스할 수 있습니다. 그러나 조직 관리자는 Microsoft 호스팅 에이전트의 액세스를 제한하여 사용자 또는 프로젝트를 선택할 수 있습니다. Azure DevOps 조직의 소유자에게 Microsoft 호스팅 에이전트를 사용할 수 있는 권한을 부여하도록 요청합니다. 에이전트 풀 보안을 참조하세요.

Microsoft 호스팅 에이전트에서 실행되는 내 파이프라인을 완료하는 데 더 많은 시간이 소요됩니다. 속도를 어떻게 빨라야 할까요?

파이프라인이 최근에 더 느려진 경우 상태 페이지에서 가동 중단을 검토합니다. 서비스에 문제가 있을 수 있습니다. 또는 애플리케이션 코드 또는 파이프라인에서 변경한 내용을 검토합니다. 체크 아웃하는 동안 리포지토리 크기가 증가했거나, 더 큰 아티팩트 업로드 중이거나, 더 많은 테스트를 실행하고 있을 수 있습니다.

파이프라인을 설정하고 Microsoft 호스팅 에이전트의 성능을 로컬 컴퓨터 또는 자체 호스팅 에이전트와 비교하는 경우 작업을 실행하는 데 사용하는 하드웨어의 사양을 적어 둡니다. 더 크거나 강력한 머신을 제공할 수 없습니다. 이 성능이 허용되지 않는 경우 자체 호스팅 에이전트 또는 확장 집합 에이전트 사용을 고려할 수 있습니다.

에이전트가 더 필요합니다. 어떻게 해야 하나요?

모든 Azure DevOps 조직에는 오픈 소스 프로젝트에 대한 몇 가지 무료 병렬 작업과 프라이빗 프로젝트에 대해 매월 하나의 무료 병렬 작업 및 제한된 분이 제공됩니다. 오픈 소스 프로젝트에 대한 추가 분 또는 병렬 작업이 필요한 경우 지원에 문의하세요. 프라이빗 프로젝트에 대한 추가 분 또는 병렬 작업이 필요한 경우 더 많은를 구입할 수 있습니다.

내 파이프라인은 자체 호스팅 에이전트에서 성공하지만 Microsoft 호스팅 에이전트에서는 실패합니다.   어떻게 해야 합니까?

자체 호스팅 에이전트에는 올바른 모든 의존도가 설치되어 있는 반면, 동일한 의존성, 도구 및 소프트웨어는 Microsoft 호스팅 에이전트에 설치되지 않습니다. 먼저 위의 표에 포함된 소프트웨어 링크에 따라 Microsoft 호스팅 에이전트에 설치된 소프트웨어 목록을 주의 깊게 검토합니다. 그런 다음 자체 호스팅 에이전트에 설치된 소프트웨어와 비교합니다. 경우에 따라 Microsoft 호스팅 에이전트에 필요한 도구(예: Visual Studio)가 있을 수 있지만 필요한 모든 선택적 구성 요소가 설치되지 않았을 수 있습니다. 차이점이 발견되면 다음 두 가지 옵션이 있습니다.

  • 추가 소프트웨어에 대한 요청을 추적하는 리포지토리에서 새 문제를 만들 수 있습니다. 지원 담당자는 Microsoft 호스팅 에이전트에서 새 소프트웨어를 설정하는 데 도움이 되지 않습니다.

  • 자체 호스팅 에이전트 또는 확장 집합 에이전트를 사용할 수 있습니다. 이러한 에이전트를 사용하면 파이프라인을 실행하는 데 사용되는 이미지를 완전히 제어할 수 있습니다.

내 빌드는 로컬 컴퓨터에서 성공하지만 Microsoft 호스팅 에이전트에서는 실패합니다.   어떻게 해야 합니까?

로컬 컴퓨터에는 올바른 모든 의존도가 설치되어 있는 반면, 동일한 의존성, 도구 및 소프트웨어는 Microsoft 호스팅 에이전트에 설치되지 않습니다. 먼저 위의 표에 포함된 소프트웨어 링크에 따라 Microsoft 호스팅 에이전트에 설치된 소프트웨어 목록을 주의 깊게 검토합니다. 그런 다음, 이를 로컬 컴퓨터에 설치된 소프트웨어와 비교합니다. 경우에 따라 Microsoft 호스팅 에이전트에 필요한 도구(예: Visual Studio)가 있을 수 있지만 필요한 모든 선택적 구성 요소가 설치되지 않았을 수 있습니다. 차이점이 발견되면 다음 두 가지 옵션이 있습니다.

  • 추가 소프트웨어에 대한 요청을 추적하는 리포지토리에서 새 문제를 만들 수 있습니다. 이는 새 소프트웨어를 설치하는 데 가장 적합합니다. 지원 담당자는 Microsoft 호스팅 에이전트에서 새 소프트웨어를 설정하는 데 도움이 되지 않습니다.

  • 자체 호스팅 에이전트 또는 확장 집합 에이전트를 사용할 수 있습니다. 이러한 에이전트를 사용하면 파이프라인을 실행하는 데 사용되는 이미지를 완전히 제어할 수 있습니다.

"디바이스에 공간이 남아 있지 않습니다."라는 오류로 인해 파이프라인이 실패합니다.

Microsoft 호스팅 에이전트의 디스크에 작업을 실행할 수 있는 여유 공간이 10GB밖에 없습니다. 이 공간은 소스 코드를 체크 아웃하거나 패키지를 다운로드할 때, Docker 이미지를 다운로드하거나 중간 파일을 생성할 때 소비됩니다. 아쉽게도 Microsoft 호스팅 이미지에서 사용할 수 있는 여유 공간을 늘릴 수 없습니다. 이 공간에 맞도록 파이프라인을 재구성할 수 있습니다. 또는 자체 호스팅 에이전트 또는 확장 집합 에이전트를사용하는 것이 좋습니다.

Microsoft 호스팅 에이전트에서 실행되는 내 파이프라인은 회사 네트워크의 서버에 액세스해야 합니다. 방화벽에서 허용할 IP 주소 목록을 가져오려면 어떻게 해야 할까요?

에이전트 IP 범위 섹션을 참조하세요.

Microsoft 호스팅 에이전트에서 실행되는 파이프라인이 회사 네트워크의 서버 이름을 확인할 수 없습니다. 이 문제를 어떻게 해결할 수 있나요?

DNS 이름으로 서버를 참조하는 경우 DNS 이름을 통해 인터넷에서 서버에 공개적으로 액세스할 수 있는지 확인합니다. IP 주소로 서버를 참조하는 경우 IP 주소가 인터넷에서 공개적으로 액세스할 수 있는지 확인합니다. 두 경우 모두 에이전트와 회사 네트워크 간의 방화벽에 에이전트 IP 범위가 허용되는지 확인합니다.

Azure Storage 계정에서 SAS IP 권한 부여 오류가 발생합니다.

SAS 오류 코드가 발생하면 Azure Storage 규칙으로 인해 Microsoft 호스팅 에이전트의 IP 주소 범위가 허용되지 않기 때문일 수 있습니다. 몇 가지 해결 방법이 있습니다.

  1. Azure Storage 계정에 대한 IP 네트워크 규칙을 관리하고호스트된 에이전트의 IP 주소 범위를 추가합니다.
  2. 파이프라인에서 Azure CLI 사용하여 스토리지에 액세스하기 직전에 Azure Storage 계정에 대한 네트워크 규칙 모음을 업데이트한 다음 이전 규칙 모음을 복원합니다.
  3. 자체 호스팅 에이전트 또는 확장 집합 에이전트를 사용합니다.

호스트된 macOS 에이전트에서 도구 버전을 수동으로 선택하려면 어떻게 해야 합니까?

Xamarin

호스트된 macOS 에이전트는 Xamarin SDK 버전 및 연결된 Mono 버전을 단일 번들 symlink에서 사용할 수 있는 Xamarin SDK 위치에 대한 symlink 집합으로 저장합니다.

호스트된 macOS 에이전트에서 사용할 Xamarin SDK 버전을 수동으로 선택하려면 빌드의 일부로 Xamarin 빌드 작업 전에 다음 bash 명령을 실행하고 필요한 Xamarin 버전 번들에 대한 symlink를 지정합니다.

/bin/bash -c "sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh <symlink>"

사용 가능한 모든 Xamarin SDK 버전 및 symlink 목록은 에이전트 설명서에서 찾을 수 있습니다.

이 명령은 Xamarin SDK 외의 Mono 버전을 선택하지 않습니다. Mono 버전을 수동으로 선택하려면 아래 지침을 참조하세요.

Xamarin.iOS 또는 Xamarin.Mac 앱을 빌드하기 위해 기본이 아닌 버전의 Xcode를 사용하는 경우 이 명령줄을 추가로 실행해야 합니다.

/bin/bash -c "echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'$(xcodeRoot);sudo xcode-select --switch $(xcodeRoot)/Contents/Developer"

어디 $(xcodeRoot) = /Applications/Xcode_12.4.app

호스트된 macOS 에이전트 풀의 Xcode 버전은 여기에서찾을 수 있습니다.

Xcode

Azure Pipelines 및 TFS에 포함된 Xcode 작업을 사용하는 경우 해당 작업의 속성에서 Xcode 버전을 선택할 수 있습니다. 그렇지 않은 경우 호스트된 macOS 에이전트 풀에서 사용할 Xcode 버전을 수동으로 설정하려면 빌드 작업 전에 빌드의 일부로 이 명령줄을 실행하여 필요에 따라 Xcode 버전 번호 12.4를 대체합니다.

/bin/bash -c "sudo xcode-select -s /Applications/Xcode_12.4.app/Contents/Developer"

호스트된 macOS 에이전트 풀의 Xcode 버전은 여기에서찾을 수 있습니다.

이 명령은 Xamarin 앱에서 작동하지 않습니다. Xamarin 앱을 빌드하기 위한 Xcode 버전을 수동으로 선택하려면 위의 지침을 참조하세요.

Mono

호스트된 macOS 에이전트 풀에서 사용할 Mono 버전을 수동으로 선택하려면 Mono 빌드 작업 전에 빌드의 각 작업에서 이 스크립트를 실행하고 필요한 Mono 버전으로 symlink를 지정합니다(사용 가능한 모든 symlink 목록은 위의 Xamarin 섹션에서 찾을 수 있음).

SYMLINK=<symlink>
MONOPREFIX=/Library/Frameworks/Mono.framework/Versions/$SYMLINK
echo "##vso[task.setvariable variable=DYLD_FALLBACK_LIBRARY_PATH;]$MONOPREFIX/lib:/lib:/usr/lib:$DYLD_LIBRARY_FALLBACK_PATH"
echo "##vso[task.setvariable variable=PKG_CONFIG_PATH;]$MONOPREFIX/lib/pkgconfig:$MONOPREFIX/share/pkgconfig:$PKG_CONFIG_PATH"
echo "##vso[task.setvariable variable=PATH;]$MONOPREFIX/bin:$PATH"

동영상