适用于: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。
此配置调用两个 resource、WindowsFeature 和 File。 资源负责确保目标节点处于由配置定义的状态。
编译配置
对于要应用于节点的 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 配置和资源。