web-dev-qa-db-ja.com

オンプレミスでのAzureDSC Automationへの参加の失敗(応答コード:未承認)

WindowsマシンをAzureDSC自動化に参加させるのに問題があります。次のエラーが発生します:

サーバーhttps:// azureserver/accounts/XXXXXXXXXXXXXXXXXXXXへのDscエージェントの登録に失敗しました。根本的なエラーは次のとおりです。DscエージェントをAgentId 
 XXXXXXXXXXXXXXXXXXXXXXでサーバーhttps:// azureserver/accounts/XXXXXXXXXXXXXXXXXXXX/Nodes(AgentId = 'XXXXXXXXXXXXXXXXXXXXXX')に登録しようとすると、予期しない応答コード
 。 。
 + 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-または$ NodeConfigurationName -eq "")
 {
 $ ConfigurationNames = $ null 
} 
 else 
 {
 $ ConfigurationNames = @($ NodeConfigurationName)
} 
 
 if($ ReportOnly)
 {
 $ RefreshMode = "Push" 
} 
 else 
 {
 $ RefreshMode = "PULL" 
} 
 
 Node $ ComputerName 
    {

        設定
        {
 RefreshFrequencyMins = $ RefreshFrequencyMins 
 RefreshMode = $ RefreshMode 
 ConfigurationMode = $ ConfigurationMode 
 AllowModuleOverwrite = $ AllowModuleOverwrite 
 RebootNodeIfNeeded = $ RebootNodeIfNeeded [.____ .____。] 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など)を入力し、メタmofを生成して、それをLCMにフィードできるようにするスクリプトがあります。しかし、実行しようとすると、前述のエラーが発生します。

関連するDSCイベントエラーログは次のとおりです

ジョブ{6E7C0C83-BD69-11E7-BD75-005056852B86}:
 HttpクライアントXXXXXXXXXXXXXXXXXXXXXXが構成のWebReportManagerで失敗しました
 FullyQualifiedErrorId:ReportManagerSendStatusReportUnsuccessful 
 CategoryInfo:In )[]、InvalidOperationException 
 ExceptionMessage:ステータスレポートをサーバーに送信しようとしましたhttps:// azureserver/accounts/XXXXXXXXXXXXXXXXX/Nodes(AgentId = 'XXXXXXXXXXXXXXXXXXXXXXXXX')/ SendReportが予期しない応答コードを返しました。 。]、InnerException 
。

何が問題になるのかについて誰かが何か考えを持っていますか?エラーを考えると、それは権限/認証に関連していると思いますが、キー以外に何ができるかわかりません。キーが正しいことを確認するために再確認しました。

4
John Doe

私はまったく同じ問題を抱えていました、そして最終的に私は解決策を見つけました。

tldr;

サーバー上のさまざまなDSC-Oaas証明書をすべて削除します(Powershellを使用)。

 gci cert: -Recurse | where friendlyname -eq "DSC-OaaS Client Authentication" | Remove-Item -Verbose

次に、サーバーをAzureAutomationに登録します。

説明

EventViewerのDSCログを調べたところ、興味深いエントリがいくつか見つかりました。 Job識別子に注意してください。

Log level Error

エントリのリストをさらに下に見て、同じJob識別子を持つエントリを確認すると、AzureAutomationへの通信で使用された証明書を示すエントリが見つかりました。

Log level Information

証明書は、他の同様の証明書と一緒に、ローカルマシンの証明書ストアにありました。

Found the cert

All certificates

friendlyname = DSC-OaaS Client Authenticationですべての証明書を削除したとき

gci cert: -Recurse | where friendlyname -eq "DSC-OaaS Client Authentication" | Remove-Item -Verbose

..サーバーをAzureAutomationに正常に登録しました。

1
staale.skaland

Azureポータルで登録キーとURLを取得できます。

enter image description here

詳細については、こちらをご覧ください 公式文書

0
Shui shengbao