Составные ресурсы DSC, не экспортируемые в службе автоматизации Azure

Я пытаюсь создать свой первый составной модуль ресурсов DSC для использования в службе автоматизации Azure, и, хоть убей, я не могу понять, какую глупость я упускаю из виду, что мешает экспортировать мои ресурсы DSC или использовать их в тесте. конфигурация, которую я создал. Моя первая попытка была большой и причудливой, с param и импортированными другими DSCResouces, и она была великолепной и впечатляющей, и вообще не сработала.

Поэтому я решил создать суперпростую конфигурацию, используя блоки кода из моих несоставных конфигураций, и все они работают нормально. Я заархивировал все, что перечислено ниже, импортировал его в свои модули автоматизации Azure, и никаких действий не было экспортировано. Ошибок нет, вроде ничего не радует, но ничего не происходит. Модуль есть в списке, но ничего не делает.

Запуск тестовой конфигурации для него не позволяет сказать, что он не может импортировать модуль DefaultEnvironment, попробуйте импортировать модуль.

Я пробовал использовать обе следующие конфигурации, обе не работают по одной и той же причине:

configuration testdscconfig {
    Import-Module TestDSC
    Import-DscResource -Name DefaultRegistry
    Import-DscResource -Name DefaultEnvironment

    node localhost {
        DefaultEnvironment SetDefaultEnvironment {}
        DefaultRegistry SetDefaultRegistry {}
    }
}

и

configuration testdscconfig {
    Import-DSCResource -ModuleName TestDSC

    node localhost {
        DefaultEnvironment SetDefaultEnvironment {}
        DefaultRegistry SetDefaultRegistry {}
    }
}

Моя составная конфигурация DSC имеет такую ​​структуру:

TESTDSC
│   TestDSC.psd1
│   TestDSC.psm1
│
└───DSCResources
    ├───DefaultEnvironment
    │       DefaultEnvironment.psd1
    │       DefaultEnvironment.schema.psm1
    │
    └───DefaultRegistry
            Defaultregistry.psd1
            DefaultRegistry.schema.psm1

TestDSC.psm1 - пустой файл. TestDSC.psd1 содержит:

 @{  
    RootModule = "TestDSC.psm1"
    ModuleVersion = '0.0.8'
    GUID = <GUID>    
    Author = 'RobbieCrash'    
    CompanyName = 'Noncorp'
    
    # DSC resources to export from this module
    DscResourcesToExport = @(
        'DefaultEnvironment' 
        'DefaultRegistry'
    )
}

DSCResources \ DefaultRegistry \ DefaultRegistry.psd1:

@{RootModule="DefaultRegistry.schema.psm1"}

DSCResources \ DefaultRegistry \ DefaultRegistry.schema.psm1:

Configuration DefaultRegistry {
    Registry SecureDotNetCryptox64 {
        Ensure              =   "Present"
        Key                 =   "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319\"
        ValueName           =   "SchUseStrongCrypto"
        ValueData           =   "1"
    }

    Registry SecureDotNetCryptox86 {
        Ensure              =   "Present"
        Key                 =   "HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319"
        ValueName           =   'SchUseStrongCrypto' 
        ValueData           =   '1'
    }
}

DefaultEnvironment настроен так же, с кажущимся безобидным блоком конфигурации. Удаление того или другого не имеет значения, компиляция не выполняется и никакие ресурсы не экспортируются.

Я пробовал установить RootModule= на ".\Resource.schema.psm1" и "Resource.schema.psm1", проверял случаи, проверял, что в коде нет ничего нестабильного, опечаток и т. Д.

Я уверен, что где-то упустил некоторые важные детали, но после просмотра 20 разных статей и StackExchange / связанных тем я сижу здесь, тупой и косоглазый о том, чего мне, должно быть, не хватает.


person Robbie Crash    schedule 21.10.2020    source источник


Ответы (2)


Следуя изложенному выше, я провел некоторое тестирование, и минимальное требование - определить RootModule и ModuleVersion, поэтому DefaultRegistry.psd1 может быть:

@{
  RootModule    = 'DefaultRegistry.schema.psm1'
  ModuleVersion = '1.0.0'
}
person Ian Walker    schedule 21.04.2021

Оказывается, что для правильного обнаружения манифесты ресурсов должны быть полными манифестами, а не просто записью-заглушкой RootModule = "module" which требуется документация, а я ленивый идиот. :)

person Robbie Crash    schedule 22.10.2020