我正在尝试从我的ansible服务器(Centos7)连接到Windows Server 2012。
我们假设它的主机是x,端口是y
我设法连接到其他基于Linux的服务器,但我无法连接到Windows。
我跟着the tutorial here,在完成所有设置和配置后,我收到以下错误:
root@localhost: ansible# ansible windows -i hosts -m win_ping --ask-vault-pass
Vault password:
WindowsServer | UNREACHABLE! => {
"changed": false,
"msg": "ssl: HTTPSConnectionPool(host='x', port=y): Max retries exceeded with url: /wsman (Caused by ProxyError('Cannot connect to proxy.', error('Tunnel connection failed: 403 Forbidden',)))",
这是我的group_vars / windows.yml文件:
# it is suggested that these be encrypted with ansible-vault:
# ansible-vault edit group_vars/windows.yml
ansible_user: Administrator
ansible_password: password
ansible_port: y
ansible_connection: winrm
这是我的主机文件摘要:
[windows]
WindowsServer ansible_host=x
我确实配置了Windows服务器with this file。
请帮忙,我不知道如何使连接正常工作。
答案 0 :(得分:1)
正如来自ansible google小组的J和Mike建议:
出现错误的原因是环境变量HTTP_PROXY和HTTPS_PROXY,它们是从系统中使用的。
要让ansible知道您正在使用代理,您必须:
1。找到pywinrm附带的transport.py
2.修改以下行session.trust_env使其成为假。
125 # configure proxies from HTTP/HTTPS_PROXY envvars
126 # session.trust_env = True
127 session.trust_env = False
3。 pywinrm将不再检查您的本地env是否有代理。
之后我还需要在group_vars / windows.yml文件中再添加一个变量:
ansible_winrm_server_cert_validation: ignore