jenkins安装Publish Over SSH插件发布项目
之前写了使用jenkins简单自动打包和发布项目,参考:
http://www.jiajiajia.club/blog/artical/an37r4cyp28l/504
但是那是在和jenkins同一台服务器上打包和部署的,本文介绍使用Publish Over SSH插件,将项目发布到远程服务器。
本次模拟使用三台服务器,分别是jenkins服务器A:192.168.127.128,专门用于下载代码,打包项目,以及远程发布。第二和第三台都是运行程序的服务器,分别是B:192.168.127.129和C:192.168.127.130。在A服务器上打包的项目要上传到B、C服务器上运行。
在测试之前还需要配置服务器的ssh免密钥登录,也就是A服务器登录B服务器和C服务器要免密登录。因为A服务器需要将打包的程序上传到B、C服务器,并执行相应的脚本,从而启动程序。
关于ssh免密登录,请参考文章:linux系统配置SSH免密钥登录
一、Publish Over SSH插件安装
在插件管理中选择”可选插件”,搜索ssh,选中 Publish Over SSH ,点击下面的install。
等待安装成功
二、配置远程服务器信息
在jenkins系统配置中配置服务器信息
mamger jenkins -> System Configur
在Publish over SSH的配置栏中输入jenkins服务器中的私钥地址和私钥内容。
点击下面的”新增“按钮,新增SSH Services
输入服务器的相关信息,点击 Test Configuration测试成功后点击保存并应用。
如果有多台服务器,则继续点击‘新增’按钮添加服务器信息。
三、任务配置
配置完远程服务器的信息后,就可以配置任务信息了,关于配置git,以及maven在之前的文章中已经介绍了,本文不再描述,请参考: jenkins创建任务(item)自动打包,自动部部署
在配置完git(源码管理)和maven(构建)后,就可以配置构建后的操作了。
在‘构建后的操作模块’点击‘新增构建后操作步骤’,选择‘Send build artifacts over SSH选项’
填写配置信息
本文启动java程序的方式是用服务的方式启动的。
脚本的内容为:
source /etc/profile;
cd /usr/local/project;
./start.sh jenkinsTestProject-1.0-SNAPSHOT jenkinsTestProject
start.sh
#!/bin/bash
rm -rf ./$2.jar
cp $1.jar $2.jar
if [ -f "/etc/init.d/$2" ]; then
rm -rf /etc/init.d/$2;
fi
ln -s $(pwd)/$2.jar /etc/init.d/$2;
chmod a+x /etc/init.d/$2;
echo "启动项目"
/etc/init.d/$2 restart
该脚本有两个参数,第一个参数是打包后jar包的文件名(不带.jar后缀),第二个参数是服务名。