我目前已成功使用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"'
Run Code Online (Sandbox Code Playgroud)
一切正常。
对于不在私有子网中的Windows实例,可以进行以下group_vars工作:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: winrm
ansible_winrm_server_cert_validation: ignore
Run Code Online (Sandbox Code Playgroud)
现在,仅通过使用ProxyCommand将无法使Ansible部署到堡垒后面的Windows服务器上就行了-据我所知。我相信尽管有一个可以使用的新协议/模块psrp。
我想group_vars我的Windows主机需要更改为以下内容:
---
ansible_user: "AnsibleUser"
ansible_password: "Password"
ansible_port: 5986
ansible_connection: psrp
ansible_psrp_cert_validation: ignore
Run Code Online (Sandbox Code Playgroud)
如果仅对公开可用的实例进行上述更改(并且不尝试通过堡垒连接),则我的任务似乎正常运行:
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)
Run Code Online (Sandbox Code Playgroud)
我知道必须进行更多更改,然后才能在堡垒后面的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 …Run Code Online (Sandbox Code Playgroud)