Azure Pipelines 에이전트

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019 | TFS 2018

참고

Microsoft TFS(Team Foundation Server) 2018 이하 버전에서 빌드 및 릴리스 ‘파이프라인’은 ‘정의’라고 하며 ‘실행’은 ‘빌드’, ‘서비스 연결’은 ‘서비스 엔드포인트’, ‘스테이지’는 ‘환경’, ‘작업’은 ‘단계’라고 합니다.

Azure Pipelines를 사용하여 코드를 빌드하거나 소프트웨어를 배포하려면 하나 이상의 에이전트가 필요합니다. 코드와 사람을 더 추가하게 되면 결국에는 에이전트가 더 많이 필요하게 됩니다.

파이프라인이 실행되면 시스템이 하나 이상의 작업을 시작합니다. 에이전트는 한 번에 하나의 작업을 실행하는 설치된 에이전트 소프트웨어가 있는 컴퓨팅 인프라입니다.

작업은 에이전트의 호스트 컴퓨터 또는 컨테이너에서 직접 실행할 수 있습니다.

Microsoft 호스팅 에이전트

파이프라인이 Azure Pipelines에 있는 경우 Microsoft 호스팅 에이전트를 사용하여 작업을 실행하는 편리한 옵션이 있습니다. Microsoft 호스팅 에이전트를 사용하므로 유지 관리와 업그레이드가 자동으로 처리됩니다. 파이프라인을 실행할 때마다 파이프라인의 각 작업에 대한 새 가상 머신이 표시됩니다. 가상 머신은 한 작업 후에 삭제됩니다(즉, 코드 체크 아웃과 같은 가상 머신 파일 시스템에 대한 작업 변경 내용은 다음 작업에서 사용할 수 없음). Microsoft 호스팅 에이전트는 VM 또는 컨테이너에서 직접 작업을 실행할 수 있습니다.

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

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

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

Microsoft 호스팅 에이전트에 대해 자세히 알아봅니다.

자체 호스팅 에이전트

작업을 실행하기 위해 직접 설정하고 관리하는 에이전트는 자체 호스팅 에이전트입니다. Azure Pipelines 또는 Azure DevOps Server(이전에는 TFS(Team Foundation Server))에서 자체 호스팅 에이전트를 사용할 수 있습니다. 자체 호스팅 에이전트를 사용하면 빌드 및 배포에 필요한 종속 소프트웨어 설치를 보다 강력하게 제어할 수 있습니다. 또한 머신 수준 캐시 및 구성은 실행에서 실행까지 유지되어 속도를 높일 수 있습니다.

참고

컴퓨터당 여러 에이전트를 설치할 수 있지만 컴퓨터당 하나의 에이전트만 설치하는 것이 좋습니다. 둘 이상의 에이전트를 설치하면 파이프라인의 성능과 결과에 부정적인 영향을 줄 수 있습니다.

자체 호스팅 에이전트를 설치하기 전에 Microsoft 호스팅 에이전트 풀이 적합한지 확인할 수 있습니다. 대부분의 경우 이것이 가장 간단한 방법입니다. 시도해 보세요.

Linux, macOS 또는 Windows 머신에서 해당 에이전트를 설치할 수 있습니다. Docker 컨테이너에 에이전트를 설치할 수도 있습니다. 자체 호스팅 에이전트 설치에 대한 자세한 내용은 다음을 참조하세요.

참고

macOS에서는 실행 시 gatekeeper 보호가 tar 파일 ./config.sh 의 각 어셈블리에 대해 표시되지 않도록 다운로드 아카이브의 특수 특성을 지워야 합니다. 다음 명령은 파일의 확장된 특성을 지웁니다.

xattr -c vsts-agent-osx-x64-V.v.v.tar.gz  ## replace V.v.v with the version in the filename downloaded.

# then unpack the gzip tar file normally:

tar xvfz vsts-agent-osx-x64-V.v.v.tar.gz

머신에 에이전트를 설치한 후에는 작업에 필요한 대로 해당 머신에 다른 소프트웨어를 설치할 수 있습니다.

참고

에이전트는 널리 이전 버전과 호환됩니다. Azure DevOps가 더 높은 버전의 에이전트를 요구하지 않는 한 모든 버전의 에이전트는 Azure DevOps 버전과 호환되어야 합니다.

최신 패치 및 버그 수정이 모두 보장되는 유일한 버전이므로 최신 버전의 에이전트만 지원합니다.

Azure 가상 머신 확장 집합 에이전트

Azure 가상 머신 확장 집합 에이전트는 요구 사항에 맞게 자동으로 크기를 조정할 수 있는 자체 호스팅 에이전트의 한 형태입니다. 이처럼 탄력적이므로 항상 전용 에이전트를 실행할 필요성이 감소합니다. Microsoft 호스팅 에이전트와 달리, 에이전트가 실행되는 컴퓨터의 크기와 이미지가 유연합니다.

사용자가 가상 머신 확장 집합, 대기 상태로 유지할 에이전트 수, 확장 집합의 최대 가상 머신 수를 지정하면 Azure Pipelines가 에이전트의 스케일링을 알아서 관리합니다.

자세한 내용은 Azure 가상 머신 확장 집합 에이전트를 참조하세요.

병렬 작업

병렬 작업은 조직에서 동시에 실행할 수 있는 작업 수를 나타냅니다. 조직에 단일 병렬 작업이 있는 경우 조직에서 한 번에 단일 작업을 실행할 수 있으며, 첫 번째 작업이 완료될 때까지 추가 동시 작업이 큐에 대기됩니다. 두 개의 작업을 동시에 실행하려면 두 개의 병렬 작업이 필요합니다. Azure Pipelines에서 Microsoft 호스팅 인프라 또는 자체(자체 호스팅) 인프라에서 병렬 작업을 실행할 수 있습니다.

Microsoft는 하나 이상의 병렬 작업을 포함하는 모든 조직에서 기본적으로 무료 서비스 계층을 제공합니다. 실행해야 하는 동시 파이프라인 수에 따라 여러 Microsoft 호스팅 또는 자체 호스팅 에이전트를 동시에 사용하려면 더 많은 병렬 작업이 필요할 수 있습니다. 병렬 작업 및 다양한 무료 서비스 계층에 대한 자세한 내용은 Azure Pipelines의 병렬 작업을 참조하세요.

여러 에이전트를 동시에 사용하려면 더 많은 병렬 작업이 필요할 수 있습니다.

중요

Azure DevOps Server 2019부터는 릴리스에서 자체 호스팅 동시 작업에 대한 비용을 지불할 필요가 없습니다. 사용자가 가진 에이전트 수에 의해서만 제한됩니다.

기능

모든 자체 호스팅 에이전트에는 수행할 수 있는 작업을 나타내는 기능 집합이 있습니다. 기능은 에이전트 소프트웨어에서 자동으로 검색되는 이름-값 쌍이며, 이 쌍을 시스템 기능이라고 하거나 정의한 쌍으로, 이 경우 사용자 기능이라고 합니다.

에이전트 소프트웨어는 컴퓨터 이름, 운영 체제 유형 및 컴퓨터에 설치된 특정 소프트웨어 버전과 같은 다양한 시스템 기능을 자동으로 결정합니다. 또한 머신에 정의된 환경 변수는 시스템 기능 목록에 자동으로 표시됩니다.

참고

환경 변수를 기능으로 저장한다는 것은 에이전트가 실행되면 저장된 기능 값이 환경 변수를 설정하는 데 사용됨을 의미합니다. 또한 에이전트가 실행되는 동안 수행되는 환경 변수에 대한 변경 내용은 어떤 작업에서도 선택되고 사용되지 않습니다. 변경되는 중요한 환경 변수가 있고 기능으로 저장하지 않으려는 경우 쉼표로 구분된 변수 목록을 사용하여 환경 변수를 설정 VSO_AGENT_IGNORE 하여 무시하도록 할 수 있습니다. 예를 들어 소프트웨어를 PATH 설치하는 경우 무시할 수 있는 중요한 변수입니다.

파이프라인을 작성할 때 에이전트의 특정 요구를 지정합니다 . 시스템은 파이프라인에 지정된 요구 사항과 일치하는 기능이 있는 에이전트에게만 작업을 보냅니다. 결과적으로 에이전트 기능을 사용하면 작업을 특정 에이전트로 보낼 수 있습니다.

참고

요구 사항 및 기능은 작업의 요구 사항을 충족하는 에이전트와 작업을 일치시킬 수 있도록 자체 호스팅 에이전트에서 사용하도록 설계되었습니다. Microsoft 호스팅 에이전트를 사용하는 경우 작업의 요구 사항과 일치하는 에이전트에 대한 이미지를 선택하므로 Microsoft 호스팅 에이전트에 기능을 추가할 수 있지만 Microsoft 호스팅 에이전트와 함께 기능을 사용할 필요는 없습니다.

에이전트 기능 구성

에이전트 풀로 이동하고 원하는 에이전트에 대한 기능 탭을 선택하여 해당 버전 및 시스템 기능을 포함하여 에이전트의 세부 정보를 보고 사용자 기능을 관리할 수 있습니다.

  1. 웹 브라우저에서 에이전트 풀로 이동합니다.

    1. Azure DevOps, 조직 설정을 선택합니다.

      조직 설정을 선택합니다.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀 탭을 선택합니다.

    1. Azure DevOps, 컬렉션 설정을 선택합니다.

      컬렉션 설정을 선택합니다.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀을 선택합니다.

    1. Azure DevOps, 컬렉션 설정을 선택합니다.

      컬렉션 설정, 2019.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀, 2019를 선택합니다.

    1. 프로젝트로 이동하여 설정 (기어 아이콘) >에이전트 큐를 선택합니다.

      설정, 에이전트 큐, 2018을 선택합니다.

    2. 풀 관리를 선택합니다.

      풀 관리, 2018을 선택합니다.

  2. 기능 탭으로 이동합니다.

    1. 에이전트 풀 탭에서 원하는 에이전트 풀을 선택합니다.

      에이전트 풀에서 원하는 에이전트 풀을 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      에이전트를 선택하고 에이전트를 선택합니다.

    3. 기능 탭을 선택합니다.

      기능 탭을 선택합니다.

      참고

      Microsoft 호스팅 에이전트는 시스템 기능을 표시하지 않습니다. Microsoft 호스팅 에이전트에 설치된 소프트웨어 목록은 Microsoft 호스팅 에이전트 사용을 참조하세요.

    1. 에이전트 풀 탭에서 원하는 풀을 선택합니다.

      원하는 풀을 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      에이전트를 선택하고 원하는 에이전트를 선택합니다.

    3. 기능 탭을 선택합니다.

      에이전트 기능 탭.

    1. 에이전트 풀 탭에서 원하는 풀을 선택합니다.

      원하는 탭 2019를 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      원하는 에이전트, 2019를 선택합니다.

    3. 기능 탭을 선택합니다.

      기능 탭, 2019를 선택합니다.

    원하는 에이전트를 선택하고 기능 탭을 선택합니다.

    에이전트 기능 탭, 2018.

  3. 에이전트에 새 기능을 등록하려면 새 기능 추가를 선택합니다.

자체 호스팅 에이전트에 새 소프트웨어를 설치한 후 새 기능이 표시되도록 에이전트를 다시 시작해야 합니다. 자세한 내용은 Windows 에이전트 다시 시작, Linux 에이전트 다시 시작Mac 에이전트 다시 시작을 참조하세요.

통신

Azure Pipelines와의 통신

TFS와의 통신

에이전트는 Azure Pipelines 또는 Azure DevOps Server와 통신하여 어떤 작업을 실행하고 로그 및 작업 상태를 보고해야 하는지 확인합니다. 이 통신은 항상 에이전트가 시작합니다. 에이전트를 구성하는 방법에 따라 에이전트의 모든 메시지는 HTTP 또는 HTTPS를 통해 Azure Pipelines 또는 Azure DevOps Server로 전달됩니다. 이 끌어오기 모델을 사용하면 아래와 같이 다른 토폴로지에서 에이전트를 구성할 수 있습니다.

온-프레미스 설치의 에이전트 토폴로지입니다.

Azure DevOps Services 에이전트 토폴로지

다음은 에이전트와 Azure Pipelines 또는 Azure DevOps Server 간의 일반적인 통신 패턴입니다.

  1. 사용자는 에이전트를 에이전트 풀에 추가하여 Azure Pipelines 또는 Azure DevOps Server 등록합니다. 에이전트 풀에 에이전트를 등록하려면 에이전트 풀 관리자여야 합니다. 에이전트 풀 관리자의 ID는 등록 시에만 필요하고 에이전트에 유지되지 않으며, 에이전트와 Azure Pipelines 또는 Azure DevOps Server 간의 후속 통신에 사용되지 않습니다. 등록이 완료되면 에이전트는 수신기 OAuth 토큰 을 다운로드하고 이를 사용하여 작업 큐를 수신 대기합니다.

  2. 에이전트는 HTTP 긴 설문 조사를 사용하여 Azure Pipelines/Azure DevOps Server의 작업 큐에 새 작업 요청이 게시되었는지 확인하기 위해 수신 대기합니다. 작업을 사용할 수 있는 경우 에이전트는 작업 및 작업별 OAuth 토큰을 다운로드합니다. 이 토큰은 파이프라인에 지정된 범위 ID에 대한 Azure Pipelines/Azure DevOps Server 의해 생성됩니다. 이 토큰은 단기적인 것으로, 에이전트가 리소스(예: 소스 코드)에 액세스하거나 해당 작업 내의 Azure Pipelines 또는 Azure DevOps Server에서 리소스를 수정(예: 테스트 결과 업로드)하는 데 사용됩니다.

  3. 작업이 완료되면 에이전트가 작업별 OAuth 토큰을 삭제하고 수신기 OAuth 토큰을 사용하여 새 작업 요청이 있는지 확인하기 위해 다시 돌아갑니다.

에이전트와 Azure Pipelines/Azure DevOps Server 간에 교환된 메시지의 페이로드는 비대칭형 암호화를 사용하여 보호됩니다. 각 에이전트에는 공개-프라이빗 키 쌍이 있으며, 등록 중에 공개 키가 서버와 교환됩니다. 서버는 공개 키를 사용하여 작업의 페이로드를 암호화한 후에 에이전트에 전송합니다. 에이전트는 해당 프라이빗 키를 사용하여 작업 콘텐츠의 암호를 해독합니다. 이러한 방식으로 파이프라인 또는 변수 그룹에 저장된 비밀이 에이전트와 교환될 때 보안이 유지됩니다.

대상 서버에 배포하기 위해 통신

에이전트를 사용하여 서버 세트에 아티팩트를 배포하는 경우 해당 서버에 대한 "가시선" 연결이 있어야 합니다. Microsoft 호스트팅 에이전트 풀은 기본적으로 Azure에서 실행되는 Azure 웹 사이트 및 서버에 연결되어 있습니다.

참고

Azure 리소스가 Azure Virtual Network 실행되는 경우 Microsoft 호스팅 에이전트가 배포되는 에이전트 IP 범위를 가져와서 에이전트의 액세스를 허용하도록 Azure VNet에 대한 방화벽 규칙을 구성할 수 있습니다.

온-프레미스 환경이 Microsoft 호스팅 에이전트 풀에 연결되지 않은 경우(일반적으로 중간 방화벽 때문에) 온-프레미스 컴퓨터에서 자체 호스팅 에이전트를 수동으로 구성해야 합니다. 아래 계통도처럼 에이전트가 대상 온-프레미스 환경에 연결되어 있고 인터넷에 연결되어 있어야만 Azure Pipelines 또는 Team Foundation Server에 연결할 수 있습니다.

온-프레미스 환경에 대한 에이전트 연결

인증

에이전트를 등록하려면 에이전트 풀에서 관리자 역할 의 멤버여야 합니다. 에이전트 풀 관리자의 ID는 등록 시에만 필요하고 에이전트에 유지되지 않으며, 에이전트와 Azure Pipelines 또는 Azure DevOps Server 간의 후속 통신에 사용되지 않습니다. 또한 에이전트를 구성하려면 서버의 로컬 관리자여야 합니다.

에이전트가 다음 방법 중 하나를 사용하여 Azure Pipelines에 인증할 수 있습니다.

에이전트는 다음 방법 중 하나를 사용하여 Azure DevOps Server 또는 TFS에 인증할 수 있습니다.

PAT(개인용 액세스 토큰):

PAT를 생성하고 사용하여 에이전트를 Azure Pipelines 또는 TFS 2017 이상과 연결합니다. PAT는 Azure Pipelines에서 작동하는 유일한 체계입니다. PAT에는 에이전트 풀(읽기, 관리) 범위가 있어야 합니다( 배포 그룹 에이전트의 경우 PAT에는 배포 그룹(읽기, 관리) 범위가 있어야 하며, 단일 PAT를 사용하여 여러 에이전트를 등록할 수 있지만 PAT는 에이전트를 등록할 때만 사용되며 후속 통신에는 사용되지 않습니다. 자세한 내용은 Windows, Linux 또는 macOS 자체 호스팅 에이전트 문서의 PAT(개인용 액세스 토큰) 섹션을 사용하여 인증을 참조하세요.

Azure DevOps Server에 PAT를 사용하려면 서버에서 HTTPS를 구성해야 합니다. 웹 사이트 설정 및 보안을 참조하세요.

통합

NTLM 또는 Kerberos와 같은 Windows 인증 체계를 통해 로그인한 사용자의 자격 증명을 사용하여 Windows 에이전트를 TFS에 연결합니다.

이 인증 방법을 사용하려면 먼저 TFS 서버를 구성해야 합니다.

  1. TFS를 실행하는 컴퓨터에 로그인합니다.

  2. IIS(인터넷 정보 서비스) 관리자를 시작합니다. TFS 사이트를 선택하고 NTLM 또는 Kerberos와 같은 유효한 공급자를 사용하여 Windows 인증을 사용하도록 설정했는지 확인합니다.

IIS TFS Windows 인증

ntlm 공급자를 사용한 IIS TFS Windows 인증

Negotiate

NTLM 또는 Kerberos와 같은 Windows 인증 체계를 통해 로그인한 사용자 이외의 사용자로 TFS에 연결합니다.

이 인증 방법을 사용하려면 먼저 TFS 서버를 구성해야 합니다.

  1. TFS를 실행하는 컴퓨터에 로그온합니다.

  2. IIS(인터넷 정보 서비스) 관리자를 시작합니다. TFS 사이트를 선택하고 협상 공급자 및 NTLM 또는 Kerberos와 같은 다른 방법으로 Windows 인증을 사용하도록 설정했는지 확인합니다.

IIS TFS Windows 인증

협상 및 ntlm 공급자를 사용한 IIS TFS Windows 인증

대체

기본 인증을 사용하여 TFS에 연결합니다. 이 메서드를 사용하려면 먼저 TFS에서 HTTPS를 구성해야 합니다.

이 인증 방법을 사용하려면 다음과 같이 TFS 서버를 구성해야 합니다.

  1. TFS를 실행하는 컴퓨터에 로그인합니다.

  2. 기본 인증을 구성합니다. 기본 인증을 사용하여 tfx Team Foundation Server 2015에 대한 사용을 참조하세요.

대화형과 서비스의 차이점

자체 호스팅 에이전트를 서비스 또는 대화형 프로세스로 실행할 수 있습니다. 에이전트를 구성한 후에는 먼저 대화형 모드로 실행하여 작동하는지 확인하는 것이 좋습니다. 그런 다음, 프로덕션에 사용할 수 있도록 에이전트를 다음 모드 중 하나로 실행하여 안정적으로 실행하는 것이 좋습니다. 또한 이러한 모드에서는 머신을 다시 시작하는 경우 에이전트가 자동으로 시작됩니다.

  1. 서비스로. 운영 체제의 서비스 관리자를 활용하여 에이전트의 수명 주기를 관리할 수 있습니다. 또한 에이전트를 자동으로 업그레이드하는 환경은 서비스로 실행할 때 더욱 향상됩니다.

  2. 자동 로그온을 사용하는 대화형 프로세스입니다. 경우에 따라 UI 테스트 실행 등 프로덕션 사용을 위해 대화형으로 에이전트를 실행해야 할 수 있습니다. 이 모드에서 실행하도록 에이전트가 구성된 경우 화면 보호기도 사용할 수 없습니다. 일부 도메인 정책은 자동 로그온 또는 화면 보호기를 사용할 수 없도록 차단합니다. 이러한 경우 도메인 정책에서 예외를 검색하거나 도메인 정책이 적용되지 않는 작업 그룹 컴퓨터에서 에이전트를 실행해야 할 수도 있습니다.

    참고

    자동 로그온을 사용하도록 설정하거나 화면 보호기를 사용하지 않도록 설정하면 다른 사용자가 컴퓨터로 이동하고 자동으로 로그온하는 계정을 사용할 수 있으므로 보안 위험이 있습니다. 이러한 방식으로 에이전트를 실행하도록 구성하는 경우 컴퓨터가 실제로 보호되고 있는지(예: 보안 시설에 있는지) 확인해야 합니다. 원격 데스크톱을 사용하여 에이전트가 자동 로그온으로 실행되는 컴퓨터에 액세스하는 경우 원격 데스크톱을 닫으면 컴퓨터가 잠기고 이 에이전트에서 실행되는 UI 테스트가 실패할 수 있습니다. 이 문제를 방지하려면 tscon 명령을 사용하여 원격 데스크톱에서 연결을 끊습니다. 다음은 그 예입니다.

    %windir%\System32\tscon.exe 1 /dest:console

에이전트 계정

에이전트를 서비스로 실행하든 대화형으로 실행하든 에이전트를 실행하는 데 사용할 컴퓨터 계정을 선택할 수 있습니다. Azure Pipelines 또는 Azure DevOps Server 에이전트를 등록할 때 사용하는 자격 증명과 다릅니다. 에이전트 계정 선택은 빌드 및 배포 작업에서 실행되는 작업의 요구 사항에만 따라 달라집니다.

예를 들어 Windows 인증 사용하여 외부 서비스에 액세스하는 작업을 실행하려면 해당 서비스에 액세스할 수 있는 계정을 사용하여 에이전트를 실행해야 합니다. 그러나 브라우저가 필요한 Selenium 또는 코딩된 UI 테스트와 같은 UI 테스트를 실행하는 경우 브라우저는 에이전트 계정의 컨텍스트에서 시작됩니다.

Windows에서는 네트워크 서비스 또는 로컬 서비스와 같은 서비스 계정을 사용하는 것이 좋습니다. 이러한 계정에는 권한이 제한되어 있고 암호가 만료되지 않습니다. 즉, 에이전트는 시간이 지남에 따라 더 적은 관리가 필요합니다.

에이전트 버전 및 업그레이드

Azure Pipelines에서 몇 주마다 에이전트 소프트웨어를 업데이트합니다. 에이전트 버전을 형식 {major}.{minor}으로 나타냅니다. 예를 들어 에이전트 버전이면 2.1주 버전은 2이고 부 버전은 1입니다.

Microsoft 호스팅 에이전트는 항상 최신 상태로 유지됩니다. 최신 버전의 에이전트가 버전에서만 다른 경우 Azure Pipelines에서 자체 호스팅 에이전트를 자동으로 업데이트할 수 있습니다( 에이전트 풀에서 이 설정 구성, 에이전트 선택, 설정 - 기본값 사용). 플랫폼 기능 또는 파이프라인에서 사용되는 작업 중 하나에 최신 버전의 에이전트가 필요한 경우 업그레이드가 요청됩니다.

자체 호스팅 에이전트를 대화형으로 실행하거나 사용 가능한 최신 버전의 에이전트가 있는 경우 에이전트를 수동으로 업그레이드해야 할 수 있습니다. 조직의 에이전트 풀 탭에서 이 작업을 쉽게 수행할 수 있습니다. 파이프라인은 호환되는 에이전트를 대상으로 지정할 수 있을 때까지 실행되지 않습니다.

자체 호스팅 에이전트를 업데이트하려면

  1. 프로젝트 설정, 에이전트 풀로 이동합니다.

    프로젝트 설정, 에이전트 풀

  2. 에이전트 풀을 선택하고 모든 에이전트 업데이트를 선택합니다.

    모든 에이전트 업데이트

    ... 메뉴에서 업데이트 에이전트를 선택하여 에이전트를 개별적으로 업데이트할 수도 있습니다.

    에이전트 업데이트

  3. 업데이트를 선택하여 업데이트를 확인합니다.

    모든 에이전트 업데이트 확인

  4. 현재 실행 중인 작업이 완료되면 실행되는 풀의 각 에이전트에 대해 업데이트 요청이 큐에 대기됩니다. 일반적으로 업그레이드하는 데는 몇 분 정도 걸립니다. 에이전트 소프트웨어의 최신 버전(약 200MB)을 다운로드하고 압축을 풀고 새 버전으로 에이전트를 다시 시작할 수 있을 만큼 충분히 오래 걸립니다. 에이전트 탭에서 에이전트의 상태를 모니터링할 수 있습니다 .

Azure DevOps Server 및 TFS의 모든 업데이트로 에이전트 소프트웨어를 업데이트합니다. 에이전트 버전을 형식 {major}.{minor}으로 나타냅니다. 예를 들어 에이전트 버전이면 2.1주 버전은 2이고 부 버전은 1입니다.

Azure DevOps Server 또는 TFS 서버에 최신 버전의 에이전트가 있고 최신 에이전트가 버전에서만 다른 경우 일반적으로 자동으로 업그레이드할 수 있습니다. 플랫폼 기능 또는 파이프라인에서 사용되는 작업 중 하나에 최신 버전의 에이전트가 필요한 경우 업그레이드가 요청됩니다. Azure DevOps Server 2019부터 새 서버 릴리스를 기다릴 필요가 없습니다. 새 버전의 에이전트를 애플리케이션 계층에 업로드할 수 있으며 해당 버전은 업그레이드로 제공됩니다.

에이전트를 대화형으로 실행하거나 사용 가능한 최신 버전의 에이전트가 있는 경우 에이전트를 수동으로 업그레이드해야 할 수 있습니다. 이 작업은 프로젝트 컬렉션 아래의 에이전트 풀 탭에서 쉽게 수행할 수 있습니다. 파이프라인은 호환되는 에이전트를 대상으로 지정할 수 있을 때까지 실행되지 않습니다.

에이전트 기능 구성에 설명된 대로 에이전트 풀 로 이동하고 원하는 에이전트에 대한 기능 탭을 선택하여 에이전트의 버전을 볼 수 있습니다.

에이전트 업데이트를 프로그래밍 방식으로 트리거하려면 특정 에이전트 풀에 대해 프로그래밍 방식으로 에이전트 업데이트를 트리거하는 방법 섹션에 설명된 대로 에이전트 업데이트 API를 사용할 수 있습니다.

참고

인터넷에 액세스할 수 없는 서버의 경우 로컬 파일로 사용할 에이전트 zip 파일을 C:\ProgramData\Microsoft\Azure DevOps\Agents\ 수동으로 복사합니다.

FAQ

최신 v2 에이전트 버전이 있는지 어떻게 할까요??

  1. 에이전트 풀 탭으로 이동합니다.

    1. Azure DevOps, 조직 설정을 선택합니다.

      조직 설정을 선택합니다.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀 탭을 선택합니다.

    1. Azure DevOps, 컬렉션 설정을 선택합니다.

      컬렉션 설정을 선택합니다.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀을 선택합니다.

    1. Azure DevOps, 컬렉션 설정을 선택합니다.

      컬렉션 설정, 2019.

    2. 에이전트 풀을 선택합니다.

      에이전트 풀, 2019를 선택합니다.

    1. 프로젝트로 이동하여 설정 (기어 아이콘) >에이전트 큐를 선택합니다.

      설정, 에이전트 큐, 2018을 선택합니다.

    2. 풀 관리를 선택합니다.

      풀 관리, 2018을 선택합니다.

  2. 에이전트가 포함된 풀을 클릭합니다.

  3. 에이전트가 사용하도록 설정되어 있는지 확인합니다.

  4. 기능 탭으로 이동합니다.

    1. 에이전트 풀 탭에서 원하는 에이전트 풀을 선택합니다.

      에이전트 풀에서 원하는 에이전트 풀을 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      에이전트를 선택하고 에이전트를 선택합니다.

    3. 기능 탭을 선택합니다.

      기능 탭을 선택합니다.

      참고

      Microsoft 호스팅 에이전트는 시스템 기능을 표시하지 않습니다. Microsoft 호스팅 에이전트에 설치된 소프트웨어 목록은 Microsoft 호스팅 에이전트 사용을 참조하세요.

    1. 에이전트 풀 탭에서 원하는 풀을 선택합니다.

      원하는 풀을 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      에이전트를 선택하고 원하는 에이전트를 선택합니다.

    3. 기능 탭을 선택합니다.

      에이전트 기능 탭.

    1. 에이전트 풀 탭에서 원하는 풀을 선택합니다.

      원하는 탭 2019를 선택합니다.

    2. 에이전트를 선택하고 원하는 에이전트를 선택합니다.

      원하는 에이전트, 2019를 선택합니다.

    3. 기능 탭을 선택합니다.

      기능 탭, 2019를 선택합니다.

    원하는 에이전트를 선택하고 기능 탭을 선택합니다.

    에이전트 기능 탭, 2018.

  5. Agent.Version 기능을 찾습니다. 최신 게시된 에이전트 버전에 대해 이 값을 확인할 수 있습니다. Azure Pipelines 에이전트를 참조하고 나열된 가장 높은 버전 번호에 대한 페이지를 확인합니다.

  6. 각 에이전트는 최신 버전의 에이전트가 필요한 작업을 실행할 때 자동으로 업데이트됩니다. 일부 에이전트를 수동으로 업데이트하려면 풀을 마우스 오른쪽 단추로 클릭하고 모든 에이전트 업데이트를 선택합니다.

Azure DevOps Server 풀의 일부인 v2 에이전트를 업데이트할 수 있나요?

예. Azure DevOps Server 2019부터 로컬 디스크에서 에이전트 패키지 파일을 찾도록 서버를 구성할 수 있습니다. 이 구성은 릴리스 시 서버와 함께 제공된 기본 버전을 재정의합니다. 이 시나리오는 서버가 인터넷에 액세스할 수 없는 경우에도 적용됩니다.

  1. 인터넷에 액세스할 수 있는 컴퓨터에서 Azure Pipelines 에이전트 GitHub 릴리스 페이지에서 최신 버전의 에이전트 패키지 파일(.zip 또는 .tar.gz 형식)을 다운로드합니다.

  2. 선택한 방법(예: USB 드라이브, 네트워크 전송 등)을 사용하여 다운로드한 패키지 파일을 각 Azure DevOps Server 애플리케이션 계층으로 전송합니다. 에이전트 파일을 폴더 아래에 배치합니다 %ProgramData%\Microsoft\Azure DevOps\Agents .

  3. 당신은 모두 설정되어 있습니다! 이제 Azure DevOps Server 에이전트가 업데이트될 때마다 로컬 파일을 사용합니다. 각 에이전트는 최신 버전의 에이전트가 필요한 작업을 실행할 때 자동으로 업데이트됩니다. 그러나 일부 에이전트를 수동으로 업데이트하려면 풀을 마우스 오른쪽 단추로 클릭한 다음 모든 에이전트 업데이트를 선택합니다.

자체 호스팅 에이전트는 Microsoft 호스팅 에이전트에 비해 성능상 이점이 있나요?

대부분의 경우에는 그렇습니다. 구체적으로는 다음과 같습니다.

  • 자체 호스팅 에이전트를 사용하는 경우 증분 빌드를 실행할 수 있습니다. 예를 들어 리포지토리를 정리하지 않고 클린 빌드를 수행하지 않는 파이프라인을 정의하면 일반적으로 빌드가 더 빠르게 실행됩니다. Microsoft 호스팅 에이전트를 사용하는 경우 빌드 또는 릴리스 파이프라인이 완료된 후 에이전트가 제거되므로 이러한 이점을 얻을 수 없습니다.

  • Microsoft 호스트팅 에이전트는 빌드를 시작하는 데 더 오래 걸릴 수 있습니다. Microsoft 호스팅 에이전트에 작업을 할당하는 데 몇 초밖에 걸리지 않지만 시스템의 부하에 따라 에이전트를 할당하는 데 몇 분 정도 걸릴 수 있습니다.

동일한 머신에 자체 호스팅 에이전트를 여러 개 설치할 수 있나요?

예. 이 방법은 많은 공유 리소스를 사용하지 않는 작업을 실행하는 에이전트에 적합할 수 있습니다. 예를 들어 주로 배포를 오케스트레이션하고 에이전트 자체에서 많은 작업을 수행하지 않는 릴리스를 실행하는 에이전트에 대해 이 방법을 시도할 수 있습니다.

다른 경우에는 동일한 컴퓨터에서 여러 에이전트를 실행하여 많은 효율성을 얻지 못할 수 있습니다. 예를 들어 많은 디스크 및 I/O 리소스를 사용하는 빌드를 실행하는 에이전트에게는 가치가 없을 수 있습니다.

병렬 빌드 작업이 npm 패키지와 같은 동일한 싱글톤 도구 배포를 사용하는 경우에도 문제가 발생할 수 있습니다. 예를 들어 한 빌드에서 종속성을 업데이트하는 동안 다른 빌드에서 이를 사용 중일 수 있으며, 이로 인해 신뢰할 수 없는 결과와 오류가 발생할 수 있습니다.

파이프라인 작업이 취소될 때 에이전트의 동작은 무엇인가요?

Microsoft 호스팅 에이전트의 경우 에이전트가 분해되어 Azure Pipelines 풀로 반환됩니다.

자체 호스팅 에이전트의 경우:

파이프라인이 취소되면 에이전트는 현재 단계를 실행하는 프로세스에 명령 시퀀스를 보냅니다. 첫 번째 명령은 7.5초의 시간 제한으로 전송됩니다. 프로세스가 종료되지 않은 경우 두 번째 명령은 2.5초의 시간 제한으로 전송됩니다. 프로세스가 종료되지 않은 경우 에이전트는 프로세스를 종료하는 명령을 실행합니다. 프로세스에서 두 개의 초기 종료 요청을 적용하지 않으면 종료됩니다. 초기 요청에서 종료까지 약 10초가 걸립니다.

프로세스에 발급된 명령은 에이전트 운영 체제에 따라 다릅니다.

  • macOS 및 Linux - 전송된 명령은 SIGINT, SIGTERM, SIGKILL입니다.
  • Windows - 프로세스로 전송된 명령은 Ctrl+C, Ctrl+Break, Process.Kill이 차례로 잇습니다.

특정 에이전트 풀에 대해 프로그래밍 방식으로 에이전트 업데이트를 트리거하는 방법은 무엇인가요?

다음 API를 사용하여 풀에 대한 에이전트 업데이트를 트리거할 수 있습니다.

POST https://dev.azure.com/{organization}/_apis/distributedtask/pools/{poolId}/messages?agentId={agentId}&api-version=6.0

URI 매개 변수

이름 In(다음 안에) 필수 Type 설명
agentId Query False 문자열 업데이트할 에이전트입니다. 지정하지 않으면 모든 에이전트에 대해 업데이트가 트리거됩니다.
organization path True 문자열 Azure DevOps 조직의 이름입니다.
poolId path True 정수 int32 사용할 에이전트 풀
api-version Query False 문자열 사용할 API의 버전입니다. 이 버전의 API를 사용하려면 '6.0'으로 설정해야 합니다.

에이전트 업데이트를 트리거하려면 요청 본문이 비어 있어야 합니다.

참고

Azure Pipelines 에이전트는 GitHub에서 오픈 소스.

자세한 정보

에이전트에 대한 자세한 내용은 Azure DevOps 학습 경로를 사용하여 빌드 애플리케이션의 다음 모듈을 참조하세요.