다음을 통해 공유


온-프레미스 Bitbucket 리포지토리 빌드

Azure DevOps Services

참고 항목

Azure Pipelines와 Bitbucket Cloud를 통합하려면 Bitbucket Cloud를 참조하세요.

온-프레미스 Bitbucket 서버 또는 다른 Git 서버를 Azure Pipelines와 통합할 수 있습니다. 온-프레미스 서버가 인터넷에 노출되거나 노출되지 않을 수 있습니다.

Azure Pipelines 서비스를 실행하는 서버에서 온-프레미스 서버에 연결할 수 있는 경우 다음을 수행합니다.

  • 클래식 빌드를 설정하고 CI 트리거를 구성할 수 있습니다.

Azure Pipelines 서비스를 실행하는 서버에서 온-프레미스 서버에 연결할 수 없는 경우 다음을 수행합니다.

  • 클래식 빌드 파이프라인을 설정하고 수동 빌드를 시작할 수 있습니다.
  • CI 트리거를 구성할 수 없음

참고 항목

YAML 파이프라인은 온-프레미스 Bitbucket 리포지토리에서 작동하지 않습니다.

참고 항목

PR 트리거는 온-프레미스 Bitbucket 리포지토리에서 사용할 수 없습니다.

호스트된 에이전트에서 온-프레미스 서버에 연결할 수 있는 경우 호스트된 에이전트를 사용하여 수동, 예약 또는 CI 빌드를 실행할 수 있습니다. 그렇지 않으면 온-프레미스 서버에 액세스하고 코드를 가져올 수 있는 자체 호스팅 에이전트를 설정해야 합니다.

Azure Pipelines에서 연결할 수 있습니다.

Azure Pipelines 서비스에서 온-프레미스 Bitbucket 서버에 연결할 수 있는 경우 다른 Git 서비스 연결을 만들고 이를 사용하여 파이프라인을 만듭니다. Azure Pipelines에서 이 Git 서버에 액세스하는 옵션을 선택합니다.

CI 트리거는 웹후크가 아닌 폴링을 통해 작동합니다. 즉, 코드에 대한 업데이트가 있는 경우 Azure Pipelines는 Bitbucket 서버를 주기적으로 검사. 있는 경우 Azure Pipelines는 새 실행을 시작합니다.

Azure Pipelines에서 연결할 수 없음

Azure Pipelines에서 Bitbucket 서버에 연결할 수 없는 경우 다음 두 가지 옵션이 있습니다.

  • IT 부서와 협력하여 Azure Pipelines와 온-프레미스 Git 서버 간에 네트워크 경로를 엽니다. 예를 들어 Azure Pipelines의 트래픽이 통과할 수 있도록 방화벽 규칙에 예외를 추가할 수 있습니다. 허용해야 하는 IP 주소를 보려면 Azure DevOps IP의 섹션을 참조하세요. 또한 Azure Pipelines가 서버의 FQDN을 IP 주소로 확인할 수 있도록 Bitbucket 서버에 대한 공용 DNS 항목이 있어야 합니다.

  • 다른 Git 연결을 사용할 수 있지만 Azure Pipelines에서 이 Git 서버에 액세스하지 않도록 Azure Pipelines에 지시할 수 있습니다. CI 및 PR 트리거는 다른 Git 리포지토리에서 사용할 수 없습니다. 수동 또는 예약된 파이프라인 실행만 시작할 수 있습니다.

Microsoft 호스팅 에이전트에서 연결할 수 있습니다.

Microsoft 호스팅 에이전트 또는 자체 호스팅 에이전트를 사용하여 파이프라인을 실행할지 여부를 결정해야 할 수도 있습니다. 이 선택은 종종 Microsoft 호스팅 에이전트가 서버에 연결할 수 있는지 여부에 따라 달라집니다. 검사 수 있는지 여부를 확인하려면 Microsoft 호스팅 에이전트를 사용하는 파이프라인을 만들고 서버에서 소스 코드를 검사 단계를 추가해야 합니다. 이 경우 Microsoft 호스팅 에이전트를 계속 사용할 수 있습니다.

Microsoft 호스팅 에이전트에서 연결할 수 없음

위의 섹션에서 멘션 간단한 테스트 파이프라인이 오류TF401019: The Git repository with name or identifier <your repo name> does not exist or you do not have permissions for the operation you are attempting와 함께 실패하면 Microsoft 호스팅 에이전트에서 Bitbucket 서버에 연결할 수 없습니다. 이는 이러한 서버의 트래픽을 차단하는 방화벽으로 인해 다시 발생할 수 있습니다. 이 경우 두 가지 옵션이 있습니다.

  • IT 부서와 협력하여 Microsoft 호스팅 에이전트와 Bitbucket 서버 간에 네트워크 경로를 엽니다. Microsoft 호스팅 에이전트의 네트워킹 섹션을 참조하세요.

  • 자체 호스팅 에이전트 또는 확장 집합 에이전트 사용으로 전환합니다. 이러한 에이전트는 네트워크 내에서 설정할 수 있으므로 Bitbucket 서버에 액세스할 수 있습니다. 이러한 에이전트는 Azure Pipelines에 대한 아웃바운드 연결만 필요합니다. 인바운드 연결에 대한 방화벽을 열 필요가 없습니다. 서비스 연결을 만들 때 지정한 서버의 이름을 자체 호스팅 에이전트에서 확인할 수 있는지 확인합니다.

Azure DevOps IP 주소

다른 Git 연결을 사용하여 클래식 파이프라인을 설정하고, Azure Pipelines 서비스와 Bitbucket 서버 간의 통신을 사용하지 않도록 설정하고, 자체 호스팅 에이전트를 사용하여 코드를 빌드하는 경우 성능이 저하된 환경을 얻을 수 있습니다.

  • 파이프라인을 만드는 동안 리포지토리의 이름을 수동으로 입력해야 합니다.
  • Azure Pipelines에서 코드 변경 내용을 폴링할 수 없으므로 CI 트리거를 사용할 수 없습니다.
  • 변경 내용이 있는 경우에만 빌드 옵션과 함께 예약된 트리거를 사용할 수 없습니다.
  • 사용자 인터페이스에서 최신 커밋에 대한 정보를 볼 수 없습니다.

이 환경을 향상하려면 Azure Pipelines에서 Bitbucket Server로의 통신을 사용하도록 설정하는 것이 중요합니다.

Azure DevOps의 트래픽이 Bitbucket Server에 도달할 수 있도록 하려면 인바운드 연결지정된 IP 주소 또는 서비스 태그를 방화벽의 허용 목록에 추가합니다. ExpressRoute를 사용하는 경우 방화벽의 허용 목록에 ExpressRoute IP 범위도 포함해야 합니다.

Azure Pipelines가 다른 Git 서비스 연결에서 Git 서버에 액세스하도록 허용합니다.

정보 실행

정보 실행은 Azure DevOps가 YAML 파이프라인의 소스 코드를 검색하지 못했음을 알려줍니다. 소스 코드 검색은 외부 이벤트(예: 푸시된 커밋)에 대한 응답으로 발생합니다. 예를 들어 코드 변경 내용이 있는 경우 검사 예약된 실행을 시작하는 등 내부 트리거에 대한 응답으로도 발생합니다. 소스 코드 검색은 여러 가지 이유로 실패할 수 있으며, git 리포지토리 공급자가 자주 요청을 제한합니다. 정보 실행이 있다고 해서 반드시 Azure DevOps가 파이프라인을 실행한다는 의미는 아닙니다.

정보 실행은 다음 스크린샷과 같습니다.

Screenshot of an informational pipeline run.

다음 특성으로 정보 실행을 인식할 수 있습니다.

  • 상태가 Canceled
  • 기간은 < 1s
  • 실행 이름에는 다음 텍스트 중 하나가 포함됩니다.
    • Could not retrieve file content for {file_path} from repository {repo_name} hosted on {host} using commit {commit_sha}.
    • Could not retrieve content for object {commit_sha} from repository {repo_name} hosted on {host}.
    • Could not retrieve the tree object {tree_sha} from the repository {repo_name} hosted on {host}.
    • Could not find {file_path} from repository {repo_name} hosted on {host} using version {commit_sha}. One of the directories in the path contains too many files or subdirectories.
  • 실행 이름에는 일반적으로 YAML 파이프라인 로드가 실패하게 한 BitBucket/GitHub 오류가 포함됩니다.
  • 단계 없음 / 작업 / 단계

정보 실행에 대해 자세히 알아봅니다.

제한 사항

Azure Pipelines는 리포지토리에서 Azure Devops 포털의 드롭다운 목록으로 최대 2,000개의 분기를 로드합니다( 예 : 수동 및 예약된 빌드 설정을 위한 기본 분기로 또는 파이프라인을 수동으로 실행할 때 분기를 선택할 때). 목록에 원하는 분기가 표시되지 않으면 원하는 분기 이름을 수동으로 입력합니다.

FAQ

Bitbucket Server 통합과 관련된 문제는 다음 범주로 나타낸다.

  • 실패 트리거: 리포지토리에 업데이트를 푸시할 때 파이프라인이 트리거되지 않습니다.
  • 실패 검사out: 내 파이프라인이 트리거되고 있지만 검사단계에서 실패합니다.

실패한 트리거

서버에 변경 사항을 푸시했지만 파이프라인이 트리거되지 않습니다.

다음 각 단계에 따라 실패한 트리거 문제를 해결합니다.

  • Azure Pipelines에서 Bitbucket 서버에 액세스할 수 있나요? Azure Pipelines는 변경 내용을 위해 Bitbucket 서버를 주기적으로 폴링합니다. Bitbucket 서버가 방화벽 뒤에 있는 경우 이 트래픽이 서버에 도달하지 않을 수 있습니다. 자세한 내용은 Azure DevOps IP 주소를 참조하고 필요한 모든 IP 주소에 예외를 부여했는지 확인합니다. 이러한 IP 주소는 원래 예외 규칙을 설정했으므로 변경되었을 수 있습니다. 외부 Git 연결을 사용하고 Azure Pipelines에서 서버에 액세스할 수 없는 경우에만 수동 실행을 시작할 수 있습니다.

  • 파이프라인이 일시 중지되거나 비활성화되어 있나요? 파이프라인에 대한 편집기를 연 다음 설정 선택하여 검사. 파이프라인이 일시 중지되거나 비활성화된 경우 트리거가 작동하지 않습니다.

  • 변경 내용을 푸시한 분기 또는 경로를 제외했나요? 포함된 분기의 포함된 경로로 변경한 항목을 푸시하여 테스트합니다. 트리거의 경로는 대/소문자를 구분합니다. 트리거에서 경로를 지정할 때 실제 폴더의 사례와 동일한 경우를 사용해야 합니다.

내 코드에 업데이트를 푸시하지 않았지만 파이프라인이 여전히 트리거되고 있습니다.

  • Bitbucket에 대한 연속 통합 트리거는 폴링을 통해 작동합니다. 각 폴링 간격 후에 Azure Pipelines는 코드에 대한 업데이트가 있는 경우 검사 위해 Bitbucket 서버에 연결하려고 시도합니다. Azure Pipelines가 Bitbucket 서버에 연결할 수 없는 경우(네트워크 문제로 인해) 코드 변경이 있을 수 있다고 가정하고 새 실행을 시작합니다. Azure Pipelines에서 YAML 파이프라인의 코드를 검색할 수 없는 경우 정보 실행을 만듭니다.

실패 검사out

새 실행을 수동으로 시작하려고 하면 시작하기까지 4~8분이 지연됩니다.

  • Azure Pipelines에서 Bitbucket 서버에 연결할 수 없습니다. Bitbucket 서비스 연결의 Azure Pipelines에서 이 Git 서버에 액세스하는 옵션을 선택하지 않았는지 확인합니다 . 이 옵션을 선택하면 Azure Pipelines가 서버에 연결하려고 시도하고 서버에 연결할 수 없으므로 결국 시간이 초과되고 실행이 시작됩니다. 해당 옵션을 검사 해제하면 수동 실행 속도가 빨라지게 됩니다.

서버를 확인할 수 없다는 오류와 함께 검사out 단계가 실패합니다.

Microsoft 호스팅 에이전트를 사용합니까? 이 경우 이러한 에이전트가 Bitbucket 서버에 도달하지 못할 수 있습니다. 자세한 내용은 Microsoft 호스팅 에이전트에서 연결할 수 없음을 참조 하세요 .