簡體   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