文档章节

jenkins自动部署

fifadxj
 fifadxj
发布于 2016/04/15 14:16
字数 450
阅读 166
收藏 7

假设:

  • 一台SVN服务器
  • 一台装了jboss的服务器
  • 一台服务器做自动部署

步骤:

动部署服务器上装jenkins

  • http://www.jenkins.io下载jenkins.war,放到自动部署服务器上~/ci/
  • 设置JENKINS_HOME,默认为~/jenkins/
  • 启动jenkins 
nohup java -jar jenkins.war --httpPort=8888 >> ~/ci/jenkins.log 2>&1 &

        可访问外网用在线方式:系统管理->管理插件->可选插件->安装SSH plugin

        内网用离线方式:下载 ssh.hpi http://updates.jenkins-ci.org/latest/ssh.hpi ,改名为ssh.jpi,放入$JENKINS_HOME/plugins/


  • 重启jenkins使插件生效 http://x.x.x.x:8888/restart,重启后在add post-build step中将可以看到remote ssh选项
  • 配置jenkins使用的jdk,maven,remote ssh等

配置jenkins服务器和java应用服务器之间的public key authentication ssh,用于免密码scp

  • 在jenkins服务器~目录下生成公私钥对
ssh-keygen -t rsa #生成公私钥对 ~/.ssh/id_rsa, ~/.ssh/id_rsa.pub
  • 把jenkin服务器上生成的公钥~/.ssh/id_rsa.pub复制到java应用服务器的~/.ssh目录
  • 在java应用服务器上,把公钥加入可信列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  • 设置权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
#chmod 600 ~/.ssh/id_rsa
  • 删了java应用服务器上的公钥

rm ~/.ssh/id_rsa.pub

配置jenkins job(这里是maven project)

  • SVN check out
  • maven build
clean install -Pdev -DskipTests=true
  • execute shell,把war包scp到应用服务器
scp ~/.m2/repository/com/demo/gateway/1.0.0/gateway-1.0.0.war app@172.17.140.11:/home/app/gateway.war
  • execute shell on remote host using ssh,ssh到应用服务器,部署并重启jboss服务器
home_path=/home/app
server_path=$home_path/servers/jboss
deploy_path=$server_path/standalone/deployments

cd $deploy_path
rm -rf gateway.war
mkdir gateway.war
cd gateway.war
cp $home_path/gateway.war ./
$JAVA_HOME/bin/jar xvf gateway.war
rm gateway.war

nohup $server_path/bin/xxx.sh stop > /dev/null 2>&1 &
sleep 5
nohup $server_path/bin/xxx.sh start > /dev/null 2>&1 &


现在,只要在jenkins上执行job就能进行自动部署了

© 著作权归作者所有

共有 人打赏支持
fifadxj
粉丝 5
博文 28
码字总数 17507
作品 0
浦东
高级程序员
Jenkins+Maven+SVN搭建自动部署,自动测试环境

《目录》 一、安装Jenkins 二、配置Jenkins 三、自动编译 四、自动测试 五、自动部署 一、安装Jenkins 地址http://mirrors.jenkins-ci.org/下载适合的Jenkins版本。 Windows最新稳定版的Jen...

筱飞
2016/06/24
598
0
gitlab+jenkins+maven持续集成自动化部署平台

背景:为了改变目前手工发布项目的流程烦锁,耗时,容易出错,浪费人力物力财力,低效的状况,搭建基于docker容器化的git+jenkins+maven持续集成自动化部署平台,实现从代码提交到生产部署的...

xiejunbo
2017/10/26
0
0
Jenkins+tomcat从编译到部署

环境: 所有操作都是基于上一篇文章Gitlab+Jenkins实现自动部署实现 自动部署的话其实也就是一个触发器的设置,同样参考上一篇文章! 一、在gitlab上创建一个仓库 具体操作参考:Gitlab+Jenk...

Jy_BigBoss
08/06
0
0
从0开始搭建自动部署环境(续)

从0开始搭建自动部署环境(续) 前言 上一篇从0开始搭建自动部署环境虽然环境搭建起来了,但是配置少了一部分步骤。本来应该写到上一篇中,但是这样做篇幅过长了。另外,此篇会使用自动部署一...

五毛程序员
2017/11/27
0
0
JAVA项目如何通过Docker实现持续部署

本篇实操性的案例讲解——JAVA项目如何通过Docker实现持续部署(只需简单四步), 即:开发通过git push上传代码,经Git和Jenkins配合,自动完成程序部署、发布,全程无需运维人员参与。 这是一...

菜鸟东哥
07/02
0
0

没有更多内容

加载失败,请刷新页面

加载更多

SingleNumber136 leetCode

Given a non-empty array of integers, every element appears twice except for one. Find that single one. Note: Your algorithm should have a linear runtime complexity. Could you im......

woshixin
昨天
1
0
String ,  StringBuffer ,  StringBuilder的区别

String , StringBuffer , StringBuilder的区别 String 首先,String 是用来表示一个字符串常量的,它是一个不可变对象,意味着,一旦我们创建了某个字符串之后,就不能再改变它的值了,我们可...

tsmyk0715
昨天
2
0
区块链100讲:UTXO 和 Account 模型对比

在当前区块链世界中,主要有两种记录保存方式,UTXO 模式(Unspent Transaction Output) 和 Account 模式。Bitcoin 采用的是 UTXO 模型,Ethereum 采用的 Account 模型,同样 CITA 也采用了 ...

HiBlock
昨天
1
0
Vue中路由管理器Vue Router使用介绍(三)

一、路由定义添加动态参数定义 1.路由定义项,使用:xx 方式 定义动态参数 { path:'/user/:id/:name', name:'user', component:()=>import('./views/User.vue') ...

tianma3798
昨天
1
0
从ibdata文件恢复mysql数据

DROP TABLE 恢复【一】 Recover InnoDB dictionary Percona Data Recovery Tool 单表恢复

IT--小哥
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部