[英]Apply multiple DSCs through Azure Resource Manager
是否可以通過 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 配置混合到一個配置中。
您正在創建沒有任何特定節點的配置。 然后使用對所需配置進行分組的節點創建配置。
這個簡單的例子可以作為我正在談論的內容的指南。 有關更多詳細信息,請參閱 [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 本地管理器更正錯誤的配置,則只能使用最新的配置。
DSC 目前只允許單個配置,因此如果您將 2 個 DSC 擴展部署到同一個 VM(我不確定它是否真的可以工作),第二個配置將覆蓋第一個。
您可能會堆疊 DSC 和 CustomScript 但由於 DSC 可以運行腳本,我不確定您為什么需要這樣做...
你的場景是什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.