Ansible机器的 /root/.ssh/config 配置如下即可:

Host 目标机器IP
User root
IdentityFile=/root/.ssh/xxx_id_rsa
ProxyCommand ssh -qaY -i /root/.ssh/id_rsa root@跳板机IP 'nc -w 14400 %h %p'
~

Host 目标机器IP.*

IdentityFile=/root/.ssh/lan
ProxyCommand ssh root@跳板机IP -W %h:%p
ServerAliveInterval 30
ControlMaster no
ControlPath /tmp/%r@%h-%p.ssh
ControlPersist 600

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

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

比如,

  • 我们有三类节点:

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

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

    3. 跳板机,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

解决方案:

修改 ~/.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'

这样,就可以直接从节点 admin.example.com 执行下面的命令直接连接internal1.example.com了

    ssh user@internal1.example.com

ansible中也可以将internal节点当做可以直接连接的机器来使用

    ansible -i host -m setup internal1.example.com

参考文档:

【自动部署】Ansible 怎么通过堡垒机/跳板机 访问目标机器的更多相关文章

  1. 运维堡垒机(跳板机)系统 python

    相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. A ...

  2. ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)

    一. 需求背景: 在我们使用ansible的过程中经常会遇到这样的情况,我们要管理的机器都在内网中,这些内网机器的登录都是通过跳板机或者堡垒机登录.我们的ansible机器不能直接管理到这些后端的机器 ...

  3. Xcode6.3真机测试无法选择目标机器问题

    Xcode刚刚升级到了6.3版本,但是真机测试出现了一点问题.对于某些手机无法选中,如下: 上图中的“xxoo的iPhone”无法选中,不过这个问题在stackoverflow中有解答,可以通过其他手 ...

  4. 【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机

    转自:http://mingxinglai.com/cn/2015/07/ssh-proxycommand/ 今天在公司搭建跳板机,遇到一个比较麻烦的问题,这里简单记录一下,希望对有相同问题的人有所帮 ...

  5. Ansible跳板机自动部署

    首先,安装ansible,略过此步骤. 一.控制机(jenkens.ansible所在机器与跳板机之间互信,跳板机与目的机之间互信) 1.在客户端生成公钥私钥对 命令:ssh-keygen -t rs ...

  6. SecureCRT自动登录跳板机/堡垒机并连接目标机器

    公司登录目标服务器,需要先登录跳板机(堡垒机),然后再登录目标机器,一共需要4.5步. MAC或LINUX机器可以写.SH脚本,那WINDOWS有没有一键登陆的方法呢? 常用的SecureCRT工具就 ...

  7. linux Jumpserver跳板机 /堡垒机详细部署

    关于跳板机/堡垒机的介绍: 跳板机的定义: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点: 没有实现对运维人员操作行为的 ...

  8. CentOS7 开源跳板机(堡垒机) Jumpserver

    开源跳板机(堡垒机)Jumpserver 环境 CentOS 7   x64       关闭 selinux  firewalld jumpserver: 172.24.0.14 testserve ...

  9. CentOS 7 搭建Jumpserver跳板机(堡垒机)

    跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...

随机推荐

  1. nginx配置文件详解( 看着好长,其实不长,看了就知道了,精心整理,有些配置也是没用到呢 )

    user www www; #定义Nginx运行的用户和用户组        worker_processes ; #nginx进程数,建议设置为CPU核数2倍. error_log var/log/ ...

  2. fastjson是阿里巴巴的开源JSON解析库

    fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...

  3. Nginx 支持 WAF 防护功能实战

    WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提 ...

  4. gradle init.gradle的文件配置 使用

    init.gradle文件在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作例如配置build日志输出.配置你的机器信息,比如jdk安装目录,配置在build时必须个人信息,比如 ...

  5. Linq 操作基础

    参考资料: LINQ系列:LINQ to DataSet的DataTable操作 List<T>转换为DataTable C# DataTable 和List之间相互转换的方法 Linq中 ...

  6. linux下定时执行任务方法【转】

     之前就转过一篇关于定时任务的文章,前俩天用,还的翻出来看!!!再转一次,备用,,需要的时候不用麻烦找! ----------------------------------------------- ...

  7. Java Lambda表达式入门

    Java Lambda表达式入门 http://blog.csdn.net/renfufei/article/details/24600507 Java 8十个lambda表达式案例 http://w ...

  8. [转]Ubuntu 16.04建议安装

    Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...

  9. virtualBox切换到无缝模式后,如何调出菜单

    host+c host就是指右边的那个ctrl键

  10. NetBeans如何关联两个项目

    在实际工作中,有的项目需要关联其他项目 找到项目-->右键-->属性-->包含路径-->添加文件夹 添加你要的项目即可.