2017-02-17 4 views
2

私は、DSC拡張をデプロイするVMテンプレートを持っています。それはうまくいっていますが、私の設定は成長していますので、コンポジットリソースを使用するようにリファクタリングし、Publish-AzureRmVMDscConfigurationでBLOBストレージに再パブリッシュしました。Azure DSC拡張でカスタムの複合リソースを使用する

blobストレージの.ps1.zipファイルに私のカスタムモジュールが含まれていることと、モジュールがdscmetadata.jsonの下にリストされていることを確認しました。ただし、展開すると、DSC拡張が失敗します。

C:\パッケージ\プラグイン\ Microsoft.Powershell.DSC \ 2.17.0.0 \ binに.. \ DSCWork \ AppServerDev.ps1.0 \ AppserverDev.ps1

C:\WindowsAzure\Logs\Plugins\Microsoft.Powershell.DSC\2.17.0.0下のログには、その理由を明らかにPSDesiredStateConfiguration \ node:モジュール 'xCustomResource'を にロードできませんでした。詳細については、 'Import-Module xCustomResource'を実行してください。

℃で

:\パッケージ\プラグイン\ Microsoft.Powershell.DSC \ 2.17.0.0 \ DSCWork \ AppServerDev.ps1.0 \ AppserverDev.ps1:9チャー:3

  • ノード "ローカルホスト"
  • ~~~~
    • CategoryInfo:ObjectNotFound:(xCustomResource \ xCustomResource:String)を [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を実行することができ、それが動作することを明らかに予想通り。私は混乱がC:\Packages\Plugins\Microsoft.Powershell.DSC\2.17.0.0\DSCWorkxCustomResourceではなくDankModuleが、私の.ps1というファイルをインポートしようとしていることから来ていると仮定すると、

Import-Module "DankModule"

なく

Import-Module "xCustomType"

は、なぜそれがxCustomTypeをインポートしようとしていると言いますDankModuleではなく?利用可能で、xCustomTypeを含むDankModuleを見つけるにはどうすればよいですか?

更新:Get-Module -ListAvailableDankModuleがインストールされていますが、Get-DSCResource -Module DankModuleは何も返しません。

答えて

1

私は確信していませんが、私はpowershellモジュールを構築する経験がないので、これはルーキーミスです。私はthis pagethis oneを使って私のモジュールを作りました。New-ModuleManifestを使って有効なモジュールファイルを入手しました。私は正しいファイル構造を持っていました。

C:\Program Files\WindowsPowerShell\Modules\ 

DankModule 
    DankModule.psd1 
    DankModule.psm1 
    DSCResources 
     xCustomResource 
      xCustomResource.psd1 
       RootModule = ‘xCustomResource.schema.psm1' 
      xCustomResource.schema.psm1 
       Configuration, no Node block 

しかし、私はいくつかの調整が残っていたことを認識しませんでした。私の空白DankModule.psm1に私のxCustomResource.schema.psm1相当を参照する行を追加する必要が

RootModule = 'C:\Program Files\WindowsPowerShell\Modules\DankModule\DankModule.psm1' 

も::

. .\DSCResources\xCustomResource\xCustomResource.schema.psm1 
私はこのように見てDankModule.psd1で RootModuleプロパティを修正するために必要

これは私のモジュールレベルの.psm1ファイル内の唯一の行で、現在はすべて動作しています。私もある時点で、両方の.psd1ファイルから\0をすべて削除しましたが、今は厳密に必要かどうかはわかりません。

関連する問題