ChefDK - WinRM переключается на базовую аутентификацию, когда предоставляются учетные данные домена.
Я использую ChefDK 0.3.5 на Windows 7 64bit. У меня возникла небольшая проблема при попытке использовать Chef и WinRM для выполнения команды chef-client на удаленном сервере. Команда, которую я выдаю, находится ниже:
C:\U\user1> knife winrm "fqdn:testserver.*" "netstat" -x 'domain\user1' -P 'password'
WARNING: Switching to Negotiate authentication, Basic does not support Domain Authentication
ERROR: RuntimeError: Error: Unencrypted communication not supported. Please check winrm configuration winrm/config/service AllowUnencrypted flag.
Результат, который я получил, не позволяет мне делать то, что я хочу. Таким образом, я погуглил это и увидел что-то о не проверке SSL или использовании :verify_peer
, который ничего не сделал. Поэтому я снова выполнил команды настройки WinRM в командной строке, потому что PowerShell сообщает мне их ошибку.
C:\Users\user1>C:\WIndows\System32\cmd.exe /c winrm set winrm/config/winrs @{MaxMemoryPerShellMB="300"}
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 10
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 25
MaxMemoryPerShellMB = 300
MaxShellsPerUser = 30
C:\Users\user1>C:\WIndows\System32\cmd.exe /c winrm set winrm/config @{MaxTimeoutms="1800000"}
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 1800000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Auth
Basic = true
Digest = true
Kerberos = true
Negotiate = true
Certificate = true
CredSSP = false
DefaultPorts
HTTP = 5985
HTTPS = 5986
TrustedHosts
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;G
XGW;;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
Auth
Basic = false
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
Winrs
AllowRemoteShellAccess = true
IdleTimeout = 7200000
MaxConcurrentUsers = 10
MaxShellRunTime = 2147483647
MaxProcessesPerShell = 25
MaxMemoryPerShellMB = 300
MaxShellsPerUser = 30
C:\Users\user1>C:\WIndows\System32\cmd.exe /c winrm set winrm/config/service@{AllowUnencrypted="true"}
Service
RootSDDL = O:NSG:BAD:P(A;;GA;;;BA)(A;;GR;;;IU)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;
;;WD)
MaxConcurrentOperations = 4294967295
MaxConcurrentOperationsPerUser = 1500
EnumerationTimeoutms = 240000
MaxConnections = 300
MaxPacketRetrievalTimeSeconds = 120
AllowUnencrypted = true
Auth
Basic = false
Kerberos = true
Negotiate = true
Certificate = false
CredSSP = false
CbtHardeningLevel = Relaxed
DefaultPorts
HTTP = 5985
HTTPS = 5986
IPv4Filter = *
IPv6Filter = *
EnableCompatibilityHttpListener = false
EnableCompatibilityHttpsListener = false
CertificateThumbprint
AllowRemoteAccess = true
После выполнения этих команд я пытаюсь снова, и ChefDK смотрит на меня, как будто я глупый. Я не уверен, почему Chef пытается использовать базовую аутентификацию, тогда я даю ему учетные данные домена. Это также работало ранее, но я должен был получить новый компьютер и мои заметки, и установки были потеряны. Есть какие-нибудь идеи о том, чего мне не хватает? Если мне не хватает какой-либо информации, дайте мне знать, и я обновлю свой вопрос.
1 ответ
Команда клиента говорит вам:
Unencrypted communication not supported. Please check winrm configuration winrm/config/service AllowUnencrypted flag.
Ваша конфигурация, выведенная из результата команды timeout, сообщает вам:
Config
MaxEnvelopeSizekb = 500
MaxTimeoutms = 1800000
MaxBatchItems = 32000
MaxProviderRequests = 4294967295
Client
NetworkDelayms = 5000
URLPrefix = wsman
AllowUnencrypted = false
Вам нужно установить флаг AllowUnencrypted в true, запустив команду:
winrm set winrm/config/service @{AllowUnencrypted="true"}
В последних версиях GitHub для окон-ножей добавлены команды для создания SSL-сертификатов и ужесточения соединения, что, надеюсь, вы захотите сделать, когда будете готовы.