#powershell #ansible #winrm
#powershell #ansible #winrm
Вопрос:
Чтобы настроить Windows Server в качестве хоста Ansible, я пытаюсь настроить WinRM, следуя официальной документации, представленной вhttps://docs.ansible.com/ansible/latest/user_guide/windows_setup.html.
Я застрял на шаге «Настройка прослушивателя WinRM» с выполнением следующего comannd, что приводит к ошибке, как описано ниже:
PS C:UsersAdministrator> New-WSManInstance -ResourceURI "winrm/config/Listener" -SelectorSet $selector_set -ValueSet $value_set
New-WSManInstance : The WS-Management service cannot find the certificate that was requested.
At line:1 char:1
New-WSManInstance -ResourceURI "winrm/config/Listener" -SelectorSet $ ...
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
CategoryInfo : InvalidOperation: (:) [New-WSManInstance], InvalidOperationException
FullyQualifiedErrorId : WsManError,Microsoft.WSMan.Management.NewWSManInstanceCommand
Ниже приведены значения моих «selector_set» и «value_set», которые также установлены в соответствии с документом.
PS C:UsersAdministrator> $selector_set
Name Value
---- -----
Transport HTTPS
Address *
PS C:UsersAdministrator> $value_set
Name Value
---- -----
CertificateThumbprint E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE
ОПЕРАЦИОННАЯ система: Windows Server 2012 R2
Комментарии:
1. Какая версия PowerShell? Вам следует обновиться до версии 5.1, если вы еще этого не сделали.
2.
E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE
это фиктивное значение, вам необходимо заменить его отпечатком действительного сертификата, установленного в хранилище сертификатов на компьютере. ИспользуетсяGet-ChildItem cert:LocalMachineMy
для составления списка установленных сертификатов
Ответ №1:
Это может быть не сразу очевидно, но если вы перечитаете последнюю часть раздела, непосредственно предшествующую шагу «Настройка прослушивателя WinRM» (выделено мной):
При запуске через прослушиватель HTTPS это отпечаток большого пальца сертификата в хранилище сертификатов Windows, который используется при подключении. Чтобы получить подробную информацию о самом сертификате, запустите эту команду с соответствующим отпечатком пальца сертификата в PowerShell:
$thumbprint = "E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE" Get-ChildItem -Path cert:LocalMachineMy -Recurse | Where-Object { $_.Thumbprint -eq $thumbprint } | Select-Object *
Это говорит нам о том, что E6CDAA82EEAF2ECE8546E05DB7F3E01AA47D76CE
это всего лишь пример — вам нужно предоставить отпечаток фактического сертификата, выданного компьютеру.
Чтобы перечислить все существующие сертификаты, установленные в хранилище сертификатов компьютеров с помощью PowerShell, просто удалите Where-Object
предложение из команды example:
Get-ChildItem -Path cert:LocalMachineMy -Recurse
Если не установлен соответствующий сертификат, вам придется установить его. Вы можете либо сгенерировать самозаверяющий сертификат, приобрести сертификат у поставщика центра сертификации, либо зарегистрироваться для получения сертификата в своем внутреннем центре сертификации, если в среде настроены службы сертификатов Active Directory или аналогичный PKI.
Комментарии:
1. Попал в точку! Неловко, что я не дочитал до конца!!! Спасибо. 🙂
2. @VishwasM.R Хаха, всегда пожалуйста, и не нужно смущаться — я заметил это только потому, что я, вероятно, сделал бы то же самое сам, если бы настраивал WinRM в первый раз ^_^