繁体   English   中英

是否可以延迟评估Windows PowerShell所需状态配置中的功能?

[英]Is it possible to lazily evaluate features in Windows PowerShell Desired State Configuration?

在Windows PowerShell所需状态配置中,可以定义功能:

Node $MachineName { 
    # define the IIS Role 
    WindowsFeature IIS { 
        Name = “Web-Server” 
    }

    # define the SQL Role 
    WindowsFeature SQL { 
        Name = “SQL-Server” 
    }

    # require ASP.NET 4.5 
    WindowsFeature ASP { 
        Ensure = “Present” 
        Name = “Web-Asp-Net45” 
        DependsOn = "[WindowsFeature]IIS"
    }
}

使用此设置,不仅会安装ASP ,还会安装IISSQL功能。 我能理解的IIS功能,因为ASP依赖于此。 但是, SQL功能未定义为“存在”,并且另一个“存在”功能也不需要该SQL功能。

是否可以定义这些基本功能(作为一种存储库),但仅安装必需的功能?

是的,没有。

首先,我想指出DependsOn告诉DSC做什么事情的顺序 ,这是DSC所了解的。 它只是让您决定某些资源需要在一个或多个其他资源之后执行。

如果可以Ensure = 'Present'不使用Ensure = 'Present' ,则可能只是默认为'Present' 无法将没有执行的资源放入其中(没有其他代码)。

我不确定您所说的“存储库”是什么意思,除非您只是想让它出现在Configuration {}块中以备将来参考或使用。

我所说的“附加代码”是指您可以控制从该脚本生成配置时使用哪些资源。

退一步,您所拥有的代码块中有一个配置脚本 ,必须执行该配置脚本才能生成MOF文件,然后该文件将成为应用于节点的实际内容。

该脚本实际上是强大的工具,因此您可以应用有关此时应用的逻辑(生成MOF时)。 但是,这是在生成MOF的机器的上下文中发生的,而不是在目标节点上,因此您不能使用任何要求在配置应用程序时在目标上运行代码的逻辑。

DSC有一些内置的东西来推动这项工作,通过使用的-ConfigurationData参数和自动变量类似$AllNodes$Node

我想在这里放一些代码,而不仅仅是链接和说明,但是您确实需要全面了解这些部分在何时何地组合在一起。

我认为最重要的要点是:

  • 您编写的配置(如代码块中所示) 是Powershell代码 ,因此,您可以使用逻辑来确定将哪些资源应用于哪个节点。
  • 配置的执行通常在目标节点启动或配置之前不是目标节点的计算机上进行,因此请考虑执行的上下文。
  • 查看在Microsoft的示例中使用-ConfigurationData的方式。

看看这些:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM