我目前正在成功使用Ansible在AWS的专用子网中的主机上运行任务,以下group_vars正在设置该主机:
ansible_ssh_common_args: '-o ProxyCommand="ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -W %h:%p -q ec2-user@bastionhost@example.com"'
这很好。
对于不在私有子网中的Windows实例,可以使用以下group_vars:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
现在,仅通过使用ProxyCommand尝试使Ansible部署到堡垒后的Windows服务器将不起作用-据我所知。 我相信尽管有一个可以使用的新协议/模块psrp。
我想我的Windows主机的group_vars需要更改为以下内容:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: psrp
ansible_psrp_cert_validation: ignore
如果仅对公开可用的实例进行上述更改(并且不尝试通过堡垒连接),我的任务似乎可以正常工作
Using module file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/modules/windows/win_shell.ps1
<10.100.11.14> ESTABLISH PSRP CONNECTION FOR USER: Administrator ON PORT 5986 TO 10.100.11.14
PSRP: EXEC (via pipeline wrapper)
我知道必须进行更多更改,然后才能在堡垒后面的Windows服务器上尝试此操作,但是无论如何都要运行它,以查看出现的错误为我提供下一步操作的线索。在堡垒服务器后的瞬间运行以下结果:
Using module file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/ansible/modules/windows/setup.ps1
<10.100.11.14> ESTABLISH PSRP CONNECTION FOR USER: Administrator ON PORT 5986 TO 10.100.11.14
The full traceback is:
.
.
.
.
ConnectTimeout: HTTPSConnectionPool(host='10.100.11.14', port=5986): Max retries exceeded with url: /wsman (Caused by ConnectTimeoutError(<urllib3.connection.VerifiedHTTPSConnection object at 0x110bbfbd0>, 'Connection to 10.100.11.14 timed out. (connect timeout=30)'))
似乎Ansible忽略了我的group_vars的ProxyCommand-我不确定这是否是预期的。 我也不确定下一步如何使Ansible部署到堡垒后的Windows服务器。
我缺少什么配置?
答案 0 :(得分:0)
doc says,ansible_ssh_common_args
设置被附加到sftp,scp和ssh命令。因此,对我来说,在使用winrm
或psrp
ansible_connection
时没有考虑到这一点很正常。
如评论中的the link provided by Pouyan中所述,ansible_psrp_proxy
变量将用于提供代理信息。
ansible_connection: psrp
ansible_psrp_proxy=socks5h://localhost:1234
有关创建袜子代理的更多信息,请访问:https://www.bloggingforlogging.com/2018/10/14/windows-host-through-ssh-bastion-on-ansible/