我正在尝试编写将发布到Azure虚拟机中的DSC脚本。到目前为止,我已经能够完成基本的功能,如启用Windows功能和创建目录。但现在我想在azure虚拟机上安装chocolatey。所以这是我的剧本
configuration IIsAspNetInstall
{
Import-DscResource -ModuleName cChoco
node "localhost"
{
WindowsFeature IIS
{
Ensure="present"
Name="web-server"
}
WindowsFeature InstallDotNet45
{
Name = "Web-Asp-Net45"
Ensure = "Present"
}
WindowsFeature InstallIISConsole
{
Name = "Web-Mgmt-Console"
Ensure = "Present"
}
File WebsiteFolderCreate
{
Ensure = "Present"
Type = "Directory"
DestinationPath = "C:\inetpub\wwwroot\AdventureWorks"
Force = $true
}
cChocoInstaller installChoco
{
InstallDir = "C:\choco"
}
}
}
在我的本地计算机上,我使用的是PowerShell 5.0,在ISE中,我在Import-DscResource
下面找到了红色的波浪线,说无法找到moduleName cChoco。我知道它是一个关键字,应该在Configuration部分内有效。当我Publish-AzureVMDscConfiguration
时,我得到一个解析错误
+ Import-DscResource -ModuleName cChoco
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Could not find the module 'cChoco'.
答案 0 :(得分:2)
您可以手动将模块捆绑在DSC包中(通过将其放在zip文件的子文件夹中)或使用Publish-AzureVMDSCConfiguration cmdlet。如果模块安装在运行cmdlet的计算机上,它将查看PS1文件中的所有导入模块语句并为您打包 - 一旦打包,在目标计算机上运行脚本时,模块(s) )也会自动安装......