Ansible跳板机自动部署
首先,安装ansible,略过此步骤。
一、控制机(jenkens、ansible所在机器与跳板机之间互信,跳板机与目的机之间互信)
1.在客户端生成公钥私钥对
命令:ssh-keygen -t rsa
一路默认回车,系统在/root/.ssh下生成id_rsa、id_rsa.pub
2.查看系统生成的公钥私钥对
命令:ls /root/.ssh
可以看到如下的文件
3.将生成的公钥私钥对id_rsa.pub发送到其他的服务器上。
命令:ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.137.129
注:命令可简单记忆为 ssh-copy-id -i 公钥私钥对文件 服务器ip地址
可以看到成功将公钥私钥对发送到了其他服务器,更多服务器一样操作即可。
4.现在可以测试连接其他服务器是否不需要密码登录,可以看到确实成功了。
登录其他服务器命令:ssh 192.168.137.130 #ssh serverid
二、跳板机安装nc命令
1、上传(此文件备份在jenkens服务器192.168.3.83的/opt目录)至跳板机
2、执行rpm -iUv nc-1.84-22.el6.x86_64.rpm
3、执行nc -help确认命令是否成功安装
三、测试ssh通过跳板机代理连接目的机是否成功
ssh -o "ProxyCommand ssh -p 22 root@192.168.40.115 nc -w 1000 %h %p" -p 22 root@192.168.40.116
四、修改ansible操作主机配置文件及编写ansible执行剧本
1、vi /etc/ansible/hosts
增加配置(以下举例)
[webservers] # 这是目的机别名
192.168.40.116
[webservers:vars]# 这是目的机对应配置变量,这里用ansible代理,192.168.40.115作为跳板机
ansible_ssh_common_args=' -o "ProxyCommand ssh -o ConnectTimeout=6000000 -p 22 root@192.168.40.115 nc -w 100000 %h %p"'
2、编写ansible剧本playbook
新增剧本,取名*.yaml
---
- hosts: webservers ---操作主机别名
tasks:
- name: 获取本地jar包
local_action: shell ls /var/lib/jenkins/workspace/ttt/target/alarmprovince*.jar
register: file_name
- name: 删除目标主机上面的备份jar包
shell: rm -f /tmp/alarmprovince.jar.bak
ignore_errors: true
- name: 备份原来jar包
shell: mv /tmp/alarmprovince.jar /tmp/alarmprovince.jar.bak
ignore_errors: true
- name: 拷贝jar包到目标机器
copy: src="{{ file_name.stdout }}" dest=/tmp/alarmprovince.jar
- name: 关闭java进程
shell: ps -ef|grep alarmprovince|grep jar|grep -v grep |awk '{print $2}' |xargs kill -9
ignore_errors: true
- name: 后台不挂起启动
shell: nohup java -jar /tmp/alarmprovince*.jar &
- name: 删除本地jar包
local_action: shell rm -f /var/lib/jenkins/workspace/ttt/target/alarmprovince*.jar
五、配置jenkens
1、配置项目git路径

2、配置mvn构建

3、新增ansible剧本执行(配置操作主机(别名)及指定执行剧本)
六、构建及发布
点击构建,发布成功


(ps:修改ansible_config配置文件,将ssh_timeout时间调大,避免超时)
Ansible跳板机自动部署的更多相关文章
- SecureCRT实现跳板机自动登录
背景: 1.通常运维会开放几个内网的机器能跳转到外网机器进行访问,这样的就是跳板机. 2.比如线上有120.0.0.2这台机器,而内网192.168.1.2这台连接了VPN,能通过SSH登录120.0 ...
- jumpserver(0.3.2版本)开源跳板机系统部署
1. 介绍 JumpServer亮点: 集成Ansible,批量执行命令: 支持WebTerminal wiki地址:https://github.com/jumpserver/jumpserver/ ...
- Linux下使用expect实现跳板机自动跳转/免密登录/自动登录(转)
shell脚本实现ssh自动登录远程服务器示例: #!/usr/bin/expect spawn ssh root@192.168.22.194 expect "*password:&quo ...
- docker-compose之跳板机jumpserver部署
下载docker-compose curl -L https://get.daocloud.io/docker/compose/releases/download/1.24.1/docker-comp ...
- 【自动部署】Ansible 怎么通过堡垒机/跳板机 访问目标机器
Ansible机器的 /root/.ssh/config 配置如下即可:Host 目标机器IP User root IdentityFile=/root/.ssh/xxx_id_rsa ProxyCo ...
- Jenkins + Maven + Ansible + Tomcat 实现JAVA代码自动部署
自动部署过程: jenkins从svn拉取代码,调用maven去打war包,用ansible去解压war包,最后重启tomcat. 前情回顾:在前面的文章我的环境已经有Jenkins+ansible ...
- 使用Ansible进行项目的自动部署(Tomcat、Weblogic)
原文:https://github.com/x113773/testall/issues/4 问题:Weblogic/Tomcat 通过JAVA直接远程调用或者调用本地Shell还是通过Ansible ...
- jenkins + supervisor + ansible 实现netcore程序的多机一键部署
上一篇我们简单的说到了使用jenkins+supervisor实现了一个单机版的多副本部署,但是在更多的场景下还是需要netcore程序的多机一键部署,那么多 机器间如何分发呢? 肯定不能使用scp这 ...
- Linux系统——JumpServer跳板机的搭建和部署
公网源部署jumpserver跳板机 建立阿里云公网源yum仓库(服务端)[root@localhost ~]# lsanaconda-ks.cfg install.log.syslog jumpse ...
随机推荐
- Excel使用技巧大全(超全)
目录 Excel 使用技巧集锦 --163 种技巧 一. 基本方法 1. 快速选中全部工作表 2. 快速启动 Excel 3. 快速删除选定区域数据 4. 给单元格重新命名 5. 在 Excel 中选 ...
- (5.1.4)引擎管理——SSMS管理使用小技巧
目录 [1]自带报表 [2]对象管理器详细信息 [3]日志 [4]活动监视器 [1]自带报表 无论是数据库.服务器实例.还是代理等等都可以有标准报表 [2]对象管理器详细信息 利用改方式,可以很有效的 ...
- python 传址 与传值(暂时保存,后续做分类)
# python 传址 与 传值 # 定义一个函数 用于将 list 下标为2的数据加100 并进行打印 该list def test1(list): list[2]+=100 print(list) ...
- idea工具
1. 使用IntelliJ IDEA 配置JDK(入门) https://blog.csdn.net/nobb111/article/details/77116259 2. idea 调试快捷键 ...
- numpy数组的索引和切片
numpy数组的索引和切片 基本切片操作 >>> import numpy as np >>> arr=np.arange(10) >>> arr ...
- CentOs7 防火墙的开放与关闭及端口的设定
1.查看firewall服务状态 systemctl status firewalld 2.查看firewall的状态 firewall-cmd --state 3.开启.重启.关闭.firewall ...
- Vue.nextTick 的原理和用途
转载自https://segmentfault.com/a/1190000012861862 概览 官方文档说明: 用法: 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法 ...
- mysql登录密码错误,以及设置密码
1.输了几次,密码都错误,忘记了... 2.编辑mysql安装文件夹(D:\mysql-5.7.26-winx64)下的my.ini文件,mysqld标签下输入 skip-grant-tables,字 ...
- 通过SEO可以做什么?
1.做关键词排名,从而带来大量的客户卖产品和服务.很多大型机械厂家就是这么做的,显然SEO赚取了不少利润. 2.通过SEO带来大量流量,从而投放广告或者跟厂家合作买产品,比如流量站之类. ...
- 如何正确训练一个 SVM + HOG 行人检测器
这几个月一直在忙着做大论文,一个基于 SVM 的新的目标检测算法.为了做性能对比,我必须训练一个经典的 Dalal05 提出的行人检测器,我原以为这个任务很简单,但是我错了. 为了训练出一个性能达标的 ...