2017-05-30 51 views
1

这已经是asked before,但以Azure的速度发生变化,我再次询问是否有前进的方向。我相信这是SO方式。Azure资源管理器模板:如何应用多个DSC配置?

与其使用嵌套在VM部署下的DSC VM扩展,我宁愿在自动化帐户中将DSC下的节点“注册”到DSC。为此,我正在关注快速启动模板:VM-DSC-Extension-Azure-Automation-Pull-Server

在我的自动化帐户中,我有几种配置。是否可以从一个模板的资源中应用多个配置?

我相信我只能有在资源类型有一个NodeConfigurationName

"Microsoft.Compute/virtualMachines/extensions" > properties.settings.properties.name 

是其复制整个资源块的每个DSC配置或者我应该考虑创建的“合并”配置的情况? (似乎不太便携)。

回答

0

我不认为这个改变,另外,如果你正在谈论Azure自动化,这是不可能的,因为ARM模板注册虚拟机到配置,不等待它收敛,所以没有办法让你跟踪虚拟机是否从模板中收敛。

0

该问题的简短答案是,不可以在PowerShell DSC中应用“多种配置”。它意味着每个节点都有一个配置。这就是说,您可以在Azure自动化中使用以下内容来帮助构建复合模板(IE:指向您创建的其他更多模块化配置单元的配置)。

您可以在Azure自动化中使用composite resources。基本上,您会根据文章创建一个自定义模块,然后将其上传到您的自动化帐户。

一旦出现,您可以在DSC节点配置中引用该配置。

Configuration AssertDefault{ 
     Import-DSCResource -ModuleName <name> -ModuleVersion <Version> 
     Node $AllNodes.Where($_.NodeName -eq "BaseServer"}.NodeName{ 
      <<your configuration>> BaseServer{ 
       // your parameters 
      } 
     } 
    } 
+0

我在DSC摄取上有点慢。抱歉。所以人们会写一个“配置”来“描述”一个或多个服务器应该如何。这些将是相同的。使用@CtrlDot的例子,可以编写一个DSC资源来执行X,另一个执行Y,然后在配置中,使用where过滤器调用这些资源,选择性地应用它们。我想这不是最佳做法。恕我直言,无论哪种方式会导致各种服务器的大量长配置文件。也许,用于基本+用于配置的自定义脚本扩展的DSC例如SQL服务器。 – woter324

+0

我不认为我同意。对自定义脚本扩展也有后果。 DSC是声明性的,使用组合可以抽象模块中的复杂性,并根据需要将其应用于服务器类。 – CtrlDot