Jenkins自动化部署
一、安装Jenkins
- 安装JDK环境
源码安装jdk1.8及以上版本,环境变量vim /etc/profile写在最后面如下:
export JAVA_HOME=/usr/local/jdk1.8.0_144
export JRE_HOME=/usr/local/jdk1.8.0_144/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$SCRIPT_HOME:$PATH
我配置的jdk版本就是1.8的
- 下载Jenkins
我这里选择下载war包进行安装,自我感觉非常的简单易操作!
官网下载:https://jenkins.io/index.html
我这里下载的版本是2.112
- 安装Tomcat
下载地址:http://mirrors.hust.edu.cn/apache/tomcat
我安装的版本是tomcat8,把之前的jenkins.war拷到webapps下,启动tomcat。我用的8080端口访问地址为http://IP:8080/jenkins
####安装上面的提示查看密码,输入密码
######我选择第一个,第二个也可以这样装的包少一点。安装的插件都在/root/.jenkins/plugins/下
######开始安装插件
#######至此jenkins安装完毕!
二、安装Maven(用来构建项目)
官网地址:http://maven.apache.org/download.cgi
我安装的是Apache Maven 3.2.5
配置环境变量:vim /etc/profile 写到最后
MAVEN_HOME=/usr/local/apache-maven-3.2.5
export MAVEN_HOME
export PATH=${PATH}:${MAVEN_HOME}/bin
三、安装git(用来取gitlab上的代码)
下载地址:https://github.com/git/git/releases
我安装的版本是git-2.3.0
配置环境变量:vim /etc/profile 写到最后
export PATH=/usr/local/git/bin:$PATH
四、配置Jenkins
选择可选插件进行搜索安装插件有
Git plugin
SSH Plugin
Maven integration Plugin
Deploy to Container Plugin
五、构建项目
点击新建任务 起一个test名字 选择构建一个maven项目
######如果没做以下操作肯定会报错的
######这块填写gitlab的私钥!!!完成之后如下图
###看一下我的脚本内容:
[[email protected] ~]# cat /opt/web.sh
#!/bin/bash
source /etc/profile
TOMCAT_HOME=/data/server/tomcat-gw/webapps
JENKINS_HOME=/root/.jenkins/workspace/yilucaifu-open/yilucaifu-web/target
DATE=$(date +%Y-%m-%d_%H:%M)
mv $TOMCAT_HOME/yilucaifu /data/back-web/yilucaifu.$DATE
scp -r 60.60.1.222:$JENKINS_HOME/yilucaifu.war $TOMCAT_HOME
unzip -d $TOMCAT_HOME/yilucaifu $TOMCAT_HOME/yilucaifu.war
#\cp -f /opt/web_web.xml/web.xml $TOMCAT_HOME/yilucaifu/WEB-INF
\cp -f /opt/web_jdbc/jdbc-context.xml $TOMCAT_HOME/yilucaifu/WEB-INF/conf
rm -rf $TOMCAT_HOME/*.war
/data/script/tomcat_gw.sh restart
[[email protected] ~]# cat /data/script/tomcat_gw.sh
#!/bin/bash
TOMCAT_HOME=/data/server/tomcat-gw
DATE=$(date +%F)
pid=`ps aux | grep tomcat-gw | grep -v grep | awk '{print $2}'`
str=$"\n"
sstr=$(echo -e $str)
if [ $# -ne 1 ];then
echo "Usage: $0 {start|stop|restart}"
exit 1
fi
case $1 in
start)
$TOMCAT_HOME/bin/catalina.sh start
tail -f $TOMCAT_HOME/logs/catalina."$DATE".out &
TAIL_PID=$(ps aux | grep "tail -f $TOMCAT_HOME/logs/catalina."$DATE".out" | grep -v grep | awk '{print $2}')
echo "TAIL_PID is $TAIL_PID"
sleep 25 && kill -9 $TAIL_PID &
sleep 30 && echo "$sstr"
;;
stop)
echo "pid= $pid"
echo "now kill tomcat pid $pid"
kill -9 $pid
if [ $? -eq 0 ];then
echo "Tomcat has stopped"
fi
;;
restart)
echo "pid= $pid"
echo "now kill tomcat pid $pid"
kill -9 $pid
$TOMCAT_HOME/bin/catalina.sh start
sleep 1
tail -f $TOMCAT_HOME/logs/catalina."$DATE".out &
TAIL_PID=$(ps aux | grep "tail -f $TOMCAT_HOME/logs/catalina."$DATE".out" | grep -v grep | awk '{print $2}')
echo "TAIL_PID is $TAIL_PID"
sleep 25 && kill -9 $TAIL_PID &
sleep 30 && echo "$sstr"
echo -e "\033[32m Continue to check the log,please execute the command: \033[0m"
echo -e "\033[32m tail -f $TOMCAT_HOME/logs/catalina."$DATE".out \033[0m"
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
;;
esac
Jenkins和 60.60.1.223互做了免密登录,在jenkins上可以直接用/usr/bin/ssh [email protected]要执行的命令" /opt/web.sh 在60.60.1.223上执行这个脚本
过程:jenkins调用git把Gitlab上的代码下载到jenkins服务器,maven构建成war包,调用ssh运行shell脚本完成备份,停服务,清webapps,拷war包到tomcat下,起服务,ok!