微软正式宣布 Microsoft Desired State Configuration (DSC) v3.2.0 总体可用 (GA)。本文将根据官方信息,梳理各项主要变更,包括新的 Windows 资源、Bicep 集成、版本锁定以及表达式语言的扩展等。
本文是利用人工智能生成的技术说明与实现示例。虽然文中的代码与步骤基于第一手资料构建,但作者并未在实体机器上进行运行验证。根据环境与版本的不同,实际运行情况可能会有所差异。
目的
本文旨在梳理 Microsoft Desired State Configuration (DSC) v3.2.0 中的新功能与改进,并掌握官方信息中所示各功能的大致内容及使用要点。
前提与注意事项
本文是基于一手资料的解说,处于【实机验证前】的状态。
据说明,某些功能(例如 OptionalFeatureList 和 FeatureOnDemandList 等)需要使用 ZIP 软件包。
利用 gRPC 的 Bicep 集成等功能作为实验性功能(experimental)提供。
DSC v3.2.0 的主要新功能与组件
在 DSC v3.2.0 中,结合了实际应用、来自合作伙伴的反馈以及社区的贡献,进行了多方面的功能增强。
新的 Windows 资源
通过新增的内置 Windows 资源,扩大了无需额外安装即可进行管理的范围。一手资料中列出了以下资源:
Microsoft.Windows/Service: 管理 Windows 服务Microsoft.Windows/OptionalFeatureList: 管理 Windows 可选功能(需要 ZIP 软件包)Microsoft.Windows/FeatureOnDemandList: 管理 Windows 按需功能(需要 ZIP 软件包)Microsoft.Windows/FirewallRuleList: 管理 Windows 防火墙规则Microsoft.OpenSSH.SSHD/sshd_config: 管理整体 SSH 服务器配置Microsoft.OpenSSH.SSHD/Subsystem以及Microsoft.OpenSSH.SSHD/SubsystemList: 管理关于子系统条目的 SSH 服务器配置Microsoft.OpenSSH.SSHD/Windows:管理 Windows SSH 服务器设置,例如默认 Shell
flowchart TD
DSC[DSC v3.2.0 Core] --> WinRes[Windows Resources]
DSC --> Bicep[Bicep Integration via gRPC]
DSC --> Ext[Extensions: Import & Secret]
WinRes --> Service[Microsoft.Windows/Service]
WinRes --> Firewall[Microsoft.Windows/FirewallRuleList]
WinRes --> SSH[Microsoft.OpenSSH.SSHD/Windows]
Bicep --> Extension[dsc-bicep-ext]
Ext --> Import[File Import]
Ext --> Secret[Secret Retrieval]
Bicep 集成与 gRPC(实验性功能)
现已引入 gRPC 服务器,允许 Bicep 直接编排 DSC 资源,而无需通过 ARM。dsc-bicep-ext扩展现在包含在 MSIX 包中,并会公开到 PATH 中。
增强的 WhatIf 支持
dsc resource set命令中已添加 --what-if,以便在对单个资源应用更改之前进行预览。此外,通过在资源清单中声明 whatIfReturns,可以实现更详细的预览输出。
版本锁定(Version Pinning)
现已支持将配置文件锁定到特定 DSC 版本的功能,以及将配置中的资源实例锁定到指定版本的功能。version 利用指令或 requireVersion 字段。
表达式语言的改进
通过 ARM 语法支持使用 map() 或 filter() 的 Lambda 表达式,dataUri() 以及 dataUriToString() 函数,并在 copy 循环内使用 reference(),从而提高了配置文件的表达能力。
扩展和适配器的改进
作为新的扩展功能,新增了将任意文件转换为 DSC 配置文档的“导入”功能,以及在运行时检索机密的“机密”功能。此外,还添加了对 PowerShell 适配器的自适应资源清单支持,以及Write-*使用 cmdlet 的自动跟踪转换等功能。
确认方法
第一手资料介绍了在 Windows 环境下从 Microsoft Store 使用 winget 搜索和安装 DSC 的方法。
以下是整理了保存名称、运行前提条件以及预期确认内容的命令示例。
# 実行前提: Windows環境でのwinget利用 # 確認内容: DesiredStateConfigurationのパッケージIDとバージョンの確認 winget search DesiredStateConfiguration --source msstore
局限性
本文讨论的内容均基于官方博客的公开信息,未显示实际硬件环境中的运行结果或性能指标。
部分功能和扩展功能属于实验性(experimental)功能,未来版本可能会更改规范。
总结
在 DSC v3.2.0 中,添加了许多功能,包括 Windows 资源扩展、Bicep 集成、版本固定以及表达式语言的扩展。
在运行前需要注意的点包括要使用的包格式(Store 版还是 ZIP 版)以及实验性功能的启用状态。
有关详细规格和最新补丁信息的说明,请查看官方文档和代码仓库。
参考信息
来源标题: Announcing Microsoft Desired State Configuration v3.2.0
URL: https://devblogs.microsoft.com/powershell/announcing-dsc-v3-2-0/

