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

使用 Microsoft365DSC 和 Azure DevOps 管理 Microsoft 365 租户配置

Azure DevOps
Azure Key Vault
Azure Windows 虚拟机
Microsoft 365

此处介绍的解决方案跟踪服务管理员所做的更改,并将审批过程添加到 Microsoft 365 租户的部署。 此解决方案可以帮助你防止对 Microsoft 365 租户进行未跟踪的更改。 还有助于防止多个 Microsoft 365 租户之间的配置出现偏移。

体系结构

显示自动更改 Microsoft 365 租户配置的体系结构的图片。

下载此体系结构的 Visio 文件

工作流

  1. 管理员 1 在 Microsoft 365 配置文件的管理员 1 分支中添加、更新或删除条目。
  2. 管理员 1 提交并同步对管理员 1 的分支存储库的更改。
  3. 管理员 1 创建拉取请求 (PR),以便合并对主存储库的更改。
  4. 生成管道在 PR 上运行。
  5. 管理员查看代码并合并 PR。
  6. 合并的 PR 触发管道来编译托管对象格式 (MOF) 文件。 管道调用 Azure 密钥保管库来检索 MOF 中使用的凭据。
  7. 多阶段管道中的 Azure PowerShell 任务使用已编译的 MOF 文件通过 Microsoft365DSC 部署配置更改。
  8. 管理员在暂存的 Microsoft 365 租户中验证更改。
  9. 管理员从生产 Microsoft 365 租户的 Azure DevOps 中的批准过程中获得通知。 管理员批准或拒绝更改。

组件

  • Azure Pipelines 实现了持续集成 (CI) 和持续交付 (CD),可以测试并生成代码,并将代码发送给任何目标。
  • Azure 密钥保管库提高了存储令牌、密码、证书、API 密钥和其他机密的安全性。 还能以严格受控的方式来访问这些机密。
  • Microsoft365DSC 通过 PowerShell DSC 为 Microsoft 365 租户的部署、配置和监控提供自动化。
  • Windows PowerShell DSC 是 PowerShell 中的管理平台。 通过此管理平台,可以使用配置即代码模型管理你的开发基础架构。

备选方法

下一步,你可以使用 Azure 自动化中的 DSC 将配置存储在中央位置,并添加符合所需状态的报告。

此体系结构使用密钥保管库存储 Azure 应用服务证书或用于向 Microsoft 365 租户进行身份验证的用户凭据。 密钥保管库提供可伸缩性。 作为替代方案,你可以使用管道变量来降低解决方案的复杂性。

方案详细信息

许多公司正在采用 DevOps 实践,并希望将这些实践应用于其 Microsoft 365 租户。 如果没有对 Microsoft 365 采用 DevOps,可能会遇到一些常见问题:

  • 配置错误
  • 跟踪配置更改时遇到的挑战
  • 租户修改没有审批过程

你可以使用本文中描述的解决方案,通过 Azure DevOpsMicrosoft365DSC 自动更改 Microsoft 365 租户配置。 Microsoft365DSC 是 PowerShell Desired State Configuration (DSC) 模块。 可以使用此模块以真正的 DevOps 风格配置和管理 Microsoft 365 租户:配置即代码。

可能的用例

此解决方案可以帮助你使用 DevOps 工具和实践以受控和自动化的方式管理 Microsoft 365 租户配置,包括:

  • 开发、测试、验收和生产环境。
  • 多个客户租户,如在托管服务提供商方案中。

注意事项

这些注意事项实施 Azure 架构良好的框架的支柱原则,即一套可用于改善工作负载质量的指导原则。 有关详细信息,请参阅 Microsoft Azure 架构良好的框架

大多数开始使用 PowerShell DSC 的人都发现,学会它需要一段时间。 如果你对 PowerShell 有深入的了解并具有创建脚本的经验,这将很有帮助。

操作

一些运营团队将 Azure DevOps 视为开发人员的工具。 但是这些团队可以从使用 Azure DevOps 中受益。 运营团队可以执行以下操作:

  • 将他们的脚本存储在存储库中并添加源代码控制和版本控制。
  • 自动部署脚本。
  • 使用板跟踪任务、项目等。

使用配置即代码模型不是一次性任务。 这既是你自己工作方式的转变,而且对于所有团队成员来说,也是种根本变化。 不再手动进行更改。 相反,一切都在脚本中实现并自动部署。 所有团队成员都需要具备做出这种改变的技能。

可伸缩性

处理多个环境、多个工作负载和/或多个团队时,可以使用此解决方案。 可以配置验证过程,以便专家需要批准每个工作负荷。 还可以扩展解决方案以部署到多个租户、开发/测试/验收/生产方案和/或多个组织。

为了进一步提高可伸缩性,可以使用 Datum 等聚合配置数据解决方案。

安全性

大多数 Microsoft365DSC 资源都支持通过用户名和密码进行身份验证。 但我们不推荐这种类型的身份验证,因为 Microsoft 最佳做法建议使用多重身份验证。 应用程序凭据是 Microsoft 365 资源支持的首选方法。 例如,SharePoint Online、Microsoft Entra ID 和其他资源支持应用程序凭据。

如果在 Azure DevOps 上构建 Microsoft365DSC 解决方案,还可以利用 Azure Pipelines 的安全性和审批过程来保护部署到生产租户。

DevOps

可以在 Azure DevOps Server 中运行此解决方案。 可以使用 GitHub Actions 在 GitHub 中创建类似的解决方案。

成本优化

成本优化是关于寻找减少不必要的费用和提高运营效率的方法。 有关详细信息,请参阅成本优化支柱概述

有关 Azure DevOps 定价信息,请参阅 Azure DevOps 定价。 如果将密钥保管库合并到解决方案中,可在此处找到定价信息

还可以使用 Azure 定价计算器来估算成本。

作者

本文由 Microsoft 维护。 最初由以下贡献者撰写。

主要作者:

后续步骤