2015-10-20 42 views
1

我嘗試使用Ansible與Windows主機進行通信時出現401/500錯誤。Ansible以本地用戶身份連接到Windows主機 - 錯誤401/500

[[email protected]]# 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頭,請求沒有授權參數。沒有關於它的想法。

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 

請幫我看看這個問題,謝謝

回答

4

原因是官方Ansible文檔中的錯誤:ansible_ssh_password是不正確的參數,正確的是ansible_ssh_pass

+1

You're正確的 - 有完全相同的問題。但是從Ansible 2.x開始,變量名稱又改變了:'ansible_user', 'ansible_password'&'ansible_port'。 'ansible_connection'沒有改變。 – jonashackt

相關問題