你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Microsoft Dev Box 的自定义设置

把开发人员引入新项目或新团队通常很复杂且耗时。 Microsoft Dev Box 自定义功能可帮助你简化开发人员环境的设置。 通过自定义,您可以配置带有必要应用程序、工具、存储库、代码库、软件包和构建脚本的现成代码工作站。

Dev Box 自定义可以让你:

  • 安装必要的工具和应用程序。
  • 强制实施组织安全策略。
  • 确保跨开发箱的一致性。

Dev Box 提供了两种使用自定义的方法:

  • 团队自定义:用于为开发人员团队创建标准共享配置,以取代为团队创建多个标准或黄金镜像。
  • 用户自定义:开发人员用于为其个人首选项创建配置。 借助用户自定义,开发人员可以将配置存储在文件中,并在创建开发框时运行它们。 自定义在所有开发环境中提供一致性。
功能 / 特点 团队自定义 用户自定义
配置启用 开发箱池 开发箱
自定义应用于 池中的所有开发箱 单个开发箱
易于共享 是的
自定义文件名 imagedefinition.yaml myfilename.yaml
源自 目录或个人存储库 上传或从个人存储库获取
支持密钥保管库机密 是的 是的

什么是自定义文件?

开发箱定制使用 YAML 格式的文件来指定在开发人员创建开发箱时从开发中心或目录中应用的任务列表。 这些任务可标识目录任务,并提供要安装的软件的名称等参数。 开发人员可以创建自己的自定义文件或使用共享自定义文件。

可以在自定义文件中使用 Azure 密钥保管库中的机密来克隆专用存储库。 您还可以将它们用于您创建的任何需要访问令牌的自定义任务。

什么是任务?

Dev Box 自定义任务是 PowerShell 脚本的封装器。 你可以使用它们来定义团队可在自定义设置中使用的可重用组件。 WinGet 和 PowerShell 任务可通过平台使用。 可以通过目录添加新项。 任务可以在登录后在系统上下文或用户上下文中运行。

  • 项目管理员定义团队自定义,可以使用自定义任务和内置任务。
  • 只有当用户是管理员,或者任务是通过目录预先批准的自定义任务时,用户自定义才能使用系统任务。 标准开发框用户无法在系统上下文中运行内置的 PowerShell 和 WinGet 任务,从而阻止特权升级。

创建任务时,确定需要在系统上下文中运行哪些任务,以及登录后可在用户上下文中运行哪些任务。

团队自定义和用户自定义之间的差异

Dev Box 团队的自定义功能允许开发团队负责人和 IT 管理员为开发环境池预配置自定义文件。 自定义无需开发人员完成手动设置。

建议使用团队自定义来保护和标准化团队的 Dev Box 部署。 在开发人员团队之间共享常见的 YAML 文件可能效率低下,导致错误,并违反合规性策略。

除了团队自定义项之外,各个开发人员还可以在创建开发框以控制开发环境时上传自定义文件。 开发人员应仅对个人设置和应用程序使用单独的自定义设置。

自定义功能如何运作?

团队自定义项和用户自定义都是基于 YAML 的文件,用于指定要在创建开发框时应用的任务列表。 选择相应的选项卡,详细了解每种自定义类型的工作原理。

团队自定义功能如何运作?

可以使用团队自定义为每个开发团队定义共享的 Dev Box 配置,而无需投资设置映像解决方案(如 Packer 或 Azure 虚拟机 (VM) 映像模板)。 团队自定义提供了一种轻量级的替代方法,让中央平台工程团队可以将 Dev Box 配置管理委派给使用它们的团队。

团队自定义项还提供了一种内置的方式来优化团队的 Dev Box 自定义项:将它们平展成自定义映像。 你可以使用相同的自定义文件,而无需管理添加的基础结构,也无需维护映像模板。

为组织配置 Dev Box 团队自定义需要仔细规划和明智的决策。 下图概述了这一过程,并突出显示了关键决策点。

显示 Dev Box 团队自定义工作流的示意图,其中包括规划、配置和部署自定义的步骤。

配置 Dev Box 以支持团队自定义设置

若要设置 Dev Box 以支持团队自定义,请执行以下步骤:

  1. 配置开发中心
    1. 启用项目级目录。
    2. 为项目管理员分配权限。
  2. 确定是否使用包含自定义可重用组件的目录:
    • 内置(由平台提供):
      1. 使用 PowerShell 或 WinGet 内置任务(以 ~/开头)。 建议从内置任务开始。
    • 你自己的目录:
      1. 在 Azure Repos 或 GitHub 上托管。
      2. 添加任务。
      3. 连接到开发者中心。
  3. 创建名为 imagedefinition.yaml 的 YAML 自定义文件。
  4. 在开发箱池中指定映像:
    1. 创建或修改开发箱池。
    2. 指定 imagedefinition.yaml 为映像定义。
  5. 选择如何使用映像定义:
    • 在每次创建开发箱时运行映像定义中的任务。
    • 将映像定义优化成自定义映像。
  6. 使用开发人员门户从配置的池创建开发箱。

若要了解有关团队自定义和编写映像定义的详细信息,请参阅 为 Dev Box 团队自定义编写映像定义文件。 然后,若要了解如何将映像定义优化成自定义映像,请参阅为 Dev Box 团队自定义项配置映像