我有一個基於類的自定義DSC模塊。在初始同步過程中,目標計算機嘗試在C:\ Windows \ System32 \ dsc中生成MOF,這會導致錯誤 - 這會導致初始同步報告爲失敗,即使所有單個配置資源任務都顯示爲成功。基於MOF的資源沒有生成報告成功,但實際上根本沒有執行。Azure DSC錯誤初始同步生成mof
這是錯誤:
{
"JobId": "4deeaf52-aa56-11e6-a940-000d3ad04eaa",
"OperationType": "Initial",
"ReportFormatVersion": "2.0",
"ConfigurationVersion": "2.0.0",
"StartTime": "2016-11-14T21:37:14.2770000+11:00",
"Errors": [{
"ErrorSource": "DSCPowershellResource",
"Locale": "en-US",
"Errors": {
"Exception": {
"Message": "Could not find the generate schema file dsc\tBlobSync.1.4.tAzureStorageFileSync.schema.mof.",
"Data": {
},
"InnerException": null,
"TargetSite": null,
"StackTrace": null,
"HelpLink": null,
"Source": null,
"HResult": -2146233079
},
"TargetObject": null,
"CategoryInfo": {
"Category": 6,
"Activity": "",
"Reason": "InvalidOperationException",
"TargetName": "",
"TargetType": ""
},
"FullyQualifiedErrorId": "ProviderSchemaNotFound",
"ErrorDetails": null,
"InvocationInfo": null,
"ScriptStackTrace": null,
"PipelineIterationInfo": []
},
"ErrorCode": "6",
"ErrorMessage": "Could not find the generate schema file dsc\tBlobSync.1.4.tAzureStorageFileSync.schema.mof.",
"ResourceId": "[tAzureStorageFileSync]CDrive"
}],
"StatusData": [],
"AdditionalData": [{
"Key": "OSVersion",
"Value": {
"VersionString": "MicrosoftWindowsNT10.0.14393.0",
"ServicePack": "",
"Platform": "Win32NT"
}
},
{
"Key": "PSVersion",
"Value": {
"CLRVersion": "4.0.30319.42000",
"PSVersion": "5.1.14393.206",
"BuildVersion": "10.0.14393.206"
}
}]
}
我已經試過手動生成財政部和包括它的模塊中,但這並沒有幫助(也許我這樣做是錯誤的)。儘管這是一個基於類的資源,但我在文件\ DSCResources \ className
\ classname
.schema.mof文件中添加了MOF類的名稱。我注意到在C:\ windows \ system32 \ dsc文件夾中生成的文件包含版本號,而我的版本號並不是。也許這就是問題所在。
失敗的初始同步後,隨後的一致性檢查通過,並且在錯誤消息中提到的位置創建MOF。
該類本身包含一個函數,該函數調用Import-Module Azure.Storage
,該函數通過不同的DSC資源安裝在機器上,並且已經在一致性檢查時安裝,但(顯然)不在初始同步開始的位置。安裝模塊的資源被標記爲配置中類資源的依賴關係,但我認爲MOF的生成必須發生在模塊部署的位置,這在邏輯上是在初始同步運行之前進行的。
至少這是我認爲正在發生的事情。
如果有人能告訴我在這種情況下可以做什麼,以及我的假設(上面)是否正確,我將不勝感激嗎?我似乎無法從MOF編譯過程本身得到任何額外的錯誤或遙測,看到爲什麼 MOF編譯失敗。
你可以分享你的ARM模板或一個回購的問題和導致問題的資源?沒有代碼,我只能猜測是什麼導致了錯誤,問題還不清楚。 – TravisEz13
@ TravisEz13我不認爲這真的與實際代碼有關(我無法發佈)。正如我所說,一旦MOF產生,它會在第二次及以後的時間內順利運行。我開始將MOF文件與根目錄中的類(與'.psm1'相同的文件夾)傳送,而不是上述的文件夾偏移量,似乎解決了這個問題。 –