如何创建自定义来宾配置包项目

在开始之前,最好先阅读来宾配置的概述页面。

审核/配置 Windows 和 Linux 时,来宾配置使用 Desired State Configuration (DSC)。 DSC 配置定义了计算机应处于的条件。

重要

审核环境状态的自定义包为正式发布版,但应用配置的包为预览版。 以下限制适用:

若要使用应用配置的来宾配置包,需要 Azure VM 来宾配置扩展版本 1.29.24 或更高版本。

若要在 Linux 上测试创建和应用配置,仅可以在 Ubuntu 18 上使用 GuestConfiguration 模块,但该模块生成的包和策略可用于 Azure 中支持的任何 Linux 发行版/版本。

无法在 MacOS 上测试包。

不要在自定义内容包中使用机密或保密信息。

请使用以下步骤来创建自己的配置,用于管理 Azure 或非 Azure 计算机的状态。

安装 PowerShell 7 和所需的 PowerShell 模块

首先,请确保已按照如何设置来宾配置创作环境页上的所有步骤,安装了操作系统所需的 PowerShell 版本、GuestConfiguration 模块,如果需要,还要安装 PSDesiredStateConfiguration 模块。

创作配置

创建配置包之前,请创作和编译 DSC 配置。 如果需要,可以使用针对 Windows 和 Linux 提供示例配置。

重要

编译 Windows 的配置时,请使用 PSDesiredStateConfiguration 的版本 2.0.5(稳定版本)。 在为 Linux 编译配置时,请安装预发布版本 3.0.0

Windows 版 DSC 的入门文档中提供了示例。

对于 Linux,需要使用 PowerShell 类来创建自定义 DSC 资源模块。 PowerShell 文档页使用 PowerShell 类编写自定义 DSC 资源中提供了自定义资源和配置的完整示例(并已使用来宾配置进行了测试)。

创建配置包项目

编译 MOF 后,支持文件必须打包在一起。 来宾配置使用已完成的包来创建 Azure Policy 定义。

New-GuestConfigurationPackage cmdlet 创建包。 配置所需的模块必须在开发环境的 $Env:PSModulePath 中提供,以便模块中的命令可以将它们添加到包中。

创建 Windows 内容时 New-GuestConfigurationPackage cmdlet 的参数:

  • 名称:来宾配置包名称。
  • 配置:已编译 DSC 配置文档完整路径。
  • 路径:输出文件夹路径。 此参数是可选的。 如果未指定,则在当前目录中创建包。
  • 类型:(Audit 或 AuditandSet)确定配置是应当只审核,还是应用配置并更改计算机的状态。 默认设置为“审核”。

此步骤不需要提升特权。 如果多次运行该命令,则可以使用 Force cmdlet 覆盖现有包。

以下命令创建包项目:

# Create a package that will only audit compliance
New-GuestConfigurationPackage `
  -Name 'MyConfig' `
  -Configuration './Config/MyConfig.mof' `
  -Type Audit `
  -Force
# Create a package that will audit and apply the configuration (Set)
New-GuestConfigurationPackage `
  -Name 'MyConfig' `
  -Configuration './Config/MyConfig.mof' `
  -Type AuditAndSet `
  -Force

将返回一个对象,其中包含已创建的包的名称和路径。

Name      Path                                                    
----      ----                                                    
MyConfig  /Users/.../MyConfig/MyConfig.zip

来宾配置项目的预期内容

来宾配置使用已完成的包来创建 Azure Policy 定义。 包中包含:

  • 作为 MOF 的已编译 DSC 配置
  • 模块文件夹
    • GuestConfiguration 模块
    • DscNativeResources 模块
    • MOF 所需的 DSC 资源模块
  • 一个元配置文件,存储包 typeversion

PowerShell cmdlet 可创建包 .zip 文件。 不需要根级别文件夹或版本文件夹。 包格式必须是 .zip 文件,未压缩时总大小不能超过 100 MB。

使用第三方工具扩展来宾配置

可以扩展来宾配置的项目包以包含第三方工具。 扩展来宾配置要求开发两个组件。

  • 处理与管理第三方工具相关的所有活动的 Desired State Configuration 资源
    • 安装
    • Invoke
    • 转换输出
  • 供工具以本机方式使用的格式正确的内容

如果社区解决方案尚不存在,则 DSC 资源需要自定义开发。 可以通过在 PowerShell 库中搜索标记 GuestConfiguration 来发现社区解决方案。

注意

来宾配置扩展性是“自带许可”方案。 使用之前,请确保已满足任何第三方工具的条款和条件。

在开发环境中安装 DSC 资源之后,使用 New-GuestConfigurationPackage 的 FilesToInclude 参数在内容项目中包含第三方平台的内容。

后续步骤