다음을 통해 공유


프로젝트 컬렉션 이동

Azure DevOps Server 2022 | Azure DevOps Server 2020 | Azure DevOps Server 2019

프로젝트 컬렉션을 Azure DevOps Server 배포에서 다른 배포로 이동할 수 있습니다. 예를 들면 다음과 같습니다.

  • organization 둘 이상의 Azure DevOps Server 배포했으며, 비즈니스 요구 사항에 맞게 컬렉션을 다른 배포로 이동하려고 합니다.
  • Azure DevOps Server 자체 배포가 있는 원격 사무실로 컬렉션을 이동하려고 합니다.
  • SQL Server 다른 instance 추가하여 Azure DevOps Server 배포를 확장하고 인스턴스 간에 기존 컬렉션을 배포하려고 합니다.
  • 이전 버전을 실행하는 Azure DevOps Server 배포에서 개별 프로젝트 컬렉션을 분리하여 배포를 증분 방식으로 업그레이드한 다음 현재 버전의 Azure DevOps Server 실행하는 서버로 이동해야 합니다. (이에 대한 일반적인 이유 중 하나는 일부 팀이 최신 버전의 Azure DevOps Server 마이그레이션해야 하는 반면 다른 팀은 도구 또는 프로젝트상의 이유로 이전 버전에 남아 있어야 하기 때문입니다.) 이 시나리오에서는 기능 구성 마법사를 사용하여 컬렉션 내의 각 프로젝트를 업그레이드해야 합니다. 자세한 내용은 Azure DevOps Server 업그레이드 후 기능 구성을 참조하세요. 기능 구성 마법사는 2019년 Azure DevOps Server 사용되지 않습니다. TFS 2018 및 이전 버전에서만 마법사를 실행할 수 있습니다. Azure DevOps Services 정의된 프로젝트는 각 서비스 업그레이드를 통해 자동으로 업데이트됩니다.

컬렉션을 이동하는 단계는 컬렉션을 호스팅한 배포와 컬렉션을 이동하는 배포의 특정한 구성에 따라 달라집니다. 예를 들어, 컬렉션을 새 도메인으로 이동할 경우 컬렉션 수준과 프로젝트 수준에서 해당 도메인의 사용자를 적절한 그룹에 추가해야 합니다.

전체 프로젝트 컬렉션을 이동하는 방법은 다음과 같습니다. 컬렉션의 일부를 이동하려면 프로젝트 컬렉션 분할을 참조하세요.

사전 요구 사항

이동을 시작하기 전에 이동이 시작되는 배포와 이동이 도착하는 배포 모두에서 사용하는 서버와 소프트웨어의 관리자인지 확인합니다. 관리자가 아닌 경우 관리자로 추가합니다.

1. 컬렉션 분리

컬렉션을 이동하기 전에 먼저 컬렉션이 실행 중인 Azure DevOps Server 배포에서 분리합니다. 이 단계를 건너뛰지 않는 것이 매우 중요합니다. 컬렉션을 분리하면 모든 작업 및 서비스가 중지되고 컬렉션 데이터베이스가 중지됩니다. 또한 분리 프로세스는 구성 데이터베이스에서 컬렉션별 데이터를 복사하여 프로젝트 컬렉션 데이터베이스의 일부로 저장합니다. 이 구성 데이터를 사용하면 컬렉션 데이터베이스를 다른 Azure DevOps Server 배포에 연결할 수 있습니다. 해당 데이터가 없으면 컬렉션이 시작된 Azure DevOps Server 배포에 연결할 수 없습니다.

참고

컬렉션을 분리하면 사용자는 해당 컬렉션의 모든 프로젝트에 액세스할 수 없습니다.

  1. 이동할 컬렉션을 호스트하는 서버에서 Azure DevOps에 대한 관리 콘솔을 열고 Project Collections에서 해당 컬렉션을 강조 표시합니다.

  2. 일반 탭에서 컬렉션 분리를 선택합니다.

    프로젝트 컬렉션 분리

    프로젝트 컬렉션 분리 마법사가 열립니다.

  3. (선택 사항) 프로젝트 컬렉션에 대한 서비스 메시지 제공 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 연결하려고 할 수 있는 사용자에게 메시지를 제공합니다.

  4. 다음을 선택합니다.

  5. 프로젝트 컬렉션 분리에 사용할 설정 검토 페이지에서 세부 정보를 검토합니다.

  6. 설정을 변경하려면 이전을 선택합니다. 올바른 것으로 표시되면 확인을 선택합니다.

  7. 모든 준비 검사가 성공적으로 완료되면 분리를 선택합니다.

  8. 프로젝트 컬렉션 분리 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

    마법사에 진행 상황이 표시됨

  9. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록합니다.

  10. 닫기를 선택합니다.

    프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 표시되지 않습니다.

    TFS 관리 콘솔에 분리된 컬렉션이 표시되지 않음

2. 컬렉션 데이터베이스 백업

컬렉션을 분리한 후 해당 데이터베이스를 백업하여 다른 서버로 이동합니다. 이 작업을 수행하려면 SQL Server 함께 제공되는 도구를 사용합니다.

선택한 FABRIKAM2014 Tfs_TestProjects > 작업 > 백업을 보여 주는 > 연결 창의 스크린샷

중요

데이터베이스를 같은 버전 또는 최신 버전의 SQL Server로만 복원할 수 있습니다. SQL Server 데이터베이스를 이전 버전의 제품
으로 복원할 수 없습니다. 원래 배포에서 Enterprise 또는 Datacenter 버전의 SQL Server 사용했으며 Standard Edition을 실행하는 서버로 데이터베이스를 복원하려는 경우 SQL Server 압축을 사용하지 않도록 설정된 백업 집합을 사용해야 합니다. 데이터 압축을 사용하지 않도록 설정하지 않으면 Enterprise 또는 Datacenter Edition 데이터베이스를 Standard Edition을 실행하는 서버로 복원할 수 없습니다. 압축을 해제하려면 Azure DevOps 데이터베이스에서 SQL Server 데이터 압축 사용 안 함의 단계를 수행합니다.

3. 컬렉션 데이터베이스 이동

컬렉션을 이동하는 과정의 일환으로 컬렉션을 이동하려는 Azure DevOps Server 배포를 지원하도록 구성된 SQL Server instance 컬렉션 데이터베이스를 복원, 복사 또는 이동해야 합니다. 데이터베이스를 이동하려는 방법을 선택할 수 있습니다.

데이터베이스 복사 마법사의 시작 페이지 스크린샷

데이터베이스를 SQL Server의 다른 인스턴스로 이동하는 것에 대한 자세한 내용은 다음을 참조하세요.

4. 컬렉션 연결

컬렉션 데이터베이스를 복원한 후 Azure DevOps Server 기본 배포에 컬렉션을 연결할 수 있습니다. 이동하려는 배포에서 보고를 사용하는 경우 프로세스의 일부로 연결하려는 컬렉션에 대해 보고 폴더와 기본 보고서가 빌드됩니다.

  1. 컬렉션을 이동하는 배포에 대한 애플리케이션 계층을 호스트하는 서버에서 Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 프로젝트 컬렉션을 선택한 다음 컬렉션 연결을 선택합니다.

    Azure DevOps Server 관리 콘솔, 팀 프로젝트 컬렉션

    프로젝트 컬렉션 연결 마법사가 열립니다.

  3. 연결할 프로젝트 컬렉션 데이터베이스 선택 페이지의 SQL Server 인스턴스에서 아직 나열되지 않은 경우 서버 이름과 컬렉션 데이터베이스를 호스트하는 instance 제공합니다.

    SQL Server 인스턴스가 올바른지 확인

  4. 데이터베이스 목록에서 연결할 컬렉션 데이터베이스를 선택한 다음, 다음을 선택합니다.

  5. 프로젝트 컬렉션 정보 입력 페이지에서 컬렉션 이름이 아직 없는 경우 이름에 컬렉션의 이름을 입력합니다.

  6. (선택 사항) 설명에서 컬렉션에 대한 설명을 제공합니다.

  7. 다음을 선택합니다.

  8. 프로젝트 컬렉션에 연결하는 데 사용할 설정 검토 페이지에서 정보를 검토합니다.

  9. 설정을 변경하려면 이전을 선택합니다. 모든 설정이 올바른 경우 확인을 선택합니다.

  10. 모든 준비 검사가 성공적으로 완료되면 연결을 선택합니다.

  11. 프로젝트 컬렉션 연결 진행률 모니터링 페이지에서 모든 프로세스가 완료되면 다음을 선택합니다.

  12. (선택 사항) 이 프로젝트 컬렉션에 대한 추가 정보 검토 페이지에서 로그 파일의 위치를 선택하거나 기록합니다.

  13. 닫기를 선택합니다.

    프로젝트 컬렉션은 관리 콘솔의 컬렉션 목록에 표시됩니다.

    구성이 완전하지 않은 경우에 컬렉션 중지

5. 이동된 프로젝트 컬렉션 구성

동일한 도메인에서 컬렉션을 이동했으며 이전에 컬렉션을 지원했던 동일한 웹 애플리케이션을 사용하려는 경우 이 절차를 건너뛸 수 있으며, 해당 컬렉션의 관리자가 이 Azure DevOps Server 배포에 액세스할 수 있도록 허용하려는 경우 이 절차를 건너뛸 수 있습니다.

컬렉션을 이동한 후 해당 컬렉션에 대한 웹 애플리케이션 및 권한 그룹을 적절한 설정으로 업데이트합니다.

이동된 컬렉션 구성

  • 프로젝트 컬렉션에 대한 각 탭을 열고 필요한 경우 현재 Azure DevOps Server 리소스의 위치와 일치하도록 서비스와 위치를 반영하도록 설정을 수정합니다. 이는 리소스 보고에 특히 중요합니다. 오류가 표시되면 계정에 프로젝트 컬렉션 관리자에게 필요한 권한이 있고 필요에 따라 다른 프로젝트 컬렉션 관리자가 추가되었는지 확인합니다.

    이 작업에 대한 자세한 내용은 프로젝트 컬렉션 수정 및 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조하세요.

6. 프로젝트 구성

동일한 도메인에서 컬렉션을 이동했으며 해당 컬렉션의 프로젝트 사용자에 대한 액세스를 이 Azure DevOps Server 배포로 허용하려는 경우 이 절차를 건너뛸 수 있습니다.

이동한 컬렉션에 대한 관리자를 구성한 후에 귀하 또는 해당 관리자는 해당 컬렉션의 프로젝트에 사용자 및 그룹을 추가해야 합니다. 배포에 따라 Reporting Services 해당 사용자에 대한 권한을 구성해야 할 수도 있습니다.

프로젝트에 사용자 추가

이동된 프로젝트에 리소스 추가

Q & A

Q: 내 Azure DevOps Server 배포에서 보고를 사용합니다. 컬렉션 이동과 함께 보고서를 어떻게 이동합니까?

A: 먼저 원래 배포에서 컬렉션을 지원한 보고서 서버에서 이동하려는 보고서를 저장하거나 내보내야 합니다. 그런 다음 이동한 컬렉션을 지원할 보고서 서버에 각 보고서를 수동으로 업로드해야 합니다. 이것은 시간이 오래 걸리는 프로세스가 될 수 있습니다. 모든 보고서를 업로드할 것인지 여부 또는 보고서의 하위 집합이 비즈니스 요구 사항을 충족하는지 여부를 고려하세요. 모든 보고서 또는 특정 보고서를 업로드할 필요는 없지만 이동 프로세스가 완료된 후에는 업로드하는 보고서만 사용 가능합니다.

또한 컬렉션을 이동한 후 원래 배포에서 웨어하우스 및 분석 서비스 큐브를 다시 빌드해야 하므로 원래 배포는 더 이상 없는 컬렉션에 대한 보고서를 계속 빌드하지 않습니다.

보고서 이동

  1. 원래 배포의 컬렉션을 지원한 보고서 서버에서 이동하려는 보고서를 내보내거나 저장합니다. 자세한 내용은 보고서 내보내기보고서 저장을 참조하세요.

  2. 보고서 관리자에서 새 환경의 컬렉션을 지원하는 보고서 서버의 적절한 폴더에 이동하려는 각 보고서를 업로드합니다.

    자세한 내용은 폴더에 파일 업로드를 참조하세요.

  3. 보고서 관리자에서 각 보고서를 편집하여 데이터 소스를 새 보고서 서버로 변경합니다.

데이터 웨어하우스 및 Analysis Services 다시 빌드

  1. Azure DevOps에 대한 관리 콘솔을 엽니다.

  2. 탐색 모음에서 보고를 선택합니다.

  3. 보고에서 다시 빌드 시작을 선택합니다.

  4. 웨어하우스 및 Analysis Services 데이터베이스 다시 빌드 대화 상자에서 확인을 선택합니다.

    참고

    다시 빌드 시작 작업이 완료된 후에 웨어하우스는 다시 빌드를 완료하고 데이터는 다시 채우기를 완료합니다. 배포 크기 및 데이터 양에 따라 전체 프로세스를 완료하는 데 몇 시간이 걸릴 수 있습니다.

Q: 배포 풀 및/또는 배포 그룹을 포함하는 팀 프로젝트 컬렉션을 이동할 어떻게 할까요? 있나요?

A: 컬렉션을 다른 배포로 이동하면 분리된 컬렉션에 배포 그룹이 있는 원본의 각 배포 풀에 대해 새 배포 풀이 대상 instance 자동으로 프로비전됩니다. Azure DevOps Server 2019 이상인 경우 자동으로 프로비전된 배포 풀의 이름은 원본 instance. 이전 버전에서는 배포 풀 이름이 형식 <project name-deployment-group name>입니다. 충돌하는 경우 배포 풀 이름에 임의의 GUID가 추가됩니다.

이동이 완료되면 다음을 수행합니다.

  • 여러 배포 풀이 생성될 가능성이 있습니다. TfsConfig 명령을 사용하여 중복 풀을 병합할 수 있습니다. 예를 들어 TfsConfig.exe deploymentpool /migrateDeploymentGroups /fromPool:<Source Pool Name> /toPool:<Target Pool Name>
  • 에이전트를 새 배포 풀로 다시 구성해야 합니다. 참조에 대한 샘플 배포 에이전트 재구성 스크립트 는 다음과 같습니다.

컬렉션을 이동하기 전에 랩 관리 리소스 삭제

  • 지정된 프로젝트 컬렉션에서 모든 그룹 호스트, 라이브러리 공유 및 환경을 제거하는 방법에 대한 자세한 내용은 /External 옵션을 사용하여 TFSConfig Lab /Delete 명령을 참조하세요.

컬렉션을 이동한 후 랩 관리 리소스 구성

  1. Azure DevOps에 대한 애플리케이션 계층을 구성합니다.

    자세한 내용은 SCVMM 환경에 대한 랩 관리 구성을 참조하세요.

  2. 새 SCVMM에서 골든 master 가상 머신 및 템플릿을 다시 만들고 가상 머신 및 템플릿을 프로젝트 컬렉션으로 가져옵니다.

    자세한 내용은 랩 관리에 사용할 가상 머신 및 템플릿 만들기 및 저장을 참조하세요.

  3. 각 프로젝트에 대한 환경을 다시 만듭니다.

    자세한 내용은 저장된 가상 머신 및 템플릿을 사용하여 SCVMM 환경 만들기를 참조하세요.

Q: 프로젝트에서 함수를 선택하도록 액세스를 제한할 어떻게 할까요? 있나요?

A: 컬렉션 내의 한 프로젝트에 액세스할 수 있는 권한이 있는 사용자는 작업 항목을 수정하거나 해당 프로젝트에서 다른 작업을 수행할 수 있는 권한이 없더라도 해당 컬렉션 내의 다른 프로젝트를 볼 수 있습니다. 선택 아티팩트 만들기 또는 수정을 위한 선택 기능 및 함수에 대한 액세스 권한을 부여하거나 제한 할 수 있으며, 특히 그룹을 만들고 해당 그룹에 대한 제한을 구성하여 프로젝트를 볼 수 없도록 제한할 수 있습니다.