问题 使用ansible SSH到远程服务器


我正在使用ansible来自动执行某些任务。其中一个要求我ssh到服务器A,然后从A到B再从B到B.然后我似乎无法找到任何方法来做到这一点。有什么建议么?


10588
2017-12-26 20:02


起源

您是否已经阅读过如何使用Ansible处理堡垒/跳转主机的文章?如果是这样,你尝试过使用它吗? - Mxx
谢谢!我不知道这件事。我现在已经完成了这一切。 - K G
请考虑为其他用户回答您自己的问题:) - magnetik
是的,请在您能够设置的内容上发布答案,以便其他人可以从中学习。 - Mxx
你找到了解决方案吗? - Robert


答案:


鉴于你不使用Paramiko为ssh(transport = ssh),Ansible将充分利用您的 ~/.ssh/config。因此,您可以在ssh配置中全局定义所有连接规则。

如果由于某种原因您希望Ansible不使用您的默认ssh配置但提供单独的配置,您可以在您的 ansible.cfg

[ssh_connection]
ssh_args= -F "/path/to/ssh/config/specifically/for/ansible"

在您的ssh配置中,然后设置连接规则。坚持你的榜样:

Host HostA
  HostName real-host-name-A.com

Host HostB
  HostName real-host-name-B.com
  ProxyCommand ssh -q HostA nc %h %p

Host HostC
  HostName real-host-name-C.com
  ProxyCommand ssh -q HostB nc %h %p
  • 与A的连接是直接的
  • 与B的连接通过A.
  • 与C的连接通过B,通过A

14
2018-02-01 02:11