2016-11-16 11 views
0

Azure Resource Managerを使用して1つのVMに複数のDSC設定を適用できますか? 、Azure Resource Managerで複数の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をマージすることができます

は現在、私はこのようなものを使用していますか?

シナリオは次のとおりです。

  • はDevのデプロイサイト1ではサイト2
  • を作成するために、サイト1
  • 別のDSCを作成するために、複数のDSC
  • 一つIIS + ASP.NetのためのDSC
  • 一つDSCを持っていますとSite2を1台のマシンに交換する
  • 実稼働環境では、別々のマシンにデプロイします。可用性セットでも...
  • (将来的には別々のコンテナを使用するように準備して)

答えて

1

DSCのみが、現時点では、単一の構成が可能なので、あなたが同じVMに2つのDSC拡張を展開されている場合(私はそれが実際に意志わからないんだけど2番目の設定は最初の設定を上書きします。

おそらく、DSCとCustomScriptスタックでしたが、DSCは、スクリプトを実行することができますので、あなたがそれを行う必要があるだろう、なぜ、私はわからない...

あなたのシナリオは何ですか?

+0

「機能」でDSCを分離したいので、IIS + ASP.NETとなり、次にIIS Webサイトが作成されます。次に、2つのVM用に同じIIS + ASP.NET DSCを再利用し、2つのIIS Webサイト用に拡張するだけです。 Btw:私が試した複数のDSC拡張を適用することは許可されていません... – david

+0

Hmmm ...あなたのシナリオをもう少し理解したいと思います。あなたがチャットをしているなら、私にメールしてください - 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" 
} 
関連する問題