在Ansible中,如何连接到Windows主机?

时间:2016-07-08 05:25:31

标签: ansible ansible-2.x

我一直坚持使用Ansible窗口模块。我只是想ping Windows机器。但我得到'连接超时'

主机

[windows]
192.168.1.13

group_vars / windows.yaml

ansible_user: raja
ansible_password: myPassword
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore

我跑的时候:ansible windows -vvv -i hosts -m win_ping

Using /etc/ansible/ansible.cfg as config file
<192.168.1.13> ESTABLISH WINRM CONNECTION FOR USER: raja on PORT 5986 TO 192.168.1.13
192.168.1.13 | UNREACHABLE! => {
"changed": false,
"msg": "ssl: HTTPSConnectionPool(host='192.168.1.13', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<requests.packages.urllib3.connection.VerifiedHTTPSConnection object at 0x7fcb12024a90>, 'Connection to 192.168.1.13 timed out. (connect timeout=30)'))",
"unreachable": true
}

但是我可以使用ping 192.168.1.13

ping该Windows机器

2 个答案:

答案 0 :(得分:11)

您需要准备Windows机器以进行PowerShell远程管理,否则ansible将无法连接到它。要使大多数功能正常工作,您至少需要PowerShell 3.0 installed(仅在Windows 7 SP1或Windows Server 2008 SP1及更高版本上受支持),并且还运行this script,这不仅会启用WinRM,还要安装一些必要的证书才能使连接正常工作。

下载ConfigureRemotingForAnsible.ps1文件后,命令行中的以下命令应该可以完成这项工作:

  

powershell.exe -File ConfigureRemotingForAnsible.ps1

答案 1 :(得分:0)

如果您使用新鲜的 azure vm 和 aws ec2 并且遇到问题

#include <iso646.h>

解决方案: 只需在 Windows VM 的入站规则中添加以下规则即可。

  • WINRM-HTTPS
  • ICMP4