前提条件
- 系统含有tomcat
- 系统含有java环境
- 系统含有nodejs(如果部署前端环境)
- 系统含有maven环境(如果部署后端环境)
- 系统含有git环境
一、服务器安装jenkins
方法一:简单快捷
第一步:将jenkens.war导入到系统
jenkens安装包
链接:https://pan.baidu.com/s/191Ch2xZice16OG4wfabwhQ?pwd=wexa 提取码:wexa 复制这段内容后打开百度网盘手机App,操作更方便哦
第二步:放在tomcat的webapp下面
第三步:访问http://ip:8080/jenkins
8080是tomcat 的端口号
方法二:命令行部署jenkins
第一步:启用Jenkins库
运行以下命令以下载repo文件并导入GPG密钥:
wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat-stable/jenkins.repo
rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
第二步:安装Jenkins
执行如下命令安装Jenkis。
yum install jenkins
接下来,修改Jenkins默认端口,如下所示。
vim /etc/sysconfig/jenkins
修改后的两项配置如下所示。
JENKINS_JAVA_CMD="/usr/local/jdk/bin/java"
JENKINS_PORT="18080"
此时,已经将Jenkins的端口由8080修改为18080
第三步:启动Jenkins
在命令行输入如下命令启动Jenkins。
systemctl start jenkins
配置Jenkins开机自启动。
systemctl enable jenkins
查看Jenkins的运行状态。
systemctl status jenkins
登录Jenkins
首次安装后,需要配置Jenkins的运行环境。首先,在浏览器地址栏访问链接http://ip:18080,打开Jenkins界面。
据提示使用如下命令到服务器上找密码值,如下所示。
cat /var/lib/jenkins/secrets/initialAdminPassword
将密码XXX复制到文本框,点击继续。会跳转到自定义Jenkins页面,如下所示。
这里,可以直接选择“安装推荐的插件”。之后会跳转到一个安装插件的页面,会出现失败的情况,不用在意
创建账号等信息省略
二、自动部署所需要的插件
一、Spring Boot部署Maven所需要的插件
1、系统管理 -> 插件管理 -> 可选插件 -> 根据插件名字搜索安装即可。如上图。
Git plugin:支持Git的插件
Maven Integration plugin:构建Maven项目所需要的插件,安装后在创建新项目时可以选择构建Maven项目
publish over SSH:SSH连接服务器,让项目可以发布在其他服务器上
gitee:支持gitee的插件
2、Kubernetes集成时 需要安装的插件
Kubernetes Cli Plugin:该插件可直接在Jenkins中使用kubernetes命令行进行操作。
Kubernetes plugin:使用kubernetes则需要安装该插件
Kubernetes Continuous Deploy Plugin:kubernetes部署插件,可根据需要使用
三、配置相关全局变量
配置Jenkins有关插件
(1)Global Tool Configuration配置Maven/JDK/GIT
maven
jdk
git
四、配置系统变量
url可以直接写https://gitee.com
获取token
https://gitee.com/profile/personal_access_tokens
保存完事
五、创建jenkin项目
选择刚刚配置的gitee的token令牌
六、自动部署
gitee上面
七、自动打包发布
完成
脚本
版本一:
source /etc/profile
BUILD_ID=dontKillMe
DATE=$(date +%Y%m%d)
DIR=/home/www/.jenkins/workspace/和你创建的项目相同
JARFILE=你自己的拉取打包名称
if [ ! -d $DIR/backup ];then
sudo mkdir -p $DIR/backup
fi
cd $DIR/target
PID=`ps -ef |grep $JARFILE | grep -v grep | awk '{print $2}' | xargs`
if [ "$PID" ];then
echo "异常关闭 杀死进程 $PID"
kill -9 $PID
else
echo "正常关闭 "
fi
# mv $JARFILE backup/$JARFILE$DATE
nohup java -jar $JARFILE > $JARFILE.log.file &
if [ $? = 0 ];then
sleep 30
tail -n 50 $JARFILE.log.file
fi
版本二:
#!/bin/sh
#tomcat目录
tomcat_home=/tomcat/apache-tomcat-9.0.22
#项目名字
project_name=ROOT
#jenkins项目路径
jenkins_project_path=/var/lib/jenkins/workspace/Root/target/Root.war
#配置文件:application存放路径
bak_home=$tomcat_home/bak
#当前时间
now=$(date +"%Y%m%d%H%M%S")
#关闭tomcat并杀死进程
$tomcat_home/bin/shutdown.sh
pid=`ps -ef | grep apache-tomcat-9.0.22 | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
fi
#防止jenkins构建完后杀死tomcat进程
export BUILD_ID=dontKillMe
sleep 5
echo "关闭tomcat"
#如果配置文件备份目录不存在,创建备份
if [ ! -d $bak_home ];then
mkdir -p $bak_home
fi
echo "创建配置文件备份目录"
#备份项目旧版本并删除
cd $tomcat_home/webapps
mv $project_name $bak_home/$project_name$now
rm -rf $project_name
echo "备份项目旧版本并删除"
#复制jenkins打包好的目录到tomcat
cp -rf $jenkins_project_path $project_name".war"
echo "把新项目复制过来"
#解压war包,并替换配置文件
unzip $project_name".war" -d $project_name
cp -rf $tomcat_home/bak/application.yml $tomcat_home/webapps/$project_name/WEB-INF/classes/application.yml
echo "覆盖配置文件"
#删除war包,避免配置文件更改导致版本不一致
rm -rf $project_name".war"
#启动项目
$tomcat_home/bin/startup.sh
echo "启动tomcat"
测试
相关网址
Jenkins监听gitlab的提交并自动打包
参照类似gitee 以上gitlab所有步骤换成gitee就行了
gitee使用webhoot触发Jenkins自动构建
Git的使用 IDEA同时同步GitHub和Gitee(学习笔记)