jekins集成部署

1.jekins简介

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

image-20221211193258263

2.Jenkins部署环境

基本环境:

1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。

2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。

3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle

以上是自动化部署java程序jenkins需要的基本环境,请自己提前安装好,下面着重讲解Jenkins的安装部署配置。

1.jdk环境配置: 将jdk解压到指定目录 tar -zxvf jdk压缩包 ,然后配置如下环境变量 ,然后在 /etc/profile 文件末尾 配置如下环境变量

JAVA_HOME=/web/jdk/jdk1.8.0_311
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH

2.git环境配置

# 卸载 git  yum remove git 出现提示输入y即可
# 自行下载地址:https://github.com/git/git/releases/tag/v2.11.0
# 解压  tar zxvf git-2.11.0.tar.gz
# 编译安装 make && make install
# 查看git where is git
# vim /etc/profile 在文件末尾添加 export PATH=$PATH:/usr/local/git/git-2.11.0/bin 
# 更新配置 source /etc/profile
# 检测是否安装成功 git --version

3.maven 环境配置: 将maven解压到指定目录 tar -zxvf jdk压缩包 ,然后在 /etc/profile 文件末尾 配置如下环境变量

# maven config
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.0
export PATH=${PATH}:${MAVEN_HOME}/bin

3. jekins安装

1.下载安装包 http://mirrors.jenkins.io/war-stable/2.346.3/jenkins.war

2.在安装包根路径下,运行命令 java -jar jenkins.war --httpPort=7001 ,(linux环境、Windows环境都一样);

3.打开浏览器进入链接 http://localhost:8080.

4.填写初始密码,激活系统

4.配置jekins启动和停止脚本

image-20221211195407096

#!/bin/bash
pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
if [ "$1" = "start" ];then
        if [ $pid -gt 0 ];then
    echo 'jenkins is running...'
    else
    nohup java -jar jenkins.war --logfile=server.log --httpPort=7001 > jenkins.log 2>& 1 &
        fi
elif [ "$1" = "stop" ];then
        exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
    echo 'jenkins is stop..'
else
        echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
fi

启动 ./jekins start 停止 ./jekins stop

5.插件安装

5.1.安装maven插件安装

image-20221211200326601

5.2 安装gitee插件

image-20221211200541244

5.3 安装Publish Over SSH插件

image-20221211213348211

5.4 安装 事件机制插件

image-20221211235714639

6.任务构建

6.1 构建任务

点击新建任务,然后选择构建一个maven项目,然后输入任务名称,点击确认即可

image-20221211200801084

6.2 配置giteeApi令牌

点击用户头像,然后点击左侧凭据,然后添加一个全局的凭据

image-20221211201416522

访问gitee然后生成一个令牌

image-20221211201650396

6.3 配置gitee源码地址

如果repository爆红,那就说明没有配置 giteeApi令牌,或者是ssh访问秘钥。我这里使用的是ssh访问的方式

image-20221211202359821

6.4 在build中配置maven相关参数

image-20221211202815457

6.5 全局参数配置

配置一下jdk环境 已经maven环境 git环境这些 避免出现不必要的错误

image-20221211203710358

6.6 构建项目

image-20221211204300539

image-20221211204400237

构建完毕后我们完全可以直接运行:后期我们在配合脚本的放完全自动化运行

image-20221211204443213

7.配置远程server

我们可以配置远程目录,然后在maven打包完毕后,将这个文件上传到指定服务器的路径下

在全局配置中配置如下内容,配置完毕后可测试一下是否可以连通

image-20221211205640771

8.配置上传到远程server并且运行

前提是启动的端口号不要被占用,后续通过脚本来解决这个问题

image-20221211212515934

jar包上传完毕后需要执行的shell脚本指令

source /etc/profile
cd /web/jenkins/app/jekinsDemo/
chmod 755 start.sh
BUILD_ID=DONTKILLME
/web/jenkins/start.sh  /web/jenkins/app/jekinsDemo/jekinsDemo.jar 8081

start.sh 内容如下

#!/bin/sh
# 第一个参数为jar包路径 第二个参数为启动端口号
#接收第一个参数作为项目名称,根据项目名称找到进程id
project_pid=`ps -ef | grep  $1 | grep 'java' | awk '{printf $2}'`
if [ "$project_pid" = "" ];

then
  echo "jar包名称:$1的应用没有启动"
 # 如果该项目没有启动就直接启动
 nohup  java -Dfile.encoding=utf-8 -jar -Dserver.port=$2 $1  >appStart.log &
 check_start=`ps -ef | grep  "$1" | grep 'java' | awk '{printf $2}'`

    if [ "$check_start" != "" ];
       then
       echo "jar包名称:$1的应用启动成功,端口号为:$2"
     else
        echo "jar包名称:$1的应用启动失败" 
     fi     
else
  # 如果应用启动,先杀掉改进程
  skill -9 $project_pid
  $check_pid=`ps -ef | grep -w $project_pid | grep java`
  if [ -z $check_pid  ];
    then
        echo 'jar包名称:'$1';进程id:'$project_pid'的应用已经成功停止'
         # 停止掉该引用后就启动该项目
        nohup  java -Dfile.encoding=utf-8 -jar -Dserver.port=$2  $1  >appStart.log &
        check_start=`ps -ef | grep  "$1" | grep 'java' | awk '{printf $2}'` 
         if [ "$check_start" != "" ];
            then
            echo "jar包名称:$1的应用启动成功,端口号为:$2"
         else
          echo "jar包名称:$1的应用启动失败" 
        fi 
    else
        echo "jar包名称:$1;进程id:$project_pid的应停止动失败"
  fi
fi

如果出现超时的情况,就在往下拉,找到超时设置,把超时时间设置长一点,默认是2分钟

image-20221211212123903

9.jekins构建事件触发

只要向 http://主机名:7001/buildByToken/build?token=TOKEN 发起请求,并且携带正确的token即可触发构建

image-20221211235914729

image-20221212000156218

image-20221211212123903

9.jekins构建事件触发

只要向 http://主机名:7001/buildByToken/build?token=TOKEN 发起请求,并且携带正确的token即可触发构建
image-20221211235914729

image-20221212000156218

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值