使用 DSC 來設定 Windows Server

已完成

Contoso 的其中一個其他伺服器管理員有 Windows PowerShell 使用經驗,並建議您研究如何使用 PowerShell DSC 來設定新部署的 Windows Server 電腦。 您了解使用 DSC,即可透過結合 PowerShell 指令碼和作業系統功能來實作宣告式設定管理。 您決定要進一步調查。

注意

宣告式程式設計語言會將意圖 (「您要執行的動作」) 與執行 (「您要怎麼做」) 區隔開來。

什麼是 DSC?

DSC 是以 PowerShell 為基礎的管理平台,可讓您用來管理伺服器和相關的 IT 基礎結構。 DSC 由三個元件所組成,如下表所述。

元件 描述
組態 可設定和定義資源的宣告式 PowerShell 指令碼。 執行設定時,DSC 會依照定義套用設定。 這可確保目標資源 (在此例中為伺服器) 處於定義的狀態。 這是套用和維護這些設定的本機設定管理員 (LCM)。
資源 包含可定義並套用資源預期設定狀態的程式碼。
LCM 是 DSC 用來套用設定的引擎。 LCM 會定期驗證系統的狀態,以及在必要時呼叫資源中的程式碼,以重新套用所需的狀態。

注意

您不需安裝任何程式即可使用 DSC;PowerShell DSC 包含在 Windows 中。

以 Windows 為基礎的 DSC 廣泛依賴 LCM 元件。 此元件可作為 Windows PowerShell DSC 指令碼的執行引擎。

注意

LCM 是所有目前支援 Windows 作業系統版本中不可或缺的一部分。

LCM 負責:

  • 協調 DSC 指令碼中所定義設定的實作
  • 監視這些設定的進行中狀態
  • 更新電腦狀態以符合所需狀態

每次 LCM 執行時,它都會完成下列步驟:

  1. 取得:擷取電腦的目前狀態。
  2. 測試:使用已編譯的 DSC 指令碼 (.mof 檔案),將節點的目前狀態與所需狀態進行比較。
  3. 設定:更新電腦的設定,以符合 .mof 檔案中所描述的預期狀態。

您可以使用推送模式或提取模式部署 DSC 設定,如下表所述。

[模式] 描述
推送 在此模式中,您會以手動方式將預期設定傳送或「推送」至一或多部受控電腦。 LCM 元件會確保每部受控電腦上的狀態都與您設定指定的狀態相符。
提取] 在此模式中,「提取伺服器」會保留您的設定資訊。 每部受控電腦上的 LCM 元件會定期輪詢提取伺服器 (預設為 15 分鐘的間隔),以取得最新的設定詳細資料。 提取伺服器接著會將任何有關設定變更的詳細資料傳回每部受控電腦。

提示

雖然您可以將 Windows Server 設定為提取伺服器,不過您也可以使用 Azure 自動化 Desired State Configuration。

在 Windows 進行 DSC 的需求

您的環境必須符合一些需求,才能在 Windows 使用 DSC。 這些包括:

  • 作業系統。 受控電腦必須執行 Windows 8.1 或更新版本,或是 Windows Server 2012 R2 或更新版本。
  • Windows 遠端管理。 必須在受控電腦上啟用 Windows 遠端管理 (WinRM)。

您可以使用 DSC 來定義所需狀態:

  • 作業系統
  • 應用程式

使用指令碼

您可以使用指令碼來定義 DSC。 建立並編譯您的設定之後,您可以將其指派給之後要接收該設定的節點。

建立指令碼

DSC 實作通常會先建立描述所需狀態的設定指令碼 (.ps1)。 下列範例是一個簡單的設定範例。 在此案例中,指令碼會檢查 Internet Information Service (IIS) 是否存在,並視需要進行安裝。

configuration IISInstall
{
    # Import the required module.
    Import-DscResource -ModuleName PsDesiredStateConfiguration
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure = "Present"
            Name = "Web-Server"
        }
    }
}

在您建立指令碼之後,請加以儲存。 在此情況下,請將它儲存為 IISInstall.ps1

編譯設定

建立設定指令碼之後,您必須進行編譯。 編譯會產生一或多個 .mof 檔案,其中包含適用於目標節點的設定。 若要編譯指令檔,請在 PowerShell 主控台中,找出您用來儲存設定 (指令碼檔案) 的資料夾並執行下列命令,以將設定編譯成 MOF 檔案:

.\IISInstall.ps1
IISInstall

套用設定

下一步是套用設定。 您可執行 Start-DscConfiguration Cmdlet 來執行此動作。

重要

若要允許 DSC 執行,您必須設定 Windows 進行 PowerShell 遠端處理,即使是在執行 localhost 設定時也一樣。

例如,在 PowerShell 主控台中,瀏覽至用於儲存設定的資料夾,然後執行下列 PowerShell 命令:

Start-DscConfiguration .\IISInstall

提示

您可藉由執行 Get-DscConfigurationStatus Cmdlet 來確認設定是否成功。