자체 호스팅 Windows 에이전트

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

참고

파이프라인 팀은 현재 미리 보기로 버전 3.x 에이전트 소프트웨어를 릴리스합니다. 자세한 내용은 에이전트 소프트웨어 버전 3 미리 보기를 참조하세요.

Windows, Azure 및 기타 Visual Studio 솔루션을 빌드하고 배포하려면 하나 이상의 Windows 에이전트가 필요합니다. Windows 에이전트는 Java 및 Android 앱을 빌드할 수도 있습니다.

시작하기 전에

에이전트에 대해 알아보기

에이전트가 무엇이고 어떻게 작동하는지 이미 알고 있는 경우 다음 섹션으로 바로 이동할 수 있습니다. 그러나 수행하는 작업과 작동 방식에 대한 자세한 배경은 Azure Pipelines 에이전트를 참조하세요.

필수 구성 요소 확인

머신에 다음과 같은 필수 구성 요소가 있는지 확인합니다.

  • Windows 7 SP1 ESU, 8.1, 10 또는 11(클라이언트 OS를 사용하는 경우)
  • Windows 2012 이상(서버 OS를 사용하는 경우)
  • PowerShell 3.0 이상
  • .NET Framework 4.6.2 이상

중요

2019년 12월부터 빌드 에이전트에 필요한 최소 .NET 버전은 4.6.2 이상입니다.

권장:

Subversion 리포지토리에서 빌드하는 경우 컴퓨터에 Subversion 클라이언트 를 설치해야 합니다.

에이전트 설정을 처음 수동으로 실행해야 합니다. 에이전트 작동 방식에 대한 느낌을 받거나 많은 에이전트 설정을 자동화하려는 경우 무인 구성을 사용하는 것이 좋습니다.

하드웨어 사양

에이전트에 대한 하드웨어 사양은 요구 사항, 팀 크기 등에 따라 달라집니다. 모든 사용자에게 적용되는 일반적인 권장 사항을 만들 수 없습니다. 참조 지점으로 Azure DevOps 팀은 호스트된 에이전트를 활용하는 파이프라인을 사용하여 호스트된 에이전트 코드를 빌드합니다. 반면에 Azure DevOps 코드의 대부분은 자체 호스팅 에이전트 4기를 실행하는 24코어 서버 클래스 컴퓨터에 의해 빌드됩니다.

권한 준비

자체 호스팅 에이전트에 대한 정보 보안

에이전트를 구성하는 사용자에게는 풀 관리자 권한이 필요하지만 에이전트를 실행하는 사용자는 그렇지 않습니다.

에이전트에서 제어하는 폴더는 가능한 한 적은 수의 사용자로 제한되어야 하며 암호 해독 또는 유출될 수 있는 비밀을 포함해야 합니다.

Azure Pipelines 에이전트는 외부 원본에서 다운로드하는 코드를 실행하도록 설계된 소프트웨어 제품입니다. 기본적으로 RCE(원격 코드 실행) 공격의 대상이 될 수 있습니다.

따라서 작업을 수행하기 위해 Pipelines 에이전트의 각 개별 사용을 둘러싼 위협 모델을 고려하고 에이전트를 실행하는 사용자, 에이전트가 실행되는 컴퓨터, 파이프라인 정의에 대한 쓰기 액세스 권한이 있는 사용자, yaml이 저장된 git 리포지토리에 부여할 수 있는 최소 권한을 결정하는 것이 중요합니다. 또는 새 파이프라인에 대한 풀에 대한 액세스를 제어하는 사용자 그룹입니다.

에이전트를 실행하는 ID가 에이전트를 풀에 연결할 수 있는 권한이 있는 ID와 달라지도록 하는 것이 가장 좋습니다. 자격 증명(및 기타 에이전트 관련 파일)을 생성하는 사용자는 자격 증명을 읽어야 하는 사용자와 다릅니다. 따라서 에이전트 컴퓨터 자체에 부여된 액세스 권한과 로그 및 아티팩트와 같은 중요한 파일이 포함된 에이전트 폴더를 신중하게 고려하는 것이 안전합니다.

DevOps 관리자 및 에이전트 프로세스를 실행하는 사용자 ID에 대해서만 에이전트 폴더에 대한 액세스 권한을 부여하는 것이 좋습니다. 관리자는 빌드 실패를 이해하거나 Azure DevOps 오류를 보고할 수 있도록 로그 파일을 가져오기 위해 파일 시스템을 조사해야 할 수 있습니다.

사용할 사용자 결정

일회성 단계로 에이전트를 등록해야 합니다. 에이전트 큐를 관리할 수 있는 권한이 있는 사용자는 다음 단계를 완료해야 합니다. 에이전트는 일상적인 작업에서 이 사람의 자격 증명을 사용하지 않지만 등록을 완료해야 합니다. 에이전트가 통신하는 방법에 대해 자세히 알아봅니다.

PAT(개인용 액세스 토큰)로 인증

  1. Team Foundation Server 웹 포털(https://{your-server}:8080/tfs/)에서 사용하려는 사용자 계정으로 로그인합니다.
  1. Azure DevOps Server 웹 포털()에서 사용하려는 사용자 계정으로https://{your-server}/DefaultCollection/ 로그인합니다.
  1. Azure DevOps 조직(https://dev.azure.com/{your_organization})에서 사용할 사용자 계정으로 로그인합니다.
  1. 홈페이지에서 프로필을 엽니다. 보안 세부 정보로 이동합니다.

    보안 세부 정보로 이동합니다.

  2. 개인용 액세스 토큰을 만듭니다.

    개인용 액세스 토큰을 만듭니다.

    참고

    배포 그룹 에이전트를 구성하거나 VM 환경 리소스를 등록할 때 오류가 표시되는 경우 PAT 범위를 액세스 가능한 모든 조직으로 설정해야 합니다. 모든 액세스 가능한 조직으로 PAT 범위를 설정하는 스크린샷

  1. 홈페이지에서 사용자 설정을 연 다음 개인용 액세스 토큰을 선택합니다.

    보안 세부 정보로 이동합니다.

  2. 개인용 액세스 토큰을 만듭니다.

    개인용 액세스 토큰을 만듭니다.

  1. 범위에서 에이전트 풀(읽기, 관리) 을 선택하고 다른 모든 상자가 선택 취소되었는지 확인합니다. 배포 그룹 에이전트인 경우 범위에 대해 배포 그룹(읽기, 관리)을 선택하고 다른 모든 상자가 선택 취소되었는지 확인합니다.

    새 개인용 액세스 토큰 만들기 창의 맨 아래에 있는 모든 범위 표시를 선택하여 전체 범위 목록을 확인합니다.

  2. 토큰을 복사합니다. 에이전트를 구성할 때 이 토큰을 사용합니다.

사용자에게 권한이 있는지 확인

사용하려는 사용자 계정에 에이전트를 등록할 수 있는 권한이 있는지 확인합니다.

사용자가 Azure DevOps 조직 소유자 또는 TFS 또는 Azure DevOps Server 관리자인가요? 여기서 중지합니다. 권한이 있습니다.

그렇지 않은 경우:

  1. 브라우저를 열고 Azure Pipelines 조직 또는 Azure DevOps Server 또는 TFS 서버에 대한 에이전트 풀 탭으로 이동합니다.

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

      조직 설정을 선택합니다.

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

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

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

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

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

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

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

      컬렉션 설정, 2019.

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

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

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

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

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

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

  2. 페이지 오른쪽에서 풀을 선택한 다음 보안을 클릭합니다.

  3. 사용하려는 사용자 계정이 표시되지 않으면 관리자에게 계정을 추가하도록 합니다. 관리자는 에이전트 풀 관리자, Azure DevOps 조직 소유자 또는 TFS 또는 Azure DevOps Server 관리자일 수 있습니다.

    배포 그룹 에이전트인 경우 관리자는 배포 그룹 관리자, Azure DevOps 조직 소유자 또는 TFS 또는 Azure DevOps Server 관리자일 수 있습니다.

    Azure Pipelines의 배포 그룹 페이지에 있는 보안 탭에서 배포 그룹 관리자 역할에 사용자를 추가할 수 있습니다.

참고

다음과 같은 메시지가 표시되면 ID를 추가할 수 없습니다. 다른 ID를 사용해 보세요. 조직 소유자 또는 TFS 또는 Azure DevOps Server 관리자에 대해 위의 단계를 수행했을 것입니다. 아무 것도 할 필요가 없습니다. 에이전트 큐를 관리할 수 있는 권한이 이미 있습니다.

에이전트 다운로드 및 구성

Azure Pipelines

  1. 위에서 설명한 대로 사용 권한을 준비한 계정을 사용하여 컴퓨터에 로그온합니다.

  2. 웹 브라우저에서 Azure Pipelines에 로그인하고 에이전트 풀 탭으로 이동합니다.

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

      조직 설정을 선택합니다.

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

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

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

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

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

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

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

      컬렉션 설정, 2019.

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

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

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

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

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

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

  3. 기본 풀을 선택하고 에이전트 탭을 선택한 다음 새 에이전트를 선택합니다.

  4. 에이전트 가져오기 대화 상자에서 Windows를 선택합니다.

  5. 왼쪽 창에서 컴퓨터에 설치된 Windows OS 버전의 프로세서 아키텍처를 선택합니다. x64 에이전트 버전은 64비트 Windows용인 반면 x86 버전은 32비트 Windows용입니다. 어떤 버전의 Windows가 설치되어 있는지 확실하지 않은 경우 다음 지침에 따라 알아보세요.

  6. 오른쪽 창에서 다운로드 단추를 클릭합니다.

  7. 페이지의 지침에 따라 에이전트를 다운로드합니다.

  8. 에이전트를 선택한 디렉터리에 압축을 풉니다. 도구와 스크립트가 항상 공백을 제대로 이스케이프하지 않기 때문에 디렉터리의 경로에 공백이 없는지 확인합니다. 권장되는 폴더는 입니다 C:\agents. 다운로드 폴더 또는 다른 사용자 폴더에서 추출하면 사용 권한 문제가 발생할 수 있습니다. 그런 다음, config.cmd을 실행합니다. 그러면 에이전트를 구성하기 위한 일련의 질문이 표시됩니다.

Azure DevOps Server 2019 및 Azure DevOps Server 2020

  1. 위에서 설명한 대로 사용 권한을 준비한 계정을 사용하여 컴퓨터에 로그온합니다.

  2. 웹 브라우저에서 Azure DevOps Server 2019에 로그인하고 에이전트 풀 탭으로 이동합니다.

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

      조직 설정을 선택합니다.

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

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

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

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

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

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

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

      컬렉션 설정, 2019.

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

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

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

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

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

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

  3. 에이전트 다운로드를 클릭합니다.

  4. 에이전트 가져오기 대화 상자에서 Windows를 클릭합니다.

  5. 왼쪽 창에서 컴퓨터에 설치된 Windows OS 버전의 프로세서 아키텍처를 선택합니다. x64 에이전트 버전은 64비트 Windows용인 반면 x86 버전은 32비트 Windows용입니다. 어떤 버전의 Windows가 설치되어 있는지 확실하지 않은 경우 다음 지침에 따라 알아보세요.

  6. 오른쪽 창에서 다운로드 단추를 클릭합니다.

  7. 페이지의 지침에 따라 에이전트를 다운로드합니다.

  8. 에이전트를 선택한 디렉터리에 압축을 풉니다. 도구와 스크립트가 항상 공백을 제대로 이스케이프하지 않기 때문에 디렉터리의 경로에 공백이 없는지 확인합니다. 권장되는 폴더는 입니다 C:\agents. 다운로드 폴더 또는 다른 사용자 폴더에서 추출하면 사용 권한 문제가 발생할 수 있습니다. 그런 다음, config.cmd을 실행합니다. 그러면 에이전트를 구성하기 위한 일련의 질문이 표시됩니다.

TFS 2018

  1. 위에서 설명한 대로 사용 권한을 준비한 계정을 사용하여 컴퓨터에 로그온합니다.

  2. 웹 브라우저에서 TFS에 로그인하고 에이전트 풀 탭으로 이동합니다.

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

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

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

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

  3. 에이전트 다운로드를 클릭합니다.

  4. 에이전트 가져오기 대화 상자에서 Windows를 클릭합니다.

  5. 다운로드 단추를 클릭합니다.

  6. 페이지의 지침에 따라 에이전트를 다운로드합니다.

  7. 에이전트를 선택한 디렉터리에 압축을 풉니다. 도구와 스크립트가 항상 공백을 제대로 이스케이프하지 않기 때문에 디렉터리의 경로에 공백이 없는지 확인합니다. 권장되는 폴더는 입니다 C:\agents. 다운로드 폴더 또는 다른 사용자 폴더에서 추출하면 사용 권한 문제가 발생할 수 있습니다. 그런 다음, config.cmd을 실행합니다.

중요

관리자 권한 PowerShell 창에서 에이전트를 구성하는 것이 좋습니다. 서비스로 구성하려면 이 작업이 필요합니다.

Windows PowerShell ISE를 사용하여 에이전트를 구성해서는 안 됩니다.

중요

보안상의 이유로 관리자만 에이전트 폴더(C:\agents)를 편집할 수 있도록 하는 것이 좋습니다.

참고

에이전트 구성에 git-bash와 같은 민트 기반 셸을 사용하지 마십시오. Mintty는 네이티브 Input/Output Windows API와 완전히 호환되지 않으며(여기에 몇 가지 정보가 있음) 이 경우 설치 스크립트의 올바른 작업을 보장할 수 없습니다.

서버 URL 및 인증

설치 프로그램에서 서버 URL을 요청하는 경우 Azure DevOps Services 에 대답https://dev.azure.com/{your-organization}합니다.

설치 프로그램에서 서버 URL을 요청하면 TFS에 대해 에 응답 https://{your_server}/tfs합니다.

설정에서 인증 유형을 묻는 메시지가 표시되면 PAT를 선택합니다. 그런 다음 , 만든 PAT 토큰을 명령 프롬프트 창에 붙여넣습니다.

참고

PAT를 인증 방법으로 사용하는 경우 PAT 토큰은 에이전트의 초기 구성 중에만 사용됩니다. 나중에 PAT가 만료되거나 갱신해야 하는 경우 에이전트에서 추가 변경이 필요하지 않습니다.

중요

사용하려는 인증 방법을 지원하도록 서버가 구성되어 있는지 확인합니다.

TFS에 연결하도록 에이전트를 구성하는 경우 다음과 같은 옵션이 있습니다.

  • 대체 기본 인증을 사용하여 TFS에 연결합니다. 대체를 선택하면 자격 증명에 대한 메시지가 표시됩니다.

  • 협상 NTLM 또는 Kerberos와 같은 Windows 인증 체계를 통해 로그인한 사용자 이외의 사용자로 TFS에 연결합니다. 협상을 선택하면 자격 증명을 묻는 메시지가 표시됩니다.

  • 통합(기본값) NTLM 또는 Kerberos와 같은 Windows 인증 체계를 통해 로그인한 사용자의 자격 증명을 사용하여 Windows 에이전트를 TFS에 연결합니다. 이 메서드를 선택한 후에는 자격 증명을 묻는 메시지가 표시되지 않습니다.

  • Azure Pipelines 및 TFS 2017 이상에서만 지원됩니다. PAT를 선택한 후 만든 PAT 토큰을 명령 프롬프트 창에 붙여넣습니다. TFS 인스턴스와 에이전트 컴퓨터가 신뢰할 수 있는 도메인에 없는 경우 PAT(개인용 액세스 토큰)를 사용합니다. PAT 인증은 도메인 컨트롤러 대신 TFS 인스턴스에서 처리됩니다.

참고

PAT를 인증 방법으로 사용하는 경우 PAT 토큰은 에이전트의 초기 구성에만 사용됩니다. PAT를 다시 생성해야 하는 경우 에이전트에 대한 추가 변경이 필요하지 않습니다.

Azure Pipelines 또는 TFS와의 통신에서 자세히 알아보세요.

대화형 또는 서비스 모드 선택

대화형 모드 또는 서비스로 에이전트를 실행할지 여부에 대한 지침은 에이전트: 대화형 및 서비스를 참조하세요.

서비스로 실행(권장)을 선택하는 경우 로 실행하는 사용자 이름은 20자 이하여야 합니다.

에이전트 실행

대화형으로 실행

에이전트를 대화형으로 실행하도록 구성한 경우 다음을 실행합니다.

.\run.cmd

에이전트를 다시 시작하려면 Ctrl+C를 눌러 에이전트를 중지한 다음 를 실행 run.cmd 하여 다시 시작합니다.

한 번 실행

대화형으로 실행되도록 구성된 에이전트의 경우 에이전트가 하나의 작업만 허용하도록 선택할 수 있습니다. 이 구성에서 실행하려면 다음을 수행합니다.

.\run.cmd --once

이 모드의 에이전트는 하나의 작업만 수락한 다음 정상적으로 스핀다운합니다(Azure Container Instances 같은 서비스에서 Docker에서 실행하는 데 유용).

서비스로 실행

에이전트가 서비스로 실행되도록 구성한 경우 자동으로 시작됩니다. 서비스 스냅인에서 에이전트 실행 상태를 보고 제어할 수 있습니다. 를 실행하고 services.msc 다음 중 하나를 찾습니다.

  • "Azure Pipelines 에이전트(에이전트 이름)".
  • "VSTS 에이전트(에이전트 이름)".
  • "vstsagent. (조직 이름). (에이전트 이름)".

에이전트를 다시 시작하려면 항목을 마우스 오른쪽 단추로 클릭하고 다시 시작을 선택합니다.

참고

에이전트의 로그온 계정을 변경해야 하는 경우 서비스 스냅인에서 변경하지 마세요. 대신 아래 정보를 참조하여 에이전트를 다시 구성합니다.

에이전트를 사용하려면 에이전트의 풀을 사용하여 작업을 실행합니다. 다른 풀을 선택하지 않은 경우 에이전트는 기본 풀에 있습니다.

에이전트 바꾸기

에이전트를 바꾸려면 에이전트 다운로드 및 구성 단계를 다시 수행합니다.

이미 존재하는 에이전트와 동일한 이름을 사용하여 에이전트를 구성할 때 기존 에이전트를 바꿀 것인지 묻는 메시지가 표시됩니다. 에 대답 Y하는 경우 대체하려는 에이전트(아래 참조)를 제거해야 합니다. 그렇지 않으면 몇 분 동안 충돌이 발생하면 에이전트 중 하나가 종료됩니다.

에이전트 제거 및 다시 구성

에이전트를 제거하려면

.\config remove

에이전트를 제거한 후 다시 구성할 수 있습니다.

무인 구성

에이전트는 사람의 개입 없이 스크립트에서 설정할 수 있습니다. 모든 질문에 대한 답변과 대답을 전달 --unattended 해야 합니다.

에이전트를 구성하려면 조직의 URL 또는 에이전트를 설정할 권한이 있는 사람의 수집 및 자격 증명을 알고 있어야 합니다. 다른 모든 응답은 선택 사항입니다. 대신 환경 변수를 사용하여 명령줄 매개 변수를 지정할 수 있습니다. 대문자로 이름을 입력하고 앞에 를 추가합니다 VSTS_AGENT_INPUT_. 예를 들어 을 VSTS_AGENT_INPUT_PASSWORD 지정하는 대신 입니다 --password.

필수 옵션

  • --unattended - 에이전트 설정에서 정보를 입력하라는 메시지가 표시되지 않으며 명령줄에 모든 설정을 제공해야 합니다.
  • --url <url> - 서버의 URL입니다. 예: https://dev.azure.com/myorganization 또는 http://my-azure-devops-server:8080/tfs
  • --auth <type> - 인증 유형입니다. 유효한 값은 다음과 같습니다.
    • pat(개인용 액세스 토큰) - PAT는 Azure DevOps Services 작동하는 유일한 체계입니다.
    • negotiate (Kerberos 또는 NTLM)
    • alt (기본 인증)
    • integrated (Windows 기본 자격 증명)

인증 옵션

  • 를 선택한 --auth pat경우
    • --token <token> - 개인용 액세스 토큰을 지정합니다.
    • PAT는 Azure DevOps Services 작동하는 유일한 체계입니다.
  • 또는 --auth alt를 선택한 --auth negotiate 경우
    • --userName <userName> - 형식 domain\userName 으로 Windows 사용자 이름을 지정하거나 userName@domain.com
    • --password <password> - 암호를 지정합니다.

풀 및 에이전트 이름

  • --pool <pool> - 조인할 에이전트의 풀 이름
  • --agent <agent> - 에이전트 이름
  • --replace - 풀의 에이전트를 바꿉다. 다른 에이전트가 같은 이름으로 수신 대기하는 경우 충돌과 함께 실패하기 시작합니다.

에이전트 설정

  • --work <workDirectory> - 작업 데이터가 저장되는 작업 디렉터리입니다. 기본값은 _work 에이전트 디렉터리의 루트 아래에 있습니다. 작업 디렉터리가 지정된 에이전트에 의해 소유되며 여러 에이전트 간에 공유해서는 안 됩니다.
  • --acceptTeeEula- Team Explorer Everywhere 최종 사용자 사용권 계약에 동의합니다(macOS 및 Linux에만 해당).
  • --disableloguploads - 서버로 콘솔 로그 출력을 스트리밍하거나 보내지 마세요. 대신 작업이 완료된 후 에이전트 호스트의 파일 시스템으로부터 검색할 수 있습니다.

Windows 전용 시작

  • --runAsService - Windows 서비스로 실행되도록 에이전트 구성(관리자 권한 필요)
  • --runAsAutoLogon - 자동 로그온 구성 및 시작 시 에이전트 실행(관리자 권한 필요)
  • --windowsLogonAccount <account>- 또는 --runAsAutoLogon 와 함께 --runAsService Windows 사용자 이름을 또는 형식 domain\userName 으로 지정하는 데 사용됩니다.userName@domain.com
  • --windowsLogonPassword <password>- 또는 --runAsAutoLogon 와 함께 --runAsService Windows 로그온 암호를 지정하는 데 사용됩니다(그룹 관리 서비스 계정 및 'NT AUTHORITY\NETWORK SERVICE'와 같은 Windows 기본 제공 계정에는 필요하지 않음)
  • --overwriteAutoLogon - 컴퓨터에서 기존 자동 로그온을 덮어쓰기 위해 와 함께 --runAsAutoLogon 사용됨
  • --noRestart - 에이전트 구성이 완료된 후 호스트가 다시 시작되는 것을 중지하는 데 와 함께 --runAsAutoLogon 사용됨

옵션을 사용하여 에이전트 runAsAutoLogon 구성 문제 해결

옵션을 사용하여 에이전트를 runAsAutoLogon 구성하면 컴퓨터를 다시 시작한 후 매번 에이전트가 실행됩니다. 컴퓨터를 다시 시작한 후 에이전트가 실행되지 않는 경우 다음 단계를 수행합니다.

에이전트가 컴퓨터에 이미 구성된 경우

에이전트를 다시 구성하기 전에 이전 에이전트 구성을 제거해야 하므로 에이전트 폴더에서 이 명령을 실행해 보세요.

.\config.cmd remove --auth 'PAT' --token '<token>'

명령을 실행한 후 에이전트가 에이전트 풀에서 제거되었는지 확인합니다.

<Azure DevOps organization> / <Project> / Settings / Agent pools / <Agent Pool> / Agents

명령을 실행하여 에이전트를 제거하지 않은 경우 에이전트 풀에서 수동으로 제거합니다.

그런 다음, 에이전트 폴더에서 이 명령을 실행하여 에이전트를 다시 구성해 봅니다.

.\config.cmd --unattended --agent '<agent-name>' --pool '<agent-pool-name>' --url '<azure-dev-ops-organization-url>' --auth 'PAT' --token '<token>' --runAsAutoLogon --windowsLogonAccount '<domain\user-name>' --windowsLogonPassword '<windows-password>'

에이전트 이름(특정 고유 이름)을 지정하고 다시 구성한 후 이 에이전트가 에이전트 풀에 표시되는지 확인합니다.

에이전트 보관 파일의 압축을 풀고( 여기서 다운로드할 수 있음) 압축을 풉니다. 이 명령은 압축을 풉니다.

Windows 레지스트리 키가 기록되고 올바르게 저장되었는지 확인합니다.

whoami /user 명령을 실행하여 를 가져옵니다<sid>. 를 Registry Editor 열고 경로를 따릅니다.

Computer\HKEY_USERS\<sid>\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

키가 있는지 확인합니다 VSTSAgent . 이 키가 있는 경우 삭제한 다음 에이전트 폴더에서 명령을 실행 .\config.cmd 하여(인수 없이) 에이전트를 닫 Registry Editor 고 구성합니다. 질문에 Enter Restart the machine at a later time?대답하기 전에 를 다시 열고 Registry Editor 키가 나타났는지 VSTSAgent 확인합니다. 키를 눌러 Enter 질문에 대답하고 컴퓨터를 다시 시작한 후에도 키가 그 자리에 남아 있는지 VSTSAgent 확인합니다.

컴퓨터에서 Windows 레지스트리 키가 제대로 작동하는지 확인합니다.

autorun.cmd 다음 줄을 echo "Hello from AutoRun!"포함하는 파일을 만듭니다. 키와 값이 있는 새 키-값 쌍 위의 경로에서 열고 Registry EditorAutoRun 만듭니다.

C:\windows\system32\cmd.exe /D /S /C start "AutoRun" "D:\path\to\autorun.cmd"

컴퓨터를 다시 시작합니다. 메시지와 함께 콘솔 창이 표시되지 않으면 Windows 레지스트리 키에 문제가 있습니다 Hello from AutoRun! .

배포 그룹만

  • --deploymentGroup - 에이전트를 배포 그룹 에이전트로 구성
  • --deploymentGroupName <name> - 에이전트가 조인할 배포 그룹을 지정하는 데 와 함께 --deploymentGroup 사용됨
  • --projectName <name> - 와 함께 --deploymentGroup 프로젝트 이름을 설정하는 데 사용됨
  • --addDeploymentGroupTags - 와 함께 --deploymentGroup 사용하여 배포 그룹 태그를 추가해야 함을 나타냅니다.
  • --deploymentGroupTags <tags> - 와 함께 --addDeploymentGroupTags 배포 그룹 에이전트에 대한 쉼표로 구분된 태그 목록을 지정하는 데 사용됩니다(예: "web, db").

환경만

  • --addvirtualmachineresourcetags - 환경 리소스 태그를 추가해야 함을 나타내는 데 사용됩니다.
  • --virtualmachineresourcetags <tags> - 환경 리소스 에이전트에 대한 쉼표로 구분된 태그 목록을 지정하는 데 사용됩니다 --addvirtualmachineresourcetags (예: "web, db").

.\config --help 항상 최신 필수 및 선택적 응답을 나열합니다.

진단

자체 호스팅 에이전트에 문제가 있는 경우 진단을 실행해 볼 수 있습니다. 에이전트를 구성한 후:

.\run --diagnostics

문제 해결에 도움이 될 수 있는 진단 도구 모음을 통해 실행됩니다. 진단 기능은 에이전트 버전 2.165.0부터 사용할 수 있습니다.

다른 옵션에 대한 도움말

다른 옵션에 대해 알아보려면 다음을 수행합니다.

.\config --help

이 도움말은 인증 대안 및 무인 구성에 대한 정보를 제공합니다.

기능

에이전트의 기능은 풀에서 카탈로그화되고 보급되므로 처리할 수 있는 빌드 및 릴리스만 할당됩니다. 에이전트 기능 빌드 및 릴리스를 참조하세요.

대부분의 경우 에이전트를 배포한 후에 소프트웨어 또는 유틸리티를 설치해야 합니다. 일반적으로 개발 머신에서 사용하는 소프트웨어와 도구는 에이전트에 설치해야 합니다.

예를 들어 빌드에 npm 작업이 포함된 경우 npm이 설치된 풀에 빌드 에이전트가 없는 한 빌드가 실행되지 않습니다.

중요

기능에는 모든 환경 변수와 에이전트가 실행되면 설정된 값이 포함됩니다. 에이전트가 실행되는 동안 이러한 값이 변경되면 에이전트를 다시 시작하여 새 값을 선택해야 합니다. 에이전트에 새 소프트웨어를 설치한 후에는 빌드를 실행할 수 있도록 새 기능이 풀에 표시되도록 에이전트를 다시 시작해야 합니다.

환경 변수를 기능으로 제외하려는 경우 무시할 쉼표로 구분된 변수 목록을 사용하여 환경 변수 VSO_AGENT_IGNORE 를 설정하여 지정할 수 있습니다.

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 에이전트가 업데이트될 때마다 로컬 파일을 사용합니다. 각 에이전트는 최신 버전의 에이전트가 필요한 작업을 실행할 때 자동으로 업데이트됩니다. 그러나 일부 에이전트를 수동으로 업데이트하려면 풀을 마우스 오른쪽 단추로 클릭한 다음 모든 에이전트 업데이트를 선택합니다.

방화벽을 실행하고 있으며 코드가 Azure Repos에 있습니다. 에이전트는 어떤 URL로 통신해야 하나요?

방화벽 뒤의 보안 네트워크에서 에이전트를 실행하는 경우 에이전트가 다음 URL 및 IP 주소와의 통신을 시작할 수 있는지 확인합니다.

도메인 URL Description
https://{organization_name}.pkgs.visualstudio.com 도메인을 사용하는 {organization_name}.visualstudio.com 조직을 위한 Azure DevOps 패키징 API
https://{organization_name}.visualstudio.com 도메인을 {organization_name}.visualstudio.com 사용하는 조직의 경우
https://{organization_name}.vsblob.visualstudio.com 도메인을 사용하는 {organization_name}.visualstudio.com 조직을 위한 Azure DevOps 원격 분석
https://{organization_name}.vsrm.visualstudio.com 도메인을 사용하는 {organization_name}.visualstudio.com 조직을 위한 Release Management 서비스
https://{organization_name}.vssps.visualstudio.com 도메인을 사용하는 {organization_name}.visualstudio.com 조직을 위한 Azure DevOps Platform Services
https://{organization_name}.vstmr.visualstudio.com 도메인을 사용하는 {organization_name}.visualstudio.com 조직을 위한 Azure DevOps 테스트 관리 서비스
https://*.blob.core.windows.net Azure Artifacts
https://*.dev.azure.com 도메인을 dev.azure.com 사용하는 조직의 경우
https://*.vsassets.io CDN을 통한 Azure Artifacts
https://*.vsblob.visualstudio.com 도메인을 사용하는 dev.azure.com 조직을 위한 Azure DevOps 원격 분석
https://*.vssps.visualstudio.com 도메인을 사용하는 dev.azure.com 조직을 위한 Azure DevOps Platform Services
https://*.vstmr.visualstudio.com 도메인을 사용하는 dev.azure.com 조직을 위한 Azure DevOps 테스트 관리 서비스
https://app.vssps.visualstudio.com 도메인을 {organization_name}.visualstudio.com 사용하는 조직의 경우
https://dev.azure.com 도메인을 dev.azure.com 사용하는 조직의 경우
https://login.microsoftonline.com Azure Active Directory 로그인
https://management.core.windows.net Azure Management API
https://vstsagentpackage.azureedge.net 에이전트 패키지

조직이 기존 방화벽 또는 IP 제한과 함께 작동하도록 하려면 및 *dev.azure.comdev.azure.com 열려 있는지 확인하고 허용 목록에 있는 IP를 업데이트하여 IP 버전에 따라 다음 IP 주소를 포함하도록 합니다. 현재 및 13.107.9.183 IP 주소를 허용 나열하는 13.107.6.183 경우 제거할 필요가 없으므로 그대로 둡니다.

IPv4 범위

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 범위

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

참고

허용되는 주소에 대한 자세한 내용은 허용된 주소 목록 및 네트워크 연결을 참조하세요.

자체 서명된 인증서를 사용하여 에이전트를 실행할 어떻게 할까요? 있나요?

자체 서명된 인증서를 사용하여 에이전트 실행

웹 프록시 뒤에서 에이전트를 실행할 어떻게 할까요? 있나요?

웹 프록시 뒤에서 에이전트 실행

에이전트를 다시 시작하는 어떻게 할까요?

에이전트를 대화형으로 실행하는 경우 대화형으로 실행의 다시 시작 지침을 참조하세요. 에이전트를 서비스로 실행하는 경우 서비스로 실행의 단계에 따라 에이전트 를 다시 시작합니다.

각 개별 에이전트에 대해 서로 다른 환경 변수를 설정할 어떻게 할까요? 있나요?

.env 에이전트의 루트 디렉터리 아래에 파일을 만들고 다음 형식으로 파일에 설정할 환경 변수를 배치합니다.

MyEnv0=MyEnvValue0
MyEnv1=MyEnvValue1
MyEnv2=MyEnvValue2
MyEnv3=MyEnvValue3
MyEnv4=MyEnvValue4

웹 프록시를 바이패스하고 Azure Pipelines에 연결하도록 에이전트를 구성할 어떻게 할까요? 있나요?

에이전트가 프록시를 우회하고 Azure Pipelines에 직접 연결하도록 하려면 에이전트가 다음 URL에 액세스할 수 있도록 웹 프록시를 구성해야 합니다.

도메인을 *.visualstudio.com 사용하는 조직의 경우:

https://login.microsoftonline.com
https://app.vssps.visualstudio.com 
https://{organization_name}.visualstudio.com
https://{organization_name}.vsrm.visualstudio.com
https://{organization_name}.vstmr.visualstudio.com
https://{organization_name}.pkgs.visualstudio.com
https://{organization_name}.vssps.visualstudio.com

도메인을 dev.azure.com 사용하는 조직의 경우:

https://dev.azure.com
https://*.dev.azure.com
https://login.microsoftonline.com
https://management.core.windows.net
https://vstsagentpackage.azureedge.net
https://vssps.dev.azure.com

조직이 기존 방화벽 또는 IP 제한과 함께 작동하도록 하려면 및 *dev.azure.comdev.azure.com 열려 있는지 확인하고 허용 목록에 있는 IP를 업데이트하여 IP 버전에 따라 다음 IP 주소를 포함하도록 합니다. 현재 및 13.107.9.183 IP 주소를 허용 나열하는 13.107.6.183 경우 제거할 필요가 없으므로 그대로 둡니다.

IPv4 범위

  • 13.107.6.0/24
  • 13.107.9.0/24
  • 13.107.42.0/24
  • 13.107.43.0/24

IPv6 범위

  • 2620:1ec:4::/48
  • 2620:1ec:a92::/48
  • 2620:1ec:21::/48
  • 2620:1ec:22::/48

참고

이 절차를 통해 에이전트는 웹 프록시를 바이패스할 수 있습니다. 빌드 파이프라인 및 스크립트는 빌드에서 실행하는 각 작업 및 도구에 대해 웹 프록시 무시를 처리해야 합니다.

예를 들어 NuGet 작업을 사용하는 경우 사용 중인 NuGet 피드를 호스트하는 서버의 URL 무시를 지원하도록 웹 프록시를 구성해야 합니다.

TFS를 사용하고 있으며 위의 섹션에 있는 URL이 작동하지 않습니다. 어디에서 도움을 받을 수 있나요?

웹 사이트 설정 및 보안

TFS 온-프레미스를 사용하고 있지만 일부 기능이 표시되지 않습니다. 이유는 무엇입니까?

일부 기능은 Azure Pipelines에서만 사용할 수 있으며 온-프레미스에서는 아직 사용할 수 없습니다. 최신 버전의 TFS로 업그레이드한 경우 일부 기능을 온-프레미스에서 사용할 수 있습니다.