美文网首页
centos7 jenkins以jar包方式自动部署gitlab

centos7 jenkins以jar包方式自动部署gitlab

作者: captainLii | 来源:发表于2021-01-14 17:12 被阅读0次

    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


    • 回到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进行构建

    ==== 正文 END ====
    声明:原创

    相关文章

      网友评论

          本文标题:centos7 jenkins以jar包方式自动部署gitlab

          本文链接:https://www.haomeiwen.com/subject/ehhuaktx.html