目 录CONTENT

文章目录

CentOS7-安装Jenkins

javalx
2023-04-13 / 0 评论 / 0 点赞 / 68 阅读 / 0 字

Jenkins + Gitee搭建(war包模式)

​ 本文主要记录Jenkins和Gitee组合进行服务发布的安装配置及相关问题,不包含JDK等的安装配置。

jenkins包下载

  • jenkins中文地址

    https://www.jenkins.io/zh/
    

  • war包下载地址

    https://mirrors.jenkins.io/war-stable/
    

    在jenkins官网首页选择"文档",选择"安装Jenkins",移动至"WAR文件"即可看到war包下载地址,https://mirrors.jenkins.io/下有各种安装包

启动Jenkins

  • 启动脚本

    #!/bin/bash
    echo 'Start the program : jenkins.war'
    echo ${JAVA_HOME}
    echo '-------Starting-------' 
    nohup /usr/local/java/bin/java -Dhudson.util.ProcessTree.disable=true -Xms1024m -Xmx1024m -jar /root/jenkins.war --httpPort=9810 > /root/jenkins.log 2>&1 & 
    echo 'start success'
    
    1. -Dhudson.util.ProcessTree.disable=true 设置禁止jenkins杀死衍生进程
    2. --httpPort=9810 设置启动端口
    3. 启动日志中会输出初始密码及其存储位置
  • 停止脚本

    #!/bin/bash
    echo "Stop Procedure : jenkins.war"
    pid=`ps -ef |grep -v grep | grep jenkins.war | awk '{print $2}'`
    echo 'old Procedure pid:'$pid
    if [ -n "$pid" ]
    then
    kill -9 $pid
    fi
    

配置插件

  • 浏览器访问jenkins

  • 输入初始密码

  • 插件安装可自选或推荐(默认推荐即可)

  • 设置管理账户,然后重启Jenkins

  • 系统管理中选择插件管理,安装Maven和Gitee插件(Maven Integration plugin & Gitee Plugin)

配置全局工具

  • 系统管理中选择全局工具配置,配置Manen、Git、Jdk安装路径(需先在Jenkins服务器安装Maven、Git、Jdk)

创建构建任务

新建任务配置

输入任务名称,同工作目录名,选择"自由风格"

源码管理配置

配置Gitee地址和访问凭证(支持账户和令牌方式)

构建配置

配置构建命令和执行脚本等

相关脚本
  1. api_stop.sh

    echo "Stop Procedure : fancywalkman.jar"
    pid=`ps -ef |grep -v grep | grep fancywalkman.jar | awk '{print $2}'`
    echo 'old Procedure pid:'$pid
    if [ -n "$pid" ]
    then
    kill -9 $pid
    fi
    
  2. api_start.sh

    #!/bin/bash
    echo 'Backup the old package!'
    mv /usr/local/fancywalkman.jar /usr/local/backup/fancywalkman-$(date "+%Y%m%d%H%M%S").jar
    echo 'Start the program : fancywalkman.jar'
    echo ${JAVA_HOME}
    cp -rf /root/.jenkins/workspace/fancywalkman_api/dwstock-web/target/dwstock-web-2.3.jar /usr/local/fancywalkman.jar
    echo '-------Starting-------' 
    nohup /usr/local/java/bin/java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar -Dspring.profiles.active=prod /usr/local/fancywalkman.jar > /usr/local/fancywalkmanConsoleMsg.log 2>&1 & 
    echo 'start success'
    
其他说明
  • 本次为jenkins与应服务在同一服务器上操作,jenkins与应用服务器分离方式的部署需要SSH相关插件和远程服务器配置

  • 关于构建项目成功后服务并未正常启动的问题,分一下两种情况:

    1. jenkins默认会在构建完成后杀死构建过程中由jenkins中的shell命令触发的衍生进程,即构建完后启动的应用进程会被自动干掉
    2. jenkins中命令不识别(如nohup java -jar 中java无法识别等情况 )

    解决办法:

    • 第一种:

      1. 将jenkins和业务服务器分开,这样jenkins即使杀死衍生进程也只会是自己服务器的,而不会影响业务服务器

      2. 修改jenkins配置,禁止其杀死衍生进程,war包配置-Dhudson.util.ProcessTree.disable=true,相关官方说明:

        Jenkins : ProcessTreeKiller

        Jenkins : Spawning processes from build

      3. 修改shell脚本,重置BUILD_ID,使jenkins找不到衍生进程

        # 加在"构建"命令的最上方
        BUILD_ID=DONTKILLME
        mvn clean package -Dmaven.test.skip=true -Pprod
        
    • 第二种:

      1. 在脚本刷新变量或输出环境变量

      2. 使用命令的绝对路径

0

评论区