Jenkins 是 Devops 神器,本文介绍如何安装和使用 Jenkins + svn + maven 部署 Spring Boot 项目;
一、准备环境
Centos7.6
JDK1.8
Jenkins2.238
maven3.5.4
apache-tomcat-7
maven默认已经安装完成;
jdk默认已经安装完成;
二、配置防火墙
#centos7
systemctl stop firewalld.service
==============================
#以下为:centOS 6.5关闭防火墙步骤
#关闭命令:
service iptables stop
#永久关闭防火墙:
chkconfig iptables off
#两个命令同时运行,运行完成后查看防火墙关闭状态
service iptables status
三、配置tomcat
3.1 解压
#解压
zip apache-tomcat-7.0.75.zip
3.2 修改server.xml
#server.xml 地址
/home/jenkins/apache-tomcat-7.0.75/conf
#使用 vi 编辑 server.xml
vi server.xml
在server.xml中添加如入
四、安装 Jenkins
4.1 下载
cd /home/jenkins
wget http://mirrors.jenkins.io/war/2.238/jenkins.war
#把下载下来的jenkins.war移动到tomcat中
mv jenkins.war /home/jenkins/apache-tomcat-7.0.75/webapps/
4.2 启动tomcat
#进入到 /home/jenkins/apache-tomcat-7.0.75/bin
#给启动脚本添加权限
chmod 777 s*
#启动tomcat
./startup.sh
#停止tomcat
./shutdown.sh
#查看进程,验证tomcat是否启动
ps -ef|grep tomcat
启动tomcat后,浏览器访问:http://ip地址:8084/jenkins
4.3 解锁 Jenkins
依照提示,查看/root/.jenkins/secrets/initialAdminPassword 文件内容填入文本框
输入:49b1d9a63880431e85820d09b33eacac
4.4 自定义插件安装
进入用户自定义插件界面,建议选择安装官方推荐插件,因为安装后自己也得安装:
接下来是进入插件安装进度界面:
等待一段时间之后,插件安装完成,配置用户或者直接登录
4.5 配置用户名密码
输入:admin/admin
4.6 中文设置
相对于英文不好的人纯英文界面不知道点哪里,不要着急,我们这里说一下怎么设置成中文;
1)进入Manage Jenkins中,点击Manage Plugins(插件设定)
2)安装插件 Locale plugin
3)安装中文汉化语言包插件 Localization: Chinese (Simplified)
4)在系统管理——>系统配置中设定中文语言,方法如下:
5)在Default Language中设定“zh_CN”简体中文,"zh_TW"繁体中文
6)安装后重启 jenkins
重启方法:http://访问地址/restart,在jenkins访问url后面 添加 restart 点击 yes 重启即可。
7)插件卸载方法
将红框的内的插件卸载后重启Jenkins,灰色卸载会在“Locale plugin”插件卸载成功后可以点击。
五、插件安装和全局环境配置
5.1 插件安装
有很多插件都是选择的默认的安装的,所以现在需要我们安装的插件不多,Git plugin 和 Maven Integration plugin、publish over SSH、Deploy to container、Subversion
插件安装:系统管理 > 插件管理 > 可选插件,勾选需要安装的插件,点击直接安装或者下载重启后安装。
5.2 全局安全配置
管理Jenkins > 配置全局安全性 > 可选插件,勾选需要安装的插件,点击直接安装或者下载重启后安装。
1)没有权限配置,只要登录就可以操作
2)配置权限,登录账号经过赋权才能有操作权限
5.3 全局工具配置
1)Maven 配置
2)JDK 配置
3)查看 maven 和 jdk 安装目录命令
echo $MAVEN_HOME
echo $JAVA_HOME
六、目标发布服务器配置
使用用户名+密码方式登录目标发布服务器
管理Jenkins > 系统配置
点击高级添加root账号密码
七、部署项目
首页点击新建:输入项目名称
下方选择构建一个 Maven 项目,点击确定。
勾选丢弃旧的构建,选择是否备份被替换的旧包。我这里选择备份最近的10个
源码管理,选择 SVN,配置 SVN 相关信息,点击 add 可以输入 SVN 的账户和密码
点击添加,可以添加svn账号和密码
在 Build 中输入打包前的 mvn 命令,如:
clean install -Dmaven.test.skip=true -Ptest
意思是:排除测试的包内容,使用后缀为 test 的配置文件。
点击高级可以配置maven
Post Steps 选择 Run only if build succeeds
点击Add post-build step,选择 Send files or execute commands over SSH
Name 选择上面配置的 Push SSH
Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名
Remove prefix:target/
Remote directory:代码应用服务器的目录地址
Exec command:程序启动脚本
脚本内容:
DATE=$(date +%Y%m%d)
export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/usr/java/jdk1.8.0_241
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
DIR=/root/opt/data1/rs/centre
JARFILE=server-0.0.1-SNAPSHOT.jar
if [ ! -d $DIR/backup ];then
mkdir -p $DIR/backup
fi
cd $DIR
ps -ef | grep $JARFILE | grep -v grep | awk '{print $2}' | xargs kill -9
scp $JARFILE backup/$JARFILE$DATE
java -jar $JARFILE > out.log &
if [ $? = 0 ];then
sleep 30
tail -n 50 out.log
fi
cd backup/
ls -lt|awk 'NR>5{print $NF}'|xargs rm -rf
这段脚本的意思,就是 kill 旧项目,删除旧项目,启动新项目,备份老项目。
注意xxxx.jar地址,因为用命令启动需要去找jar包,目前jenkins直接打在默认目录了,没有进行自定义设置,故如此配置。
八、验证
1)控制台输出,查看启动日志
2)登录发布目标服务器,通过命令形式查看进程是否起来,命令如下
至此 jenkins + svn + maven 部署Spring Boot项目结束。