共用方式為


快速入門 - 使用 Desired State Configuration (DSC) 來建立網站

適用於:Windows PowerShell 4.0、Windows PowerShell 5.0

這個練習會從頭開始完整地逐步建立並套用預期狀態設定 (DSC)。 我們將使用的範例會確保伺服器已啟用 Web-Server (IIS) 功能,且在該伺服器的 inetpub\wwwroot 目錄中有簡單 "Hello World" 網站的內容。

如需 DSC 及其運作方式的概觀,請參閱適合決策者的預期狀態設定概觀

規格需求

若要執行此範例,您將需要執行 Windows Server 2012 或更新版本的電腦,以及 PowerShell 4.0 或更新版本。

撰寫並放置 index.htm 檔案

首先,我們會建立 HTML 檔案,將它用來做為網站內容。

在您的根資料夾中,建立名為 test 的資料夾。

在文字編輯器中,輸入下列文字:

<head></head>
<body>
<p>Hello World!</p>
</body>

將此內容在您稍早建立的 test 資料夾中另存為 index.htm

撰寫設定

DSC 設定是特殊的 PowerShell 函式,可定義您想要設定一或多部目標電腦 (節點) 的方式。

在 PowerShell ISE 中,輸入下列命令:

Configuration WebsiteTest {

    # Import the module that contains the resources we're using.
    Import-DscResource -ModuleName PsDesiredStateConfiguration

    # The Node statement specifies which targets this configuration will be applied to.
    Node 'localhost' {

        # The first resource block ensures that the Web-Server (IIS) feature is enabled.
        WindowsFeature WebServer {
            Ensure = "Present"
            Name   = "Web-Server"
        }

        # The second resource block ensures that the website content copied to the website root folder.
        File WebsiteContent {
            Ensure = 'Present'
            SourcePath = 'c:\test\index.htm'
            DestinationPath = 'c:\inetpub\wwwroot'
        }
    }
}

將檔案儲存為 WebsiteTest.ps1

您可以看到它看起來像是 PowerShell 函式,並在函式名稱前使用額外的關鍵字 Configuration

Node 區塊會指定要設定的目標節點。 在此案例中為 localhost

設定會呼叫兩個資源WindowsFeatureFile。 資源會確保目標節點處於設定所定義的狀態。

編譯設定

DSC 設定若要套用至節點,便必須先編譯成 MOF 檔案。 若要這麼做,您要如函式一般執行設定。 在 PowerShell 主控台中,瀏覽至您儲存設定的同一個資料夾,並執行下列命令以將設定編譯成 MOF 檔案:

. .\WebsiteTest.ps1
WebsiteTest

這會產生下列輸出:

Directory: C:\ConfigurationTest\WebsiteTest


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----        3/13/2017   5:20 PM           2746 localhost.mof

第一行會使設定函式可在主控台中使用。 第二行會執行設定。 結果會在目前資料夾中,建立名為 WebsiteTest 的新子資料夾。 WebsiteTest 資料夾包含名稱為 localhost.mof 的檔案。 這是可接著套用至目標節點的檔案。

套用設定

現在您已經有已編譯的 MOF,您接著可呼叫 Start-DscConfiguration Cmdlet 來將設定套用至目標節點 (在本範例中為本機電腦)。

Start-DscConfiguration Cmdlet 會要求本機設定管理員 (LCM) (也就是 DSC 的引擎) 套用設定。 LCM 會呼叫 DSC 資源以套用設定。

注意

若要允許 DSC 執行,就必須將 Windows 設定成即使在您執行 localhost 設定時,也接收 PowerShell 遠端命令。 若要輕鬆正確地設定您的環境,只要在已提高權限的 PowerShell 終端機中執行 Set-WsManQuickConfig -Force 即可。

在 PowerShell 主控台中,瀏覽至您儲存設定的同一個資料夾,並執行下列命令:

Start-DscConfiguration .\WebsiteTest

測試組態

您可以呼叫 Get DscConfigurationStatus Cmdlet 來查看設定是否成功。

您也可以直接測試結果,在本範例中是透過網頁瀏覽器瀏覽至 http://localhost/。 您應該會看到您做為本範例的第一個步驟所建立的 "Hello World" HTML 頁面。

後續步驟