Ansible以本地用户身份连接到Windows主机 - 错误401/500

时间:2015-10-20 11:36:03

标签: ansible winrm

尝试使用Ansible与Windows主机通信时出现401/500错误。

[root@rhel7]# ansible windows -i hosts.ini -m win_ping -vvvv
<192.168.10.10> ESTABLISH WINRM CONNECTION FOR USER: ansibleuser on PORT 5985 TO 192.168.10.10
<192.168.10.10> WINRM CONNECT: transport=plaintext endpoint=http://192.168.10.10:5985/wsman
<192.168.10.10> WINRM CONNECTION ERROR: 401 Unauthorized.
<192.168.10.10> WINRM CONNECT: transport=plaintext endpoint=https://192.168.10.10:5985/wsman
<192.168.10.10> WINRM CONNECTION ERROR: 500 WinRMTransport. [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol
192.168.10.10 | FAILED => 500 WinRMTransport. [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol

hosts.ini:

[windows]
192.168.10.10 

[windows:vars]
ansible_ssh_user=ansibleuser 
ansible_ssh_password=password
ansible_ssh_port=5985
ansible_connection=winrm

用户ansibleuser是本地用户,具有本地管理员权限。 Ansible版本是1.9.2

我可以使用RDP成功连接到服务器,winrm设置看起来正确,防火墙已禁用。

我使用tcpdump来获取HTTP头,请求hasn&#39; t授权参数。没有任何想法。

POST /wsman HTTP/1.1
Accept-Encoding: identity
Content-Length: 0
Host: 192.168.10.10:5985
Content-Type: application/soap+xml;charset=UTF-8
Connection: close
User-Agent: Python WinRM client

请帮我解决这个问题,谢谢

1 个答案:

答案 0 :(得分:4)

官方Ansible文档中的原因是错误的:ansible_ssh_password是不正确的参数,正确的是ansible_ssh_pass