gpt4 book ai didi

powershell - 通过 Azure 资源管理器应用多个 DSC

转载 作者:行者123 更新时间:2023-12-03 00:47:31 28 4
gpt4 key购买 nike

是否可以通过 Azure 资源管理器将多个 DSC 配置应用到一台虚拟机?

目前我正在使用这样的东西:

    {
"apiVersion": "2015-06-15",
"dependsOn": [
"[concat('Microsoft.Compute/virtualMachines/', variables('vm_name'))]"
],
"location": "[resourceGroup().location]",
"name": "DSCSetup",
"properties": {
"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.20",
"autoUpgradeMinorVersion": true,
"settings": {
"modulesUrl": "[concat('https://', variables('sa_name'), '.blob.core.windows.net/.../dsc.ps1.zip')]",
"configurationFunction": "dsc.ps1\\Main",
"properties": {
"MachineName": "[variables('vm_name')]",
"UserName": "[parameters('vm_user')]"
}
},
"protectedSettings": {}
},
"type": "extensions"
}

如果没有,可以自动合并多个 DSC 吗?

场景是:

  • 拥有多个 DSC
  • 一个适用于 IIS + ASP.Net 的 DSC
  • 一个 DSC 用于创建 Site1
  • 另一个 DSC 用于创建 Site2
  • 在开发中将 Site1 和 Site2 部署到一台计算机
  • 在生产中部署到单独的计算机,甚至可能在可用性集中......
  • (准备好将来使用单独的容器)

最佳答案

有一些方法可以实现这一点,我使用的一种简单且有用的方法是嵌套配置,将所有 DSC 配置混合到一个配置中。

您正在创建没有任何特定节点的配置。然后使用对所需配置进行分组的节点创建配置。

这个简单的例子可以作为我正在谈论的内容的指南。请参阅 [MS 文档]] 1了解更多详情。

Configuration WindowsUpdate
{
Import-DscResource -ModuleName PSDesiredStateConfiguration

Service ModulesInstaller {
Name = "TrustedInstaller"
DisplayName = "Windows Modules Installer"
StartupType = "Disabled"
State = "Stopped"
}

}

Configuration ServerManager
{
Import-DscResource -ModuleName PSDesiredStateConfiguration

Registry DoNotOpenServerManagerAtLogon {
Ensure = "Present"
Key = "HKLM:\SOFTWARE\Microsoft\ServerManager"
ValueName = "DoNotOpenServerManagerAtLogon"
ValueData = 1
DependsOn = "[Registry]NoAutoUpdate"
}
}


Configuration VMConfig
{
Node localhost
{
WindowsUpdate NestedConfig1 {}

ServerManager NestedConfig2 {}
}
}

通过这种方法,我可以轻松地在每个 DSC 扩展上调用机器条目配置,该配置只是我想要应用的配置的组合。

"publisher": "Microsoft.Powershell",
"type": "DSC",
"typeHandlerVersion": "2.20",
"configuration": {
"url": "[concat(parameters('_artifactsLocation'), '/Configuration.zip')]",
"script": "Configuration.ps1",
"function": "VMConfig"
}

另一种方法是在同一台机器上执行多个 ARM DSC 扩展。这里的技巧是始终使用相同的名称,因为只能执行一个 DSC 扩展。

这种方法需要注意的是,机器上以前的配置会被覆盖。从功能角度来看,结果可能是相同的,但如果您希望 DSC 本地管理器纠正错误的配置,则只能针对最新的配置。

关于powershell - 通过 Azure 资源管理器应用多个 DSC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40633012/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com