Ansible结合跳板机控制远程服务器

Ansible结合跳板机控制远程服务器
服务器

在ansible的使用过程当中,存在这样的场景,ansible所在的管理节点与被管理的机器须要 经过一个跳板机才能链接,没法直接链接。网上搜了一下,要解决这个问题,并不须要在 ansible里作什么处理,而是在ssh链接层面解决这个问题。ssh

好比,ide

咱们有三类节点:

    管理节点,admin.example.com,是执行ansible命令的服务器

    被管理的节点,internal1.example.com, internal2.example.com

    跳板机,bastion.example.com

管理节点不能直连 internal1 & internal2,须要经过跳板机创建链接。

管理节点链接跳板机的方式以下:

  ssh -i keyfile_bastion -p 12345 user@bastion.example.com

从跳板机链接internal节点的方式以下:

  ssh -i keyfile_internal -p 23456 user@internal1.example.com
  ssh -i keyfile_internal -p 23456 user@internal2.example.com

解决方案:code

修改 ~/.ssh/config,加入以下的配置项,域名

Host internal1.example.com internal2.example.com
    User user
    Port 23456
    IdentityFile=keyfile_internal
    ProxyCommand ssh -qaY -i keyfile_bastion -p 12345 user@bastion.example.com 'nc -w 14400 %h %p'

            注意这地方的1key 就是执行机器的位置。2域名跳板机也写hosts 作解析。3.本机器hosts也要作解析。

这样,就能够直接从节点 admin.example.com 执行下面的命令直接链接internal1.example.com了it

ssh user@internal1.example.com

ansible中也能够将internal节点当作能够直接链接的机器来使用io

ansible -i host -m setup internal1.example.com
相关文章
相关标签/搜索