1.安装Jenkins
下载地址https://jenkins.io/download/
可点击下载安装文件:bitnami-jenkins-2.190.3-0-windows-x64-installer.exe。自定义安装目录,然后其余的配置按默认的来,一路next即可。
安装完成后,jenkins会处于自动运行状态,项目内置的tomcat也会自启动,端口号全为默认的。为防止以后本地启动tomcat项目时报端口号冲突,可选择手动修改jekins内置tomcat的相应端口号。(注:此端口修改步骤非必须,按默认即可,可跳过)
先在电脑左下角的windows安装程序窗口中找到新安装的jenkins程序,点击关闭服务。
然后,修改F:\Bitnami\jenkins-2.190.3-0\apache-tomcat\conf\server.xml,文件的一系列对应端口号。其中,比如:
同时也需要修改F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\conf\httpd-app.conf 文件中对应的端口,改成上图修改后的端口号:
<Location "/jenkins">
ProxyPass ajp://localhost:8109/jenkins nocanon
</Location>
更换插件下载资源地址为国内镜像资源会大大提高下载速度,更换方式:
修改文件:F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\jenkins_home\updates\default.json,全局替换
http://updates.jenkins-ci.org/download为https://mirrors.tuna.tsinghua.edu.cn/jenkins。并将www.google.com换成www.baidu.com。
修改完毕后,重新启动jenkins服务,本地通过http://127.0.0.1访问jenkins主页面。可用安装时,设置的登录账号/密码进行登录。也可以使用默认管理员账号admin登录,admin账户初始密码在
F:\Bitnami\jenkins-2.190.3-0\apps\jenkins\jenkins_home\secrets\initialAdminPassword文件中,复制出来登录即可。登录成功,按提示选择安装推荐的插件。安装完成后,可修改初始账号密码,并做下面的配置。
2.手动安装必要插件
Manage Jenkins > Manage Plugins安装如下插件:
maven项目管理插件:Maven Integration plugin,部署远端linux服务器插件:Publish Over SSH
3.配置插件的环境参数信息:
操作:Manage Jenkins > Configure System,配置maven全局信息和部署项目的linux服务器信息,并测试和服务器的连通性,提示:success,即为连接成功。
配置信息:-Dmaven.repo.local=F:\softwaresInstall\MVN_Repository
操作:Manage Jenkins > Global Tool Configuration,安装JDK,安装MAVEN,全按照本地的对应环境变量信息配置即可。
4.建立MAVEN新项目,并配置项目的参数信息
a.新建Item > 构建一个maven项目
b.添加描述信息
c.添加项目的git或者svn地址信息
d.添加build信息。着重注意一下红圈标注的目录信息,这个跟本地idea或者eclipse的项目代码存放的workspcae目录分开,单独创建一个。因为每次发布项目,都会从git或svn上拉取最新版本的代码到本地的这个目录进行打包部署,避免操作时覆盖了workspace里的未提交代码。
配置信息:clean compile install package -DiskipTests=true
e.配置post steps信息,如截图所示即可
启动脚本命令:sh /root/projects_install/happytimeProject/jenkinsInstall.sh,此命令会在自动部署时,执行远程linux服务器上的jenkinsInstall.sh脚本命令,执行项目的备份及更新启动工作。
jenkinsInstall.sh脚本命令如下:
#!/bin/bash
##jenkins安装包上传目录
export JENKINS_POST_PATH=/root/projects_install/jenkins_pre/
##工程安装目录
export INSTALL_FILE_PATH=/root/projects_install/happytimeProject/
##安装包文件名
export APP_NAME=HappyTimeProject-0.0.1-SNAPSHOT.jar
cd ${INSTALL_FILE_PATH}
NEW_FILE="${JENKINS_POST_PATH}${APP_NAME}"
if [ -f "$NEW_FILE" ];
then
echo "pack file exists, deploy and start the server."
#备份原文件
mv ${APP_NAME} ${APP_NAME}_$(date -d today +%Y%m%d_%H%M%S)_bak
#部署新文件
mv -f ${NEW_FILE} ${INSTALL_FILE_PATH}
else
echo "pack file not exists, restart the server."
fi
echo "execute stop.sh shell start ..."
#停止旧版本运行进程
tpid=`ps -ef|grep ${APP_NAME}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 5
tpid=`ps -ef|grep ${APP_NAME}|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop old version process finish.'
fi
#启动新版本运行进程
rm -f tpid
nohup /usr/local/jdk/jdk1.8.0_131/bin/java -jar ${APP_NAME} --spring.profiles.active=prod &
echo $! > tpid
sleep 5
echo 'Start new version process Success!'