在堡垒后向Windows主机进行Ansible部署

时间:2019-04-12 14:00:23

标签: amazon-web-services ansible

我目前正在成功使用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服务器。

我缺少什么配置?

1 个答案:

答案 0 :(得分:0)

doc saysansible_ssh_common_args设置被附加到sftp,scp和ssh命令。因此,对我来说,在使用winrmpsrp 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/