2016-11-16 3 views
0

Можно ли применить несколько конфигураций DSC к одному vm через Azure Resource Manager?Применить несколько DSC через Azure Resource Manager

В настоящее время я использую что-то вроде этого:

{ 
     "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 для IIS + ASP.Net
  • Один DSC создать site1
  • Другой DSC для создания site2
  • В Dev развернуть site1 и Site2 на одну машину
  • В производстве разворачивайте отдельные машины, возможно, даже в наборах доступности ...
  • (Будьте готовы использовать раздельные контейнеры в будущем)

ответ

1

DSC позволяет только для одной конфигурации в данный момент, так что если вы развернуты 2 расширения DSC к одной и той же виртуальной машине (я не уверен, что это будет на самом деле работа) вторая конфигурация перезапишет первую.

Вы могли бы стек DSC и CustomScript, но поскольку DSC может работать сценарий, я не знаю, почему вы когда-нибудь понадобится, чтобы сделать это ...

Каков ваш сценарий?

+0

Я хотел отделить DSC от «Features», поэтому был бы IIS + ASP.NET, а затем создаст веб-сайт IIS. Затем я мог бы использовать один и тот же IIS + ASP.NET DSC для двух виртуальных машин и просто расширить их для двух веб-сайтов IIS. Btw: Нельзя применять несколько расширений DSC, которые я пробовал ... – david

+0

Хммм ... Я хотел бы понять ваш сценарий немного больше, я думаю, что это имеет смысл, хотя у меня проблемы с обволакиванием вокруг него. Если вы за чат, пожалуйста, напишите мне - bmoore @ microsoft ... –

0

Есть несколько подходов к этому, один простой и полезный, который я использую: Вложенные конфигурации.

Вы создаете Конфигурации без какого-либо конкретного узла. Затем создайте конфигурации с узлами, которые группируют необходимые конфигурации.

Этот простой пример может служить руководством по поводу того, о чем я говорю. См. [MS doc]] 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": "FrontEndVM" 
} 
Смежные вопросы