Microsoft Desired State 配置概述

Microsoft的 Desired State Configuration (DSC) 是声明性配置平台。 使用 DSC 时,计算机的状态使用一种格式进行描述,即使读者不是主题专家,也应当清楚地理解这种格式。 与命令式工具不同,使用 DSC 时,应用程序环境的定义与强制执行该定义的编程逻辑是分开的。

DSC 命令行应用程序 ()dsc 以声明和幂等方式抽象化软件组件的管理。 DSC 可在 Linux、macOS 和 Windows 上运行,无需任何外部依赖项。

借助 DSC 可以:

  • 创作 DSC 资源以任何语言管理系统。
  • 直接调用单个资源。
  • 创建定义系统所需状态的配置文档。

配置文档

DSC 配置文档是定义资源实例的声明性数据文件。 通常,配置文档定义要强制实施的状态。 DSC 支持以 JSON 和 YAML 编写配置文档。

示例方案包括应用程序环境或作/安全标准的要求。

DSC 资源

DSC 资源定义如何管理特定系统或应用程序组件的状态。 资源描述组件的可管理设置的架构。 每个资源都可以与 获取测试作一起使用,以检索资源实例的当前状态并验证它是否处于所需状态。 大多数资源还支持使用 作强制实施所需状态。

某些示例情境包括:

  • 如何更新文件的内容。
  • 如何运行更改计算机状态的实用程序。
  • 如何配置应用程序的设置。

与 PowerShell DSC 的差异

DSC 在几个重要方面与 PowerShell Desired State Configuration (PSDSC) 不同:

  • DSC 不 依赖于 PowerShell、Windows PowerShell 或 PSDesiredStateConfiguration PowerShell 模块。 DSC 通过 Microsoft.DSC/PowerShellMicrosoft.Windows/WindowsPowerShelladapter 资源提供与 PSDSC 资源的完全兼容性。

    通过适配器 Microsoft.DSC/PowerShell 资源,您可以使用作为 PowerShell 类实现的任何 PSDSC 资源。 该资源处理在 PowerShell 中发现、验证和调用 PSDSC 资源。 该资源包含在每个平台的 DSC 安装包中。

    通过适配器 Microsoft.Windows/WindowsPowerShell 资源,您可以使用与 Windows PowerShell 兼容的任何 PSDSC 资源。 该资源处理在 Windows PowerShell 中发现、验证和调用 PSDSC 资源。 该资源仅包含在适用于 Windows 的 DSC 安装包中。

  • 由于 DSC 不依赖于 PowerShell,因此可以在未安装 PowerShell 的情况下使用 DSC 并管理以 bash、Python、C#、Rust 或任何其他语言编写的资源。

  • DSC 不包括本地配置管理器。 DSC 作为命令调用。 它不会作为服务运行。

  • 新的 DSC 资源使用 JSON 或 YAML 文件(而不是 MOF 文件)定义其架构。 自包含资源定义一个 资源清单 ,该清单指示 DSC 应如何调用资源以及资源可以管理哪些属性。 对于适应的资源(如在 PowerShell 中实现的资源),适配器资源会告知 DSC 资源的可用属性,并处理对适应资源的调用。

  • 配置文档在 JSON 或 YAML 文件中定义,而不是 PowerShell 脚本文件。 配置文档支持 ARM 模板中的功能子集,包括参数、变量、元数据和表达式函数,以动态解析配置中的数据。

安装

手动安装 DSC

要在任何平台上安装 DSC,请执行以下作:

  1. 从 PowerShell/DSC 存储库 下载最新版本。
  2. 展开发布存档。
  3. 将包含扩展存档内容的文件夹添加到 PATH

使用 WinGet 在 Windows 上安装 DSC

以下命令可用于使用从 Microsoft Store 发布的 winget 包安装 DSC:

搜索最新版本的 DSC:

winget search DesiredStateConfiguration --source msstore
Name                              Id           Version Source
---------------------------------------------------------------
DesiredStateConfiguration         9NVTPZWRC6KQ Unknown msstore
DesiredStateConfiguration-Preview 9PCX3HX4HZ0Z Unknown msstore

使用以下 id 参数安装 DSC:

# Install latest stable
winget install --id 9NVTPZWRC6KQ --source msstore
# Install latest preview
winget install --id 9PCX3HX4HZ0Z --source msstore

与 DSC 集成

DSC 是一种平台工具,它抽象了定义和调用资源的关注点。 更高级别的工具(如 WinGetMicrosoft Dev BoxAzure 计算机配置 )是 DSC 作为业务流程代理的早期合作伙伴。

DSC 使用 JSON 架构来定义 DSC 返回的资源、配置文档和输出的结构。 这些架构使 DSC 与其他工具的集成变得更加容易,因为它们标准化并记录了如何与 DSC 交互。

有关更多信息,请参阅 DSC JSON 架构参考概述

另请参阅