Answers:
是的,对于Linux和Windows,您都可以构建所需的状态配置文件,这些文件可以:
这是一个示例配置文件,它将启用IIS,确保网站文件位于正确的文件夹中,并且如果未安装或缺少这些文件中的任何一个,则可以适当地安装或复制它们(请注意,假定$ websitefilepath为预定义为网站文件的来源):
Configuration MyWebConfig
{
# A Configuration block can have zero or more Node blocks
Node "Myservername"
{
# Next, specify one or more resource blocks
# WindowsFeature is one of the built-in resources you can use in a Node block
# This example ensures the Web Server (IIS) role is installed
WindowsFeature MyRoleExample
{
Ensure = "Present" # To uninstall the role, set Ensure to "Absent"
Name = "Web-Server"
}
# File is a built-in resource you can use to manage files and directories
# This example ensures files from the source directory are present in the destination directory
File MyFileExample
{
Ensure = "Present" # You can also set Ensure to "Absent"
Type = "Directory“ # Default is “File”
Recurse = $true
# This is a path that has web files
SourcePath = $WebsiteFilePath
# The path where we want to ensure the web files are present
DestinationPath = "C:\inetpub\wwwroot"
# This ensures that MyRoleExample completes successfully before this block runs
DependsOn = "[WindowsFeature]MyRoleExample"
}
}
}
有关更多详细信息,请参见Windows PowerShell所需状态配置概述和Windows PowerShell所需状态配置入门。
那么,为什么要使用它而不是简单地使用install-windowsfeature cmdlet?使用DSC代替脚本的真正力量在于,我可以定义一个位置,可以在其中存储要推入或从中拉出的配置(相对于目标计算机),请参见“ 推入和拉出配置模式”。配置并不关心计算机是物理机还是虚拟机,但是我认为至少需要2012年才能使服务器启动才能拉DSC。
Import-Module servermanager
Install-WindowsFeature Feature,
Feature,
Feature,
etc
上面将安装功能列表。您可以对它们进行硬编码,也可以仅将它们保存在一个文件中,每行一个,然后使用此文件来安装它们:
Import-Module servermanager
$features = get-content C:\Features.txt
Install-WindowsFeature $features
-configurationfilepath
参数并将其指向您在OP中提到的导出配置文件。如您所说,它包含特定于PC的信息有些奇怪,但是所有证据都表明它将默认情况下将其安装在本地计算机上,并将其指向这些文件之一将根据需要配置所有内容,因此可能不使用它。它可能只是您从哪个计算机上获得配置的参考。