在 Team Foundation Server 中管理项目集合

Azure DevOps Server 2020 |Azure DevOps Server 2019 |TFS 2018

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

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

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

Example: possible location of collection databases

查看信息或配置现有项目

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

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

  2. 登录到应用程序层服务器,打开管理控制台,并打开 Team Project Collections 节点。

    View project collections

    View project collections

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

    可以从对应选项卡执行以下任务。

    选项卡 任务
    常规
    • 启动集合停止集合:启动或停止集合。 停止集合时,项目变得不可用。 通常可停止集合以支持维护操作,如移动或拆分集合。
    • 如果集合已启动,则仅显示 “停止集合 ”。 如果集合已停止,则仅显示 “启动集合”* 。 启动或停止集合可能需要几分钟才能完成。 可能需要选择 “刷新 ”以显示状态更改。
    • 编辑设置:编辑集合的说明或配置。
    • 组成员身份:添加或删除用户或组作为集合的成员。 若要了解详细信息,请参阅 设置项目集合的管理员权限
    • 管理安全性:管理集合组的权限。 若要了解详细信息,请参阅 权限和组参考
    Status 查看活动日志或重新运行作业。
    项目
    报表文件夹
    • 配置报表服务器以供集合使用。
    • 编辑默认文件夹位置时,如果键入的文件夹路径不存在于服务器上,并且你没有在该服务器上创建文件夹的权限,则此操作会失败。 如果您没有在该服务器上创建文件夹的权限,则必须指定现有文件夹。
    • 若要删除报表子文件夹的默认位置,请选择“ 清除配置”。
    • 删除配置会删除集合中所有现有和将来项目的报告功能。
    • 仅当已将报表服务器添加到Azure DevOps时,才会显示此选项卡。

创建项目集合

在创建项目集合之前,请跳转到本 部分,了解有关创建多个项目集合的优缺点的详细信息。

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

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

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

    Screenshot of the Azure DevOps Server Administration Console with the Create Collection option called out.

    Create a project collection

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

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

    Screenshot of the Create Team Project Collection dialog box with the Inheritance option called out.

    如果要使用用户界面自定义工作跟踪,请选择 “继承 ”。 请注意,此选项依赖于 Analytics Service 来支持报告需求。

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

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

数据层或 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. 创建项目集合的过程开始。

    Screenshot of the Create Team Project Collection dialog box showing that the creation process has Succeeded.

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

分离或删除项目集合

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

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

分离集合

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

    Detach project collections

    Detach a project collection

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

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

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

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

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

删除集合数据库

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

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

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

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

问题解答

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

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

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

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

答:创建多个集合的优点

可以更好地将针对一个基本代码或其他项目分组的运行需求与针对其他分组的运行需求分离开来。 由于每个集合的数据存储在其自己的数据库中,因此,您可以独立于部署中的其他集合来管理每个集合的诸多方面。 例如,您可以单独停止和启动每个集合。 因此,您可以将每个集合的维护操作安排在不同时间。

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

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

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

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

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

答:创建多个集合的缺点

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

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

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

答: 每个项目都属于集合。 此外,还会在集合级别管理以下对象:

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

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

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

问:如何使用集合扩展我的部署?

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