Jenkins使用方法
Jenkins安装、启动
- 官网下载war包,放到指定目录,后台启动
cd /develop/server/jenkins/
nohup java -jar jenkins.war >nohup.out --httpPort=8888 &
-
访问
http://192.168.157.133:8888/
-
修改密码为123456
vim /root/.jenkins/users/admin/config.xml
<hudson.security.HudsonPrivateSecurityRealm_-Details> <passwordHash>#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq</passwordHash>
</hudson.security.HudsonPrivateSecurityRealm_-Details>
Jenkins配置
- 手动安装插件
https://wiki.jenkins.io/display/JENKINS/Plugins 插件下载位置
Jenkins -> Manage Jenkins -> Manage Plugins -> Advanced -> Upload Plugin
插件:pipeline-maven、nodejs、subverion、git等
- 配置全局工具
Jenkins -> Manage Jenkins -> Global Tool Configuration
配置maven、jdk、git、nodejs
部署前端vue项目
部署后端项目
- 创建springboot-demo项目,为了演示如何部署tomcat,该项目需打包成war,而不是jar。
Jenkins -> New Item -> 项目名(springboot-demo)-> Freestyle project
- 配置仓库位置
Jenkins -> springboot-demo -> Configure -> Git
- 创建触发器(即定时build项目)
Jenkins -> springboot-demo -> Configure -> Build Triggers
-> Build periodically -> Schedule -> cron表达式
- 构建
Jenkins -> springboot-demo -> Configure -> Build -> Invoke top-level Maven targets
- 构建后的操作
Jenkins -> springboot-demo -> Configure -> Post-build Actions
-> Deploy war/ear to a container(部署到容器,如tomcat,这里会用到tomcat热部署,请参考附录的热部署详解)
- 立即构建
Jenkins -> springboot-demo -> Build Now
附录
tomcat热部署
以tomcat8为例,演示如何进行热部署
- 编辑
/develop/server/apache-tomcat-8.5.11/webapps/manager/META-INF/context.xml
<!-- 注释掉这段代码 -->
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> -->
- 编辑
/develop/server/apache-tomcat-8.5.11/conf/tomcat-users.xml
<!-- 指定用户名为tomcat,密码为123456 -->
<role rolename="tomcat-gui"/>
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="admin-gui"/>
<role rolename="admin-script"/>
<user username="tomcat" password="123456" roles="tomcat-gui,manager-gui,manager- script,admin-gui,admin-script"/>
- 访问
ip:port/manager
,并输入密码即可。
简单的重启shell脚本
#!/bin/sh
#kill tomcat pid
export BUILD_ID=apache-tomcat-8.5.11_build_id
pidlist=`ps -ef | grep apache-tomcat-8.5.11 | grep -v "grep" | awk '{print $2}'`
function stop() {
if["$pidlist" == ""]
then
echo "tomcat已经关闭"
else
echo "tomcat进程号:$pidlist"
kill -9 $pidlist
echo "杀死$pidlist"
fi
}
stop
# 二次判断是否关闭成功
pidlist2 = `ps -ef | grep apache-tomcat-8.5.11 | grep -v "grep" | awk '{print $2}'`
if["$pidlist2" == ""]
then
echo "tomcat成功关闭"
else
echo "tomcat关闭失败"
fi
# 删除
rm -rf /develop/server/apache-tomcat-8.5.11/webapps/ROOT/*
# 复制
cp -r xxx/war/ /develop/server/apache-tomcat-8.5.11/webapps/ROOT
# 启动
cd /develop/server/apache-tomcat-8.5.11 && ./bin/startup.sh
# 日志
cd /develop/server/apache-tomcat-8.5.11 && tail -f logs/catalina.out