centos7 jenkins以jar包方式自动部署gitlab的java(springboot web)项目

1、gitlab创建java项目

  • 略(自行创建)

2、在jenkinse服务器生成ssh key

# ssh-keygen -t rsa

2.1 查看ssh key,复制

# cd /root/.ssh/
# cat id_rsa.pub
image.png

3、在gitlab 中配置ssh key


打开设置

ssh key

add key

4、在jenkins配置jdk 与 maven
4.1 jdk安装(略)
4.2 下载maven,下载地址

# wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
maven 3.6.3

选择目录

4.3 解压、移动到/usr/local下,并配置环境变量

# cp apache-maven-3.6.3-bin.tar.gz /usr/local
# cd /usr/local
# tar -zxvf apache-maven-3.6.3-bin.tar.gz
# mv apache-maven-3.6.3 maven
# rm -rf apache-maven-3.6.3-bin.tar.gz

4.3.1 配置环境变量

export MAVEN_HOME=/usr/local/maven
:$MAVEN_HOME/bin
image.png
- 生效
# source /etc/profile
- 查看 mvn版本
# mvn -v

5、jenkins 配置jdk


打开配置

配置 jdk

no git path

5.1 安装git,下载地址
git

git version
# wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.26.0.tar.gz
-  将tar包移到/usr/local下,解压,再重命名为git
# tar -zxvf git-2.26.0.tar.gz

5.1.1 git构建时需要的环境

# yum groupinstall "Development Tools"

5.1.2 安装devel包

# yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker

5.1.3 安装git

  • 进入git 目录
# make install

5.1.3 配置git的环境变量

:/root/bint/git
image.png

5.2 jenkins 配置git


git

5.3 jenkins 配置maven


mvn

6 jenkins安装Git、Gitlab、maven(Maven Integration)、SSH(Publish Over SSH)、Gitlab Hook Plugin插件


7 jenkins配置gitlab




api token
gitlab access token
配置
  • 将生成的token复制到下面则可

    7.1 jenkins配置ssh ,如果ssh key无效 解决参考

    image.png

8、创建项目




触发定时器
  • 到gitlab项目配置webhooks


  • 出现以下情况


  • 解决:使用管理员账号去配置 Settings => Network
    ![(https://upload-images.jianshu.io/upload_images/20524072-b9ee9ba156e1da81.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  • 回到jenkins继续页面配置


  • 创建restart.sh脚本
  • 脚本内容
echo "===============STOP 服务开始 =============="
pidlist=`ps -ef|grep [打包出来的jar] | grep -v "grep"|awk '{print $2}'`
#ps -u $USER|grep "Java"|grep -v "grep"
if [ "$pidlist" = "" ]; then
        echo "no [打包出来的jar] pid alive"
else
        echo "[打包出来的jar] Id list :$pidlist"
        for pid in ${pidlist}
        {
                kill -9 $pid
                echo "KILL $pid:"
                echo "service stop success"
        }
fi
echo "===============STOP 服务结束 =============="
echo "===============START 服务开始 =============="
JAVA_HOME=[jdk目录]
dir=/opt/jenkins_jars
cd $dir
echo dir=$dir
jar=$(find /lib -type f -name *.jar)
classpath=$dir/*:$dir/lib/*:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
echo classpath=$classpath
echo ---------------------------------------------
nohup $JAVA_HOME/bin/java -classpath $classpath -XX:-UseGCOverheadLimit -Xms1024m -Xmx2048m -jar $dir/[jar名称]  > $dir/log/$(date +'%Y%m%d').log &
echo "===============START 服务结束 =============="
  • 回来jenkins继续配置


开始测试

1、第一次构建


  • 构建完成


    image.png
  • 当gitlab中对应的项目与jenkins配置触发器对应的分支发生marge事件发生时,会通知jenkins进行构建


你可能感兴趣的:(centos7 jenkins以jar包方式自动部署gitlab的java(springboot web)项目)