Import-DscResource не удается найти пакет cChoco

#powershell #azure #powershell-dsc

#powershell #azure #powershell-dsc

Вопрос:

Я пытаюсь написать сценарий DSC, который будет опубликован на виртуальной машине Azure. До сих пор мне удавалось выполнять базовые вещи, такие как включение функций Windows и создание каталогов. Но теперь я хочу установить chocolatey на виртуальную машину Azure. Итак, это мой сценарий

 configuration IIsAspNetInstall
{
    Import-DscResource -ModuleName cChoco
    node "localhost"
    {
        WindowsFeature IIS
        {
            Ensure="present"
            Name="web-server"
        }
        WindowsFeature InstallDotNet45
        {
            Name = "Web-Asp-Net45"
            Ensure = "Present"
        }
        WindowsFeature InstallIISConsole
        {
            Name = "Web-Mgmt-Console"
            Ensure = "Present"
        }
        File WebsiteFolderCreate 
        {
            Ensure = "Present"
            Type = "Directory"
            DestinationPath = "C:inetpubwwwrootAdventureWorks"
            Force = $true
        }
        cChocoInstaller installChoco 
        { 
            InstallDir = "C:choco" 
        }
    }
}    
  

На моем локальном компьютере я использую PowerShell 5.0, и внутри ISE я получаю красные волнистые строки с Import-DscResource надписью «не удается найти имя модуля cChoco». Я знаю, что это ключевое слово и должно быть допустимым внутри раздела конфигурации. Когда я это делаю Publish-AzureVMDscConfiguration , я получаю ошибку синтаксического анализа

       Import-DscResource -ModuleName cChoco
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Could not find the module 'cChoco'.
  

Комментарии:

1. Установлен ли модуль cChoco на компьютере? В сообщении об ошибке довольно ясно указано, в чем проблема.

2. Я думал, что Import-DscResource импортирует его, но потом я обнаружил, что могу использовать Install-Module и установить модуль. Спасибо, что указали на это.

Ответ №1:

Вы можете объединить модуль в пакет DSC либо вручную (поместив его во вложенную папку a в zip-файле), либо с помощью командлетов Publish-AzureVMDSCConfiguration . Если модуль установлен на компьютере, на котором вы запускаете командлет, он просмотрит все инструкции import module в вашем файле PS1 и упакует их для вас — один пакет, когда вы запускаете скрипт на целевом компьютере, модули также будут установлены автоматически…

Комментарии:

1. Я обнаружил то, что вы сказали в одном из сообщений в блоге по устранению неполадок о DSC. Я заметил, что cChoco был упакован.