【发布时间】:2017-07-07 11:50:21
【问题描述】:
我有一个部署 DSC 扩展的 VM 模板。它一直运行良好,但我的配置正在增长,因此我将其重构为使用复合资源并使用 Publish-AzureRmVMDscConfiguration 将其重新发布到 blob 存储。
我确认 Blob 存储中的 .ps1.zip 文件包含我的自定义模块,并且该模块列在 dscmetadata.json 下。但是,当我部署时,DSC 扩展失败。 C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\2.17.0.0下的日志揭示了原因:
C:\Packages\Plugins\Microsoft.Powershell.DSC\2.17.0.0\bin..\DSCWork\AppServerDev.ps1.0\AppserverDev.ps1
PSDesiredStateConfiguration\node :模块“xCustomResource”可以 不被加载。有关更多信息,请运行“导入模块” xCustomResource'。
在 C:\Packages\Plugins\Microsoft.Powershell.DSC\2.17.0.0\DSCWork\AppServerDev.ps1.0\AppserverDev.ps1:9 char:3
- 节点“本地主机”
- ~~~~
- CategoryInfo : ObjectNotFound: (xCustomResource\xCustomResource:String) [PSDesiredStateConfiguration\node],ParentContainsErrorRecordException
- FullyQualifiedErrorId : CouldNotAutoLoadModule,PSDesiredStateConfiguration\node
以下是我的配置文件的相关位:
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?如何让它找到可用并包含xCustomType 的DankModule?
更新:Get-Module -ListAvailable 显示 DankModule 已安装,但 Get-DSCResource -Module DankModule 不返回任何内容。
【问题讨论】:
标签: azure deployment azure-powershell dsc