jenkins publish over ssh插件

本文介绍如何使用Jenkins的publishoverssh插件进行应用发布。主要包括插件的安装配置流程,如生成证书、配置证书信息等;以及如何在job中配置发布步骤,包括文件传输与执行命令。

publish over ssh插件可以允许jenkins通过ssh登录服务器传输文件并执行脚本来执行发布操作。

安装配置publish over ssh插件

1.安装插件,略

2.使用ssh-keygen为jenkins单独生成一个证书,将公钥放到需要发布应用服务器上,我生成在了jenkins的data目录下,以免和root用户默认的证书冲突 注意:一定要在jenkins服务器上以jenkins的tomcat的启动用户去ssh username@ip ,当问到是否加入指纹时选yes,把指纹加进known_hosts,不然jenkins使用publish over ssh时会一直超时

3.配置插件,进入 系统管理 -》 系统设置 里的 Publish over SSH 添加证书信息:需填写生成私钥的密码,可填写私钥文件的路径或填写私钥文件的内容 添加服务器: 不用多说了,最后test configuration看是否成功ssh

输入图片说明

配置job使用publish over ssh发布应用

1.在job中点击 Post Steps -》 Add post-build step,选中Send files or execute commands over SSH

输入图片说明

2.配置传输的文件及执行的命令 Name:选择你要发布的服务器 source files:填写要传输的文件,当前路径为workspace,点右边问号看还支持通配符 remove prefix:移除目录 remote directory:测试下来写绝对路径没用,要是想放到非用户home目录下的话去系统设置里改remote directory

输入图片说明

exec commands单独说 无非就是几个过程

  • 初始化变量
  • 关闭tomcat
  • 把传过来的包备份下,防止日后用来回滚
  • 删除tomcat下的war包和解压出来的目录,用新打出来的war包替换
  • 启动tomcat
  • 检查下tomcat起来没
source /etc/profile        #java环境变量
time=`date +%Y-%m-%d-%H:%M:%S`
warname="ROOT.war"
tomcatdir="/data/app/tomcat7"      
wardir=$tomcatdir/webapps

pid=`ps aux|grep "\-Dcatalina.home=$tomcatdir" | grep -v grep |awk -F' ' '{print $2}'`
echo "tomcat pid:$pid"
$tomcatdir/bin/shutdown.sh
sleep 5
ps -p $pid && kill -9 $pid

mkdir -p /data/packages/esb/
\cp -f /root/esb/${package_name}  /data/packages/esb/${package_name}.$time
rm -rf $wardir/*
\cp -f /data/packages/esb/${package_name}.$time   $wardir/$warname

$tomcatdir/bin/startup.sh && sleep 5 
pid=`ps aux|grep "\-Dcatalina.home=$tomcatdir"|grep -v grep |awk -F' ' '{print $2}'`
echo "new tomcat pid: $pid"

curl http://127.0.0.1:8080/index.jsp || exit 1

转载于:https://my.oschina.net/u/1791060/blog/650681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值