Ошибка конвейера остановлена ​​при настройке расширения DSC виртуальной машины Azure через Powershell

Версия PowerShell: 5

Я загрузил файл DSC ps1 в zip-архиве в хранилище Azure с помощью команды:

publish-azurermvmdscconfiguration

С соответствующими параметрами и аргументами. Затем я ввожу:

Set-AzureRmVmDSCExtension -ResourceGroupName Pollers -VmName <VmName> -ArchiveBlobName Run-DSCPython.zip -ArchiveStorageAccountName <storageAccountName> -Version 2.2 -Verbose

И я получаю следующее (обычно непрозрачное) сообщение об ошибке в PowerShell:

Set-AzureRmVmDSCExtension : The pipeline has been stopped.
At line:1 char:1
+ Set-AzureRmVmDSCExtension -ResourceGroupName Pollers -VmName Download ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : CloseError: (:) [Set-AzureRmVMDscExtension], PipelineStoppedException
    + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.Extension.DSC.SetAzureVMDscExtensionCommand

Set-AzureRmVmDSCExtension : Long running operation failed with status 'Failed'.
At line:1 char:1
+ Set-AzureRmVmDSCExtension -ResourceGroupName Pollers -VmName Download ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidResult: (:) [Set-AzureRmVMDscExtension], CloudException
    + FullyQualifiedErrorId : InvalidResult,Microsoft.Azure.Commands.Compute.Extension.DSC.SetAzureVMDscExtensionCommand

Однако на портале Azure я откопал более подробный журнал, он очень длинный, поэтому я опубликую здесь только ту часть, которая, по моему мнению, связана с самой ошибкой:

 [ERROR] An error occurred while executing script or module 'Run-DSCPython':
  The specified module 'Run-DSCPython' was not loaded because no valid module file
 was found in any module directory.

Есть идеи, что мне здесь нужно? Какой модуль он ищет?


person AllTradesJack    schedule 29.12.2016    source источник
comment
немного обновил свой ответ.   -  person 4c74356b41    schedule 29.12.2016
comment
Модуль - это ваш модуль из _1 _... это должно быть Run-DSCPython.ps1.zip или Run-DSCPython.psm1.zip в зависимости от файла, включенного в zip-архив. Если вы включите список того, что находится в zip-архиве, я могу дать более точный ответ.   -  person TravisEz13    schedule 29.12.2016


Ответы (1)


Хотя это не совсем ответ на ваш вопрос, я бы предложил вам скомпилировать mofs в Azure Automation и зарегистрировать свои виртуальные машины как узлы в Azure Automation, процесс немного длинный, чтобы описать здесь, я напишу краткое руководство:

# You can compile mof on your own PC and import, or compile in Azure Automation (preferred way)
<# 
 Import-AzureRmAutomationDscNodeConfiguration -Path "C:\localhost.mof" -ConfigurationName $configurationName `
   -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName -Force
#>

$AutomationAccountName = "Automation"
$ResourceGroupName = "Azure"
$Location = "West Europe"
$VnetName = "VNet"

$configurationName = "Configuration-1"
$credName = "Name of credential asset in Azure Automation"
$nodeName = "localhost"
$StorageAccountName = "something"


# Import Configuration
$sourcePath = "C:\DSC.ps1"
Import-AzureRmAutomationDscConfiguration -SourcePath $sourcePath  `
   -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName -Published -Force


# Compile mof
$ConfigurationData = @{ 
    AllNodes = @(
        @{
            NodeName = $nodeName
            PSDscAllowPlainTextPassword = $true
            RebootNodeIfNeeded = $true
            DebugMode = "All"
        }
    )
}

$Parameters = @{
    "storageAccountName" = $storageAccountName
    "nodeName" = $nodeName
    "credential" = $credName
}

Start-AzureRmAutomationDscCompilationJob -ResourceGroupName $ResourceGroupName -AutomationAccountName $AutomationAccountName `
    -ConfigurationName $configurationName -Parameters $Parameters -ConfigurationData $ConfigurationData 

# Register VM and apply mof
$VmName = "VM-Name";

Register-AzureRmAutomationDscNode -AutomationAccountName $AutomationAccountName -AzureVMName $VmName `
  -ResourceGroupName $ResourceGroupName -NodeConfigurationName "$configurationName.localhost"

Изменить: забыл рассказать вам причину, я потратил 2-3 недели, пытаясь заставить расширение DSC работать НАДЕЖНО. Я с треском провалился, с другой стороны, служба автоматизации Azure была гораздо более надежной, хотя и очень сложной вначале.

person 4c74356b41    schedule 29.12.2016