环境: jenkins2.107.3+jdk1.8.0_73+maven3.5.3+git1.8.3.1+centos7.2
1.0安装Jenkins(自行安装)
安装成功之后需要在
/etc/sysconfig/jenkins里面修改JENKINS_PORT="一个没有被占用的端口"
修改JENKINS_USER="root"(否则5.4里面的shell可能会没有执行权限)
修改Jenkins home, webroot和日志的所有权
chown -R root:root /var/lib/jenkins
chown -R root:root /var/cache/jenkins
chown -R root:root /var/log/jenkins
2.0登录Jenkins
下载需要的插件(SSH, Git, Maven, Publish Over SSH)
在这可以查看已安装的插件
在这搜索要安装的插件,找到要安装的插件选中之后点击直接安装,等待安装成功就行(有些插件可能需要翻墙或者时间比较长)
3.0进入全局工具配置
3.1配置jdk
3.2配置git
3.3配置maven
3.4保存配置
4.0系统设置
4.1配置服务器免密登录
1:私钥(怎么生成找运维) 2起个好记的名字就行 3:服务器ip 4:用户名 5:远程目录
没有涂鸦的Passphrase里面写个自己容易记的密码
4.2保存配置
5.0新建任务
输入任务名称,然后选中构建一个maven项目(因为我本地的项目是maven项目)
5.1简单配置下新建任务
5.2配置源码管理
1:选择git(因为我的版本管理是在git上托管的,在svn上的需要下载相关插件然后配置)
2:项目的git地址
3:点击添加,主要是输入git的用户名跟密码,然后选中这个用户就行
4:选择要拉取的分支
5.3配置maven
Root POM是项目的pom文件地址,如果正常提交项目的话直接填写pom.xml就行(如果不对的话就去Jenkins的workspace下面看看具体位置)
clean package -Dmaven.test.skip=true是打包命令 跳过测试
5.4配置打包完成之后要执行的操作
说起来就是 拉取git上的代码然后使用maven打包然后把包拷贝到要发布的服务器上然后执行shell脚本重启服务(至少需要目标服务器信任Jenkins服务器,搞不定的就去找运维)
scp -P 524 /jenkins/workspce/xx/xx.war /usr/local/tomcat-xxx/webapps/xxx.war
如果端口是22的话 -P 524可以省略
fire.sh tomcat包名 项目名字
fire.sh内容
#!/bin/bash
. /etc/profile
tomcat_home="/usr/local/$1" #一定要用引号引上,否则会把当前进程kill掉
project_name="$2" #一定要用引号引上,否则会把当前进程kill掉
STARTTOMCAT=$tomcat_home/bin/startup.sh
BUILD_ID=dontKillMe #这个一定加上,否则tomcat会启动失败(告诉Jenkins在杀死子进程的时候不要杀的这个进程)
echo "关闭$tomcat_home"
tompid=$(ps -ef|grep "$1" | grep -vE "grep|fire.sh" | awk -F" " '{print $2}')
for pid in $tompid
do
/usr/bin/kill -9 $pid
done
#删除日志
#rm $tomcat_home/logs/* -rf
#删除缓存
rm $tomcat_home/work/* -rf
rm $tomcat_home/webapps/$project_name -rf
rm $tomcat_home/webapps/ROOT -rf
if [ -f $tomcat_home/webapps/$project_name.war ]
then
mv $tomcat_home/webapps/$project_name.war $tomcat_home/webapps/$project_name.war$(date -d "today" +"%Y%m%d_%H%M%S")
mv $tomcat_home/webapps/$project_name.war123 $tomcat_home/webapps/$project_name.war
fi
sleep 5
echo "开启$tomcat_home"
$STARTTOMCAT