管理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 组的成员,或者必须将“编辑 Server-Level 信息”权限设置为“允许”。

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

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

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

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

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

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

配置报表

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

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

创建项目集合

在创建项目集合之前,请查看 创建多个项目集合的优缺点是什么? ,如本文稍后所述。

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

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

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

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

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

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

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

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

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

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

    如果要使用 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 Collection 命令来附加、分离、删除或克隆项目集合。

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

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

答:创建多个集合的优点

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

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

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

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

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

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

答:创建多个集合的缺点

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

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

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

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

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

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

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

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

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