【问题标题】:How do I compile DSC to MOF if required module is not yet available [duplicate]如果所需模块尚不可用,我如何将 DSC 编译为 MOF [重复]
【发布时间】:2017-04-29 19:59:46
【问题描述】:

我需要在我的 DSC 配置中使用模块 xWebAdministration,但该模块尚未安装在系统中,并且安装在当前配置之前的配置中。示例如下。另外,我如何在 StackOverflow 上使用 markdown 和 powershell 代码,如下所示。我将它放入code 块中,但没有语法高亮显示。

Configuration BasicIIS
{
    Import-DscResource -ModuleName 'PSDesiredStateConfiguration' 
    node localhost {
              ... Script etc logic which installed xWebAdministration Module
     }
}
BasicIIS -OutputPath .\BasicIIS
Start-DscConfiguration -Wait -Verbose -Path .\BasicIIS -Force
Configuration SecondStep
{
    Import-DSCResource -moduleName "xWebAdministration"
    xWebSiteDefaults DefaultConfig {
        ApplyTo = "Machine"
        LogDirectory = "c:\inetpub\logs\LogFiles\host"
        TraceLogDirectory = "c:\inetpub\logs\LogFiles\host\FREB"
    }
SecondStep -OutputPath .\BasicIIS
Start-DscConfiguration -Wait -Verbose -Path .\BasicIIS -Force

【问题讨论】:

  • 你可以尝试部分配置
  • 您是否因为资源尚未安装而首先在编排机器上生成 MOF 或在目标处理它时遇到问题?
  • @MatthewWetmore 这在目标机器上运行时无法编译,抱怨 xWebAdministration 模块不可用
  • 我认为部分配置不能解决问题,但值得一试。在第一个配置完成后,您更有可能需要发布辅助配置(使用推送或拉取)。就个人而言,我会在启动/部署之前将资源直接离线放入映像中。

标签: powershell dsc


【解决方案1】:

除非您处于拉取方案(例如 Azure DSC)中,否则您将需要预加载模块要求。最简单的方法是在某处发布您的模块(NuGet 服务或文件共享)并在应用配置之前运行 PowerShellGet,或者如果需要真正离线,则将它们嵌入到映像中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多