快速入门 - 使用 Desired State Configuration (DSC) 创建网站

适用于:Windows PowerShell 4.0 和 Windows PowerShell 5.0

本练习演示创建和应用 Desired State Configuration (DSC) 配置的完整过程。 我们使用的示例可确保服务器启用了 Web-Server(IIS) 功能,并且该服务器的 inetpub\wwwroot 目录中存在一个简单“Hello World”网站的内容。

有关什么是 DSC 及其工作原理的概述,请参阅适用于决策者的 Desired State Configuration 概述

要求

要运行此示例,需要运行 Windows Server 201 2或更高版本以及 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

“节点”块指定要配置的目标节点。 在本例中为 localhost

此配置调用两个 resourceWindowsFeatureFile。 资源负责确保目标节点处于由配置定义的状态。

编译配置

对于要应用于节点的 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 通知作为 DSC 引擎的本地配置管理器 (LCM)应用配置。 LCM 的工作是调用 DSC 资源以应用配置。

注意

即使在运行 localhost 配置的情况下,也需要将 Windows 配置为接收 PowerShell 远程命令,以允许 DSC 运行。 在提升的 PowerShell 终端中运行 Set-WsManQuickConfig -Force,即可轻松地正确配置环境。

在 PowerShell 控制台中,导航到保存配置的同一文件夹,并运行以下命令:

Start-DscConfiguration .\WebsiteTest

测试配置

你可以调用 Get-DscConfigurationStatus cmdlet 查看配置是否成功。

此外,还可以直接测试结果,在本例中可通过浏览 Web 浏览器中的 http://localhost/ 进行测试。 你将看到在本示例的第一步中所创建的“Hello World”HTML 页面。

后续步骤

  • DSC 配置中了解有关 DSC 配置的详细信息。
  • 查看哪些 DSC 资源可用,以及如何在 DSC 资源中创建自定义 DSC 资源。
  • PowerShell 库中查找 DSC 配置和资源。