У меня возникают трудности с подключением компьютера Windows к автоматизации Azure DSC. Я получаю следующую ошибку:
Registration of the Dsc Agent with the server https://azureserver/accounts/XXXXXXXXXXXXXXXXXXXX failed. The underlying error is: The attempt to register Dsc Agent with AgentId XXXXXXXXXXXXXXXXXXXXXX with the server https://azureserver/accounts/XXXXXXXXXXXXXXXXXXXX/Nodes(AgentId='XXXXXXXXXXXXXXXXXXXXXX') returned unexpected response code Unauthorized. . + CategoryInfo : InvalidResult: (root/Microsoft/...gurationManager:String) [], CimException + FullyQualifiedErrorId : RegisterDscAgentUnsuccessful,Microsoft.PowerShell.DesiredStateConfiguration.Commands.RegisterDscAgentCommand + PSComputerName : AZURE-TEST
Вот моя мета-конфигурация mof
param ( [Parameter(Mandatory=$True)] [String]$RegistrationUrl, [Parameter(Mandatory=$True)] [String]$RegistrationKey, [Parameter(Mandatory=$True)] [String[]]$ComputerName, [Int]$RefreshFrequencyMins = 30, [Int]$ConfigurationModeFrequencyMins = 15, [String]$ConfigurationMode = "ApplyAndMonitor", [String]$NodeConfigurationName ) [DscLocalConfigurationManager()] Configuration DscMetaConfigs { param ( [Parameter(Mandatory=$True)] [String]$RegistrationUrl, [Parameter(Mandatory=$True)] [String]$RegistrationKey, [Parameter(Mandatory=$True)] [String[]]$ComputerName, [Int]$RefreshFrequencyMins = 30, [Int]$ConfigurationModeFrequencyMins = 15, [String]$ConfigurationMode = "ApplyAndMonitor", [String]$NodeConfigurationName, [Boolean]$RebootNodeIfNeeded= $False, [String]$ActionAfterReboot = "ContinueConfiguration", [Boolean]$AllowModuleOverwrite = $False, [Boolean]$ReportOnly = $False ) if(!$NodeConfigurationName -or $NodeConfigurationName -eq "") { $ConfigurationNames = $null } else { $ConfigurationNames = @($NodeConfigurationName) } if($ReportOnly) { $RefreshMode = "PUSH" } else { $RefreshMode = "PULL" } Node $ComputerName { Settings { RefreshFrequencyMins = $RefreshFrequencyMins RefreshMode = $RefreshMode ConfigurationMode = $ConfigurationMode AllowModuleOverwrite = $AllowModuleOverwrite RebootNodeIfNeeded = $RebootNodeIfNeeded ActionAfterReboot = $ActionAfterReboot ConfigurationModeFrequencyMins = $ConfigurationModeFrequencyMins } if(!$ReportOnly) { ConfigurationRepositoryWeb AzureAutomationDSC { ServerUrl = $RegistrationUrl RegistrationKey = $RegistrationKey ConfigurationNames = $ConfigurationNames } ResourceRepositoryWeb AzureAutomationDSC { ServerUrl = $RegistrationUrl RegistrationKey = $RegistrationKey } } ReportServerWeb AzureAutomationDSC { ServerUrl = $RegistrationUrl RegistrationKey = $RegistrationKey } } } DscMetaConfigs -RegistrationUrl $RegistrationUrl -RegistrationKey $RegistrationKey -ComputerName $env:COMPUTERNAME -NodeConfigurationName $NodeConfigurationName
У меня есть сценарий, который позволяет конечному пользователю вводить необходимую информацию (регистрационные ключи, URL-адрес и т. Д.), Генерирует метаморфизм, а затем передает его в LCM. Но я получаю вышеупомянутую ошибку, когда пытаюсь выполнить.
Вот соответствующий журнал ошибок событий DSC
Job {6E7C0C83-BD69-11E7-BD75-005056852B86} : Http Client XXXXXXXXXXXXXXXXXXXXXX failed for WebReportManager for configuration FullyQualifiedErrorId :ReportManagerSendStatusReportUnsuccessful CategoryInfo:InvalidResult: (:) [], InvalidOperationException ExceptionMessage:The attempt to send status report to the server https://azureserver/accounts/XXXXXXXXXXXXXXXXX/Nodes(AgentId='XXXXXXXXXXXXXXXXXXXXXXXXX')/SendReport returned unexpected response code Unauthorized. , InnerException .
У кого-нибудь есть идеи, в чем может быть проблема? Учитывая ошибку, я предполагаю, что это связано с разрешениями / аутентификацией, но я не уверен, что это может быть, кроме ключа, который я дважды проверил, чтобы убедиться, что он правильный.
У меня была точно такая же проблема, и я наконец нашел решение.
Удалить все различные DSC-Oaas
сертификаты на сервере (с помощью Powershell):
gci cert: -Recurse | where friendlyname -eq "DSC-OaaS Client Authentication" | Remove-Item -Verbose
Затем зарегистрируйте сервер в службе автоматизации Azure.
Просматривая журналы DSC в EventViewer, я нашел несколько интересных записей. Обратите внимание на Job
идентификатор.
Просматривая список записей, убедитесь, что вы просматриваете записи с одинаковыми Job
идентификатор, я нашел запись, сообщающую мне, какой сертификат использовался при обмене данными с службой автоматизации Azure:
Я нашел сертификат в хранилище сертификатов локального компьютера вместе с кучей других аналогичных сертификатов.
Когда я удалил все сертификаты с friendlyname = DSC-OaaS Client Authentication
gci cert: -Recurse | where friendlyname -eq "DSC-OaaS Client Authentication" | Remove-Item -Verbose
..и успешно зарегистрировал сервер в службе автоматизации Azure.
Вы можете получить регистрационные ключи, URL-адрес на портале Azure.
Для получения дополнительной информации обратитесь к этому официальный документ.