【发布时间】:2015-02-24 23:48:58
【问题描述】:
我按照 Ansible 网站上的说明进行操作, 但是当我尝试与 Windows 节点通信时,我仍然面临一个简单的“win_ping”命令的问题:
Ansible
版本:1.8.2
Windows 机器
操作系统:Windows Server 2012 标准版
电源外壳:v3.0
我得到的错误:
[root@fgr-lgchefap101 group_vars]# ansible windows -m win_ping -vvvv
<fgr-wgcitmp201> ESTABLISH WINRM CONNECTION FOR USER: devci on PORT 5986 TO fgr-wgcitmp201
<fgr-wgcitmp201> WINRM CONNECT: transport=plaintext endpoint=https://fgr-wgcitmp201:5986/wsman
<fgr-wgcitmp201> WINRM CONNECTION ERROR: 500 WinRMTransport. [Errno 8] _ssl.c:492: EOF occurred in violation of protocol
<fgr-wgcitmp201> WINRM CONNECT: transport=plaintext endpoint=http://fgr-wgcitmp201:5986/wsman
<fgr-wgcitmp201> WINRM CONNECTION ERROR: 500 WinRMTransport. Bad HTTP response returned from server. Code 503, Service Unavailable
fgr-wgcitmp201 | FAILED => 500 WinRMTransport. Bad HTTP response returned from server. Code 503, Service Unavailable
我需要这方面的帮助,谢谢。
---- 更新 ---
我在 windows 节点上启动了这个 powershell 命令:
> netsh advfirewall firewall add rule Profile=public name="Allow WinRM HTTPS" dir=in localport=5986 protocol=TCP action=allow
然后我得到以下错误
[root@fgr-lgchefap101 fadhely]# ansible windows -m win_ping -vvvv
<fgr-wgcitmp201> ESTABLISH WINRM CONNECTION FOR USER: devci on PORT 5986 TO fgr-wgcitmp201
<fgr-wgcitmp201> WINRM CONNECT: transport=plaintext endpoint=https://fgr-wgcitmp201:5986/wsman
<fgr-wgcitmp201> WINRM CONNECTION ERROR: 401 Unauthorized. basic auth failed
<fgr-wgcitmp201> WINRM CONNECT: transport=plaintext endpoint=http://fgr-wgcitmp201:5986/wsman
<fgr-wgcitmp201> WINRM CONNECTION ERROR: 500 WinRMTransport. [Errno 104] Connection reset by peer
fgr-wgcitmp201 | FAILED => 500 WinRMTransport. [Errno 104] Connection reset by peer
【问题讨论】:
-
我和你一样使用过针对 Windows 服务器的 Ansible,我发现这个模块太不成熟了(那是 2 个月前的事,也许从那时起这已经改变了)。我的解决方法(并且仍然像魅力一样工作)是安装 cygwin 并启用 ssh。然后我就将它们用作任何其他 Linux 服务器。