在 Azure DevOps Server 中管理项目集合

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

当 Azure DevOps Server 托管多个项目时,可以通过将它们组合在一起并向其分配相同的资源来更有效地管理这些项目。 例如,可以分组具有类似要求或目标的项目,例如访问特定代码库的所有项目。 然后,可以使用自己的用户组、服务器资源和维护计划将团队项目组作为自治资源进行管理。

一组项目称为 项目集合。 安装 Azure DevOps Server 时,会创建一个默认集合以包含所有项目。 创建集合时,可以指定该集合中项目可以使用的逻辑资源和物理资源。 这些项目使用的所有项目和数据都存储在集合的单一数据库中。

下图显示了项目集合的数据库如何与逻辑体系结构集成。 创建项目时,指定将存储其数据的集合。

示例:集合数据库的可能位置

查看信息或配置现有项目

  1. 如果尚未添加为 Azure DevOps Server 管理员, 请立即添加。

    必须是要打开控制台的服务器上的本地管理员组的成员,并且 Azure DevOps Server 或 Team Foundation Administrators 组的成员,或者 必须将“编辑服务器级信息” 权限设置为 “允许”。

  2. 登录到应用程序层服务器, 打开管理控制台,并打开 “团队项目集合 ”节点。

    管理控制台、团队项目集合节点、Azure DevOps Server 2022 的屏幕截图。

    管理控制台、团队项目集合节点、Azure DevOps Server 2019-2020 的屏幕截图。

  3. 突出显示集合的名称,并查看从各种选项卡提供的信息。 仅当配置了相应的应用程序时,才会显示某些选项卡。

    可以从相应的选项卡中执行以下任务。

    Tab 任务
    常规
    • 启动集合停止集合:启动或停止集合。 停止集合时,项目变得不可用。 通常停止集合以支持维护操作,例如移动或拆分集合。
    • 如果集合已启动,则仅 显示“停止集合 ”。 如果集合已停止,则仅 显示“开始集合 ”。 启动或停止集合可能需要几分钟才能完成。 可能需要选择“刷新以显示状态更改。
    • 编辑设置:编辑集合的说明或配置。
    • 组成员身份:添加或删除用户或组作为集合的成员。 若要了解详细信息,请参阅 设置项目集合的管理员权限。
    • 管理安全性:管理集合组的权限。 若要了解详细信息,请参阅 权限和组参考
    Status
    • 查看活动日志或重新运行作业。
    项目

配置报告

仅当已将报表服务器添加到 Azure DevOps 时,才会显示“报告”页。 选择此页面以执行以下任务:

  • 配置报表服务器以供集合使用。
  • 编辑默认文件夹位置时,如果键入服务器上不存在的文件夹的路径,并且您没有在该服务器上创建文件夹的权限,该操作将失败。 如果无权在该服务器上创建文件夹,则必须指定现有文件夹。
  • 若要删除报表子文件夹的默认位置,请选择“ 清除配置”。
  • 删除配置会删除集合中所有现有和将来项目的报表功能。

创建项目集合

在创建项目集合之前,请查看创建多个项目集合的优缺点是什么?

  1. 如果尚未添加为管理员, 请立即添加。

    你必须是要打开控制台的服务器上的本地管理员组的成员,并且 Team Foundation Administrators 组的成员或 编辑服务器级信息 权限必须设置为 “允许”。

  2. 在管理控制台中 ,打开“团队项目集合 ”页,然后选择“ 创建集合”。

    管理控制台、团队项目集合节点、创建集合、Azure DevOps Server 2022 的屏幕截图。

    Azure DevOps Server 管理控制台的屏幕截图,其中突出显示了“创建集合”选项。

  3. 按照“创建团队项目集合”向导提供的指南进行操作。

    对于名称,请指定不超过 64 个字符的唯一名称(越短越好),并且不要指定斜杠或命名限制中列出的其他特殊字符。

    “创建集合”对话框“Azure DevOps Server 2022”,其中选择了“继承”选项。

    “创建团队项目集合”对话框的屏幕截图,其中选择了“继承”选项。

  1. 如果要使用用户界面自定义工作跟踪,请选择 “继承 ”。 此选项依赖于分析服务来支持报告需求。

    如果要使用 XML 定义文件自定义工作跟踪,请选择 XML。

    注意

    对于本地 XML 进程模型,可以使用 witadmin 列出、导入、导出和修改项目的流程。 对于继承的进程模型,只能使用 witadmin 列出和导出进程信息。 有关流程模型和支持的概述,请参阅 “自定义工作跟踪体验”。

向导支持配置以下资源。 仅当托管集合的应用程序层服务器以前配置为支持相应应用程序时,才能配置某些资源。

数据层或 SQL Server 实例

  1. 指定 Azure DevOps 数据层服务器的名称。 如果要使用命名实例来承载此项目集合的数据库,则还必须指定实例的名称,如以下示例所示:

    ServerName \ InstanceName

  2. 如果要为集合创建数据库,请选择 “为此集合 创建新数据库”。 此选项要求 Visual Studio Team Foundation 后台作业代理使用的服务帐户有权在 SQL Server 实例上创建数据库。

    或者, 如果要使用已存在的数据库,请选择“使用此现有数据库 ”,并指定数据库的名称。 此选项要求命名 SQL Server 实例上存在空数据库,并且你具有写入权限。

SQL Server Reporting Services

  1. 如果已将应用程序层配置为使用 SQL Server Reporting Services,则会出现报表 ,否则将禁用它。 若要稍后对其进行配置,请参阅 “添加报表服务器”。

  2. 查看服务器和将承载报表的文件夹的信息,然后选择“ 下一步”。 此选项要求用户帐户有权在运行 Reporting Services 的服务器上创建文件夹。

    除非业务基础结构中的安全限制阻止在向导中自动创建文件夹,否则应使用默认选项创建文件夹。

  3. 如果必须在运行 Reporting Services 的服务器上使用管理员创建的文件夹,请展开 “高级配置”,选择“ 指定现有文件夹的路径”,并指定已为你创建的文件夹的相对路径。

    选择 “验证路径”,如果路径正确,请选择“ 下一步”。

验证过程

  1. 在“就绪情况检查”中,查看检查的状态。

    任何包含错误的配置旁边会显示蓝色下划线 错误 指示器。 可以选择有关问题的详细消息的指示器。 必须先解决所有错误,然后才能继续。

    完成所有就绪性检查后,选择“ 创建”。

  2. 创建项目集合的过程开始。

    “创建团队项目集合”对话框的屏幕截图,其中显示了创建过程已成功。

    向导完成后,选择“ 关闭”。

分离或删除项目集合

如果要执行维护操作(例如移动或拆分集合),请分离项目集合。 分离集合时,Teams 无法访问项目或源代码。

不再需要存储在集合中定义的项目中的数据时,将删除集合。 删除集合的三个步骤是(1)分离集合,并且(2)删除集合数据库。

分离集合

  1. 在管理控制台中,突出显示要删除的集合的名称,然后选择“ 分离集合”。

    选择“分离集合”(Azure DevOps Server 2022)的屏幕截图。

    选择“分离集合”(Azure DevOps Server 2019-2020)的屏幕截图。

  2. 按照分离团队项目集合向导提供的指南进行操作。

    (可选) 在“为项目集合 页提供服务消息”页的 “服务消息”中,为可能尝试连接到此集合中的项目的用户指定一条消息。

  3. 如果所有就绪情况检查都成功完成,请选择“ 分离”。

    在“ 监视项目集合分离进度 ”页上,完成所有进程后,选择“ 下一步”。

  4. (可选)在“ 查看此项目集合 ”页的补充信息中,记下日志文件的位置。

删除集合数据库

  1. 打开 SQL Server Management Studio,连接到托管集合数据库的 SQL Server 数据库引擎实例,然后展开该实例。

    突出显示集合数据库的名称(默认情况下,TFS_CollectionName),然后删除数据库。

    有关详细信息,请参阅 删除数据库

项目集合不再显示在管理控制台中的集合列表中。

问题解答

问:是否有用于管理集合的命令行工具?

答: 可以使用 TFSConfig 集合 命令附加、分离、删除或克隆项目集合。

问:创建多个项目集合有什么优点和缺点?

如果开发工作受益于分支和合并代码的功能,或者必须查询与同一代码相关的工作项的状态,则应将项目合并到同一项目集合中。

答:创建多个集合的优点

可以更好地将一个代码库或其他项目分组的操作需求与其他分组区分开来,这与另一个分组的操作需求相分离。 由于每个集合的数据存储在其自己的数据库中,因此可以独立于部署中的其他集合管理每个集合的许多方面。 例如,可以单独停止和启动每个集合。 因此,可以在不同的时间为每个集合计划维护操作。

将项目分组到多个集合中具有以下优势:

  • 在管理和分发数据库和资源方面具有更大的灵活性和可伸缩性。 一组相关项目共享报表、工作项和流程指南,以及基本代码。

    通过为每个集合创建数据库,团队和管理员可以执行以下任务:

    • 根据集合中项目的需求生成、分支、合并和循环访问自治代码库。 可以正式管理集合外部的代码依赖项。
    • 独立于其他集合备份和还原每个集合的数据。
    • 将所有集合数据库存储在 SQL Server 的单个实例上,或跨一个或多个实例分发数据库。
    • 分离集合、备份集合,然后将其还原到其他 Azure DevOps 部署。
    • 重新分配资源,以更好地满足项目的需求,因为它们随着时间推移而增加。
  • 提高了操作安全性。 由于每个集合都有自己的一组用户和权限,因此可以在不同的集合下隔离不同的代码库。 管理员可以仅将用户添加到包含与该特定代码库相关的项目或项目的集合。

  • 增加了支持自定义工作流流程的功能。 每个集合管理进程模板、工作项类型、链接类型、全局列表和工作项字段,这些字段与其他集合分开。 通过将具有不同工作流流程的项目分离到不同的集合中,你只会向集合中的这些项目公开这些自定义项。

答:创建多个集合的缺点

创建多个项目集合的主要缺点是增加 Azure DevOps 部署的复杂性。

  • 必须为每个集合备份和还原数据库,其他管理和维护任务也与拥有的集合数量成比例增加。 例如,必须单独管理每个项目集合的用户和权限集。
  • Teams 无法跨集合链接工作项。
  • Teams 无法跨集合对代码进行分支或合并。
  • Teams 无法跨集合创建查询。

问:在集合级别管理哪些资源?

答: 每个项目都属于集合。 若要了解如何管理集合,请参阅 开始管理组织或项目集合

问:为不同的团队集合存储的数据如何支持报告?

答: 单个关系数据仓库包含 Azure DevOps 部署的所有项目集合中定义的所有项目的可报告数据。 然后处理该仓库中的数据并将其写入 OLAP 多维数据集。 由于数据被收集到单个数据仓库中,因此可以跨多个项目集合进行报告。

若要创建或自定义报表,必须将 用户帐户添加到 TfsWarehouseDataReader 角色。 报表作者需要对关系数据仓库和 Analysis Services 多维数据集具有读取访问权限。 这些帐户可以查看 Azure DevOps 部署中所有项目集合中托管的所有团队项目的数据。 无法限制对项目或集合的访问。

问:如何实现使用集合缩放部署?

答: 请参阅 移动项目集合拆分项目集合