我有一个部署DSC扩展的VM模板。它一直在正常工作,但我的配置不断增长,所以我重构了它以使用复合资源并将其重新发布到使用Publish-AzureRmVMDscConfiguration
的BLOB存储。使用具有Azure DSC扩展的自定义复合资源
我验证了blob存储中的.ps1.zip文件包含我的自定义模块,并且该模块列在dscmetadata.json下。但是,当我部署时,DSC扩展失败。 C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\2.17.0.0
下的日志揭示了原因:
C:\包\插件\ Microsoft.Powershell.DSC \ 2.17.0.0 \ BIN .. \ DSCWork \ AppServerDev.ps1.0 \ AppserverDev.ps1
PSDesiredStateConfiguration \ node:模块'xCustomResource'可能不会被加载。有关更多信息,请运行“导入模块 xCustomResource”。
在C:\包\插件\ Microsoft.Powershell.DSC \ 2.17.0.0 \ DSCWork \ AppServerDev.ps1.0 \ AppserverDev.ps1:9炭:3
- 节点 “本地主机”
- ~~~~
- CategoryInfo:ObjectNotFound:(xCustomResource \ xCustomResource:字符串) [PSDesiredStateConfiguration \节点],ParentContainsErrorRecordException
- FullyQualifiedErrorId:CouldNotAutoLoadModule,PSDesiredSta teConfiguration \节点
这里是我的配置文件中的相关内容:
configuration AppServerDev
{
param($environment)
Import-DscResource -ModuleName 'PSDesiredStateConfiguration'
Import-DscResource -ModuleName 'SaaSModule'
node "localhost"
{
LocalConfigurationManager
{
RebootNodeIfNeeded = $true
ConfigurationMode = "ApplyAndAutoCorrect"
ConfigurationModeFrequencyMins = 1440
}
xDCTPlatformVM VM {
OctopusParametersFile = $environment
ChocolateyPackages = @(
'googlechrome',
'notepadplusplus',
'7zip',
'microsoftwse',
'octopusdeploy.tentacle',
'sqlserver-cmdlineutils'
)
}
}
}
运行Get-Module -ListAvailable
表明DankModule
被发现,我可以从PowerShell中运行Import-Module DankModule
和它的工作原理如预期。我以为困惑大家从它试图导入xCustomResource
而非DankModule
但C:\Packages\Plugins\Microsoft.Powershell.DSC\2.17.0.0\DSCWork
下我的.ps1文件说
Import-Module "DankModule"
,而不是
Import-Module "xCustomType"
为什么要导入xCustomType
而不是DankModule
?我如何使它找到DankModule
哪些是可用的并且包含xCustomType
?
更新:Get-Module -ListAvailable
显示DankModule
已安装,但Get-DSCResource -Module DankModule
不返回任何内容。