繁体   English   中英

Azure PowerShell DSC安装额外的模块

[英]Azure PowerShell DSC install extra modules

作为Azure资源组模板的一部分,我为我的VM提供了PowerShell DSC扩展设置,它提供了各种Windows功能。

作为这种自动化设置的一部分,我希望能够在防火墙中打开一些端口,经过一些研究后我发现有一个xFirewall DSC模块可用。 我的问题是如何在DSC执行之前自动将此模块安装到Azure VM上?

我的配置如下所示:

Configuration Main
{

Param ( [string] $nodeName )

Import-DscResource -ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName xFirewall

Node $nodeName

导入xFirewall失败,因为未安装模块。

我已经考虑过创建另一个可以在此之前运行的DSC脚本,但这证明很难,因为你一次只能有一个DSC扩展连接到VM。

您需要导入的模块是xNetworking模块,资源是xFirewall。 因此,DSC脚本的一个简单示例如下所示。

Configuration Main
{

Param ( [string] $nodeName )

Import-DscResource -ModuleName PSDesiredStateConfiguration
Import-DscResource -ModuleName xNetworking

Node $nodeName
  {
      xFirewall Firewall 
      { 
          Name    = "AllowNotepad"             
          Program = "c:\windows\system32\notepad.exe" 
          Action  = "Allow" 
      } 
  }
}

要将其添加到资源组部署模板中,需要将xNetworking模块复制到添加PowerShell DSC Extensions时创建的DSC文件夹下的项目中。 然后将xNetworking文件夹添加到项目中,如下所示。

在此输入图像描述

接下来,完成正常的部署过程。 现在您有DSC扩展的不同之处在于,您需要在部署之前指定工件存储帐户。

在此输入图像描述

部署-AzureResourceGroup.ps1脚本在您的项目将上传DSC.zip现在包括您xNetworking模块插入存储帐户,以便Azure的资源管理器(ARM),然后推扩展到虚拟机已经置备 从那里,虚拟机中的DSC引擎接管并应用配置。

请参阅如何使用和发现DSC资源文章

假设您将xFirewall模块作为DscResource的一部分丢弃,首先您需要导入模块,我认为是xNetworking ,使用Import-Module {FullPath}然后按Import-DSCResource -ModuleName xNetworking -name xFirewall

或者尝试使用Import-DSCResource -Name xFirewall ,这似乎会使它扫描整个资源文件夹并为您找到xFirewall。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM