2017-10-20 22 views
1

사용자 지정 DSC 복합 리소스를 만드는 동안 문제가 발생하여 다른 사용자가 밝힐 수있는 Azure 자동화 모듈 목록에 업로드하는 데 문제가 있습니다.Azure 자동화의 사용자 지정 PowerShell DSC 복합 리소스

$parentModulePath = 'C:\Program Files\WindowsPowerShell\Modules\CompositeExample' 
mkdir $parentModulePath 
New-ModuleManifest  -RootModule CompositeExample –Path "$parentModulePath\CompositeExample.psd1" 

$resourceModulePath = "$parentModulePath\DSCResources\CompositeResource" 
mkdir $resourceModulePath 
New-ModuleManifest  -RootModule 'CompositeResource.schema.psm1' –Path "$resourceModulePath\CompositeResource.psd1" 
Add-Content –Path "$resourceModulePath\CompositeResource.schema.psm1" –Value '' 

그리고 다음 CompositeResource.schema.psm1 파일에서 나는 다음과 같은 코드를 추가했습니다 : : 이제 경우

Configuration CompositeResource 
{ 
    Import-DscResource -ModuleName PSDesiredStateConfiguration 

    File ExampleFolder 
    { 
     DestinationPath = "C:\Example" 
     Type   = "Directory" 
    } 
} 

을 나는 다음과 같은 코드를 실행하여 기본 PowerShell을 DSC 복합 자원을 만들었습니다 C : \ Program Files \ WindowsPowerShell \ Modules \ CompositeExample 폴더를 CompositeExample_1.0.zip으로 압축 한 다음 '기본'DSC 서버에 업로드하고 별도의 구성으로 참조하여 완벽하게 작동합니다.

그러나, 나는 (CompositeModule.zip으로) 푸른 자동화의 모듈로 추가하면 나는 다음과 같은 오류가 발생합니다 :

Error importing the module CompositeExample. Import failed with the following error: 
Orchestrator.Shared.AsyncModuleImport.ModuleImportException: An error occurred during 
module validation. When importing the module to an internal PowerShell session, it was not 
able to be loaded by PowerShell. There is likely an issue with the contents of the module 
that results in PowerShell's not being able to load it. Please verify that the module 
imports successfully in a local PowerShell session, correct any issues, and then try 
importing again. 

모듈은 푸른위한 다른 방법으로 '번들'해야합니까, 또는 추가 파일이 필요합니까?

답변

0

좋아, 문제는 루트 모듈 매니페스트를 만들 때 -RootModule 행을 지정하는 것이 었습니다. 'Classic'DSC는 파일을 무시하는 것처럼 보이지만 Azure Automation은 파일이 존재하지 않으므로 오류를 발생시킵니다. 코드가 복합 모듈

$parentModulePath = 'C:\Program Files\WindowsPowerShell\Modules\CompositeExample' 
mkdir $parentModulePath 
New-ModuleManifest –Path "$parentModulePath\CompositeExample.psd1" 

$resourceModulePath = "$parentModulePath\DSCResources\CompositeResource" 
mkdir $resourceModulePath 
New-ModuleManifest -RootModule 'CompositeResource.schema.psm1' –Path "$resourceModulePath\CompositeResource.psd1" 
Add-Content –Path "$resourceModulePath\CompositeResource.schema.psm1" –Value '' 

것 만들 그래서 푸른 자동화는이 오류없이 모듈로 추가 할 수 있습니다.