我正在尝试使用PowerShell DSC创建配置,这有助于我使用虚拟机创建SharePoint场。假设我安装了Hyper-V的Windows 10计算机,我希望我的配置脚本能够创建所需的VM,例如DC,SPA1,SPw1,SPW2和SPDB1,配置其网络连接并连接到域控制器(DC1) ,然后继续安装SharePoint / SQL Server先决条件和安装,然后再继续配置服务器场。
我已经创建了完成各个阶段的配置,但我无法弄清楚如何将它们连接到一个精心策划的庄园中。例如,我可以创建VM或执行SharePoint的安装和配置,但我无法使这些配置协同工作。
阅读DSC documentation我认为可能使用composite resources,但我无法让配置在创建后继续使用新虚拟机。
从复合资源文档:
configuration RenameVM
{
Import-DscResource -Module TestCompositeResource
Node localhost
{
xVirtualMachine VM
{
VMName = "Test"
SwitchName = "Internal"
SwitchType = "Internal"
VhdParentPath = "C:\Demo\VHD\RTM.vhd"
VHDPath = "C:\Demo\VHD"
VMStartupMemory = 1024MB
VMState = "Running"
}
}
Node "192.168.10.1"
{
xComputer Name
{
Name = "SQL01"
DomainName = "fourthcoffee.com"
}
}
}
理想情况下,节点名称将在配置数据中动态声明,而不是明确定义的I.P地址。我也在使用Hyper-V配置创建多个交换机时出现问题,但这是一个单独的问题。所以我想我的问题是:
是否可以创建处理虚拟机创建和高级配置的配置?
答案 0 :(得分:2)
你遇到的问题是DSC的概念之一。
阅读您关联的document,
配置是声明性PowerShell脚本,用于定义和配置资源实例。在运行配置时,DSC(以及配置调用的资源)将简单地“实现”,确保系统处于配置所规定的状态。
DSC旨在配置资源的实例。在基本级别,DSC配置在单个机器上运行,将该机器配置为指定状态。
应限制DSC脚本在其运行的机器范围内工作。这似乎是您遇到的问题的一部分。
如果你有两套脚本。部署VM脚本,针对hyper-v服务器和Sharepoint构建运行,然后在VM启动后配置VM。您似乎要做的是从hyper-v部署脚本中启动Sharepoint脚本。在那个阶段虽然Sharepoint服务器超出了hyper-v服务器的控制范围(除了它的原子VM功能,启动,停止,删除等)
相反,我建议你做的是将它们视为两个完全独立的实体。创建VM和安装Sharepoint之间不需要脚本连接。
在高级别,您的管道看起来像这样
if \\server\share\sqlcompleted.txt exists
或其他适合您环境的机制。 以这种方式构建服务器会消除依赖关系,这意味着如果您决定要切换到ESX,那么您需要更改的就是部署脚本。同样,如果您将所有内容移至云部署。