【自动部署】Ansible 怎么通过堡垒机/跳板机 访问目标机器
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连接层面解决这个问题。
比如,
我们有三类节点:
管理节点,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
解决方案:
修改 ~/.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
参考文档:
- Managing OpenStack instances with Ansible through an SSH bastion host
- Using Ansible with a bastion SSH host
- Configuring Ansible to run play books through a bastion host on aws/ec2
- Using SSH Through A Bastion Host Transparently
- SSH Agent Forwarding Configuration with Ansible and Tower
- Ansible with a bastion host / jump box?
- https://ouyang.me/blog/2015/08/31/using-ansible-with-a-bastion-host/
【自动部署】Ansible 怎么通过堡垒机/跳板机 访问目标机器的更多相关文章
- 运维堡垒机(跳板机)系统 python
相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. A ...
- ansible 通过堡垒机/跳板机 访问目标机器需求实战(ssh agent forward)
一. 需求背景: 在我们使用ansible的过程中经常会遇到这样的情况,我们要管理的机器都在内网中,这些内网机器的登录都是通过跳板机或者堡垒机登录.我们的ansible机器不能直接管理到这些后端的机器 ...
- Xcode6.3真机测试无法选择目标机器问题
Xcode刚刚升级到了6.3版本,但是真机测试出现了一点问题.对于某些手机无法选中,如下: 上图中的“xxoo的iPhone”无法选中,不过这个问题在stackoverflow中有解答,可以通过其他手 ...
- 【转】SSH穿越跳板机:一条命令跨越跳板机直接登陆远程计算机
转自:http://mingxinglai.com/cn/2015/07/ssh-proxycommand/ 今天在公司搭建跳板机,遇到一个比较麻烦的问题,这里简单记录一下,希望对有相同问题的人有所帮 ...
- Ansible跳板机自动部署
首先,安装ansible,略过此步骤. 一.控制机(jenkens.ansible所在机器与跳板机之间互信,跳板机与目的机之间互信) 1.在客户端生成公钥私钥对 命令:ssh-keygen -t rs ...
- SecureCRT自动登录跳板机/堡垒机并连接目标机器
公司登录目标服务器,需要先登录跳板机(堡垒机),然后再登录目标机器,一共需要4.5步. MAC或LINUX机器可以写.SH脚本,那WINDOWS有没有一键登陆的方法呢? 常用的SecureCRT工具就 ...
- linux Jumpserver跳板机 /堡垒机详细部署
关于跳板机/堡垒机的介绍: 跳板机的定义: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点: 没有实现对运维人员操作行为的 ...
- CentOS7 开源跳板机(堡垒机) Jumpserver
开源跳板机(堡垒机)Jumpserver 环境 CentOS 7 x64 关闭 selinux firewalld jumpserver: 172.24.0.14 testserve ...
- CentOS 7 搭建Jumpserver跳板机(堡垒机)
跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作 跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是 ...
随机推荐
- nginx配置文件详解( 看着好长,其实不长,看了就知道了,精心整理,有些配置也是没用到呢 )
user www www; #定义Nginx运行的用户和用户组 worker_processes ; #nginx进程数,建议设置为CPU核数2倍. error_log var/log/ ...
- fastjson是阿里巴巴的开源JSON解析库
fastjson的API十分简洁. String text = JSON.toJSONString(obj); //序列化 VO vo = JSON.parseObject("{...}&q ...
- Nginx 支持 WAF 防护功能实战
WAF(Web Application Firewall),中文名称叫做“Web应用防火墙 WAF的定义是这样的:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提 ...
- gradle init.gradle的文件配置 使用
init.gradle文件在build开始之前执行,所以你可以在这个文件配置一些你想预先加载的操作例如配置build日志输出.配置你的机器信息,比如jdk安装目录,配置在build时必须个人信息,比如 ...
- Linq 操作基础
参考资料: LINQ系列:LINQ to DataSet的DataTable操作 List<T>转换为DataTable C# DataTable 和List之间相互转换的方法 Linq中 ...
- linux下定时执行任务方法【转】
之前就转过一篇关于定时任务的文章,前俩天用,还的翻出来看!!!再转一次,备用,,需要的时候不用麻烦找! ----------------------------------------------- ...
- Java Lambda表达式入门
Java Lambda表达式入门 http://blog.csdn.net/renfufei/article/details/24600507 Java 8十个lambda表达式案例 http://w ...
- [转]Ubuntu 16.04建议安装
Ubuntu 16.04发布了,带来了很多新特性,同样也依然带着很多不习惯的东西,所以装完系统后还要进行一系列的优化. 1.删除libreoffice libreoffice虽然是开源的,但是Java ...
- virtualBox切换到无缝模式后,如何调出菜单
host+c host就是指右边的那个ctrl键
- NetBeans如何关联两个项目
在实际工作中,有的项目需要关联其他项目 找到项目-->右键-->属性-->包含路径-->添加文件夹 添加你要的项目即可.