持续集成工具jenkins

一、jenjins简介

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

官网地址:https://jenkins.io/

二、安装过程

注:需要提前安装jdk8

  1. 点此下载 Jenkins安装包.  

  2. 运行  nohup java -jar jenkins.war --httpPort=8080 >>jenkins.log 2>&1 &

  3. 访问  http://localhost:8080.

  4. 输入密码
[root@pro-nginx ~] cat  /root/.jenkins/secrets/initialAdminPassword
fd17df9cb02c4a0aa7cc285c8eb62e90

   

  5.自定义安装插件

      6.pipline有关的全部勾选上,点击install 等待安装完成

 如遇到安装报错,请更新为国内安装源

vim /root/.jenkins/hudson.model.UpdateCenter.xml
<sites>
  <site>
    <id>default</id>
    <url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
  </site>
</sites>

    7.其他配置(不是必须的)

   关闭CRSF

 

三、流水线pipline脚本

3.1 pipline持续集成脚本

#!groovy
pipeline{
agent any
environment{  
    REPOSITORY="http://192.168.1.28/test/test.git"
    SCRIPT_PATH="/data/script"
    PROJECK="test"
}
stages {
  stage("获取代码") {
      steps {
          echo "start fetch code from git:${REPOSITORY}"
          deleteDir()
          git "${REPOSITORY}"
      }    
   }
  stage("编译") {
      steps {
          echo "start compile"
          sh "mvn  clean package"
      }   
   }
   stage("构建+推送镜像") {
      steps {
          echo "start build image"
          sh "cp -ar ${PROJECK}_api/target/${PROJECK}.jar /data/docker/${PROJECK}/"
          sh "${SCRIPT_PATH}/build-images.sh ${PROJECK}"
      }   
   }
   stage("发布系统") {
      steps {
          echo "start deploy"
          sh "${SCRIPT_PATH}/deploy.sh ${PROJECK}"
      }   
   }
}
}
pipline持续集成脚本

3.2  构建docker镜像和推送脚本

#!/bin/bash
PROJECT=$1
NOW_TIME=`date +%m%d%H%M`
GIT_REVISION=`git log -1 --pretty=format:"%h"`
IMAGE_NAME=ccr.ccs.tencentyun.com/test/${PROJECT}:${NOW_TIME}_${GIT_REVISION}
DATA_DIR=/data/tanlu/${PROJECT}
if [ !-d ${DATA_DIR}];then
    mkdir -p ${DATA_DIR}
fi
docker login --username=username --password='password' ccr.ccs.tencentyun.com
cd ${DATA_DIR}
docker build -t ${IMAGE_NAME} .
cd -
docker tag ${IMAGE_NAME} ccr.ccs.tencentyun.com/tanlu/${PROJECT}:latest
docker push ccr.ccs.tencentyun.com/tanlu/${PROJECT}:latest
docker push ${IMAGE_NAME}
echo ${IMAGE_NAME} >IMAGE_NAME
build-images.sh

运行效果

 

 其他项目发布脚本模板

#!/bin/bash
project=$1
back_dir=/tmp/project
new_dir=/usr/java/project/new
project_dir=/usr/java/project
port=$2
time=`date +%Y%m%d%H`
function backup_shutdown(){
    mv $project_dir/${project}.jar $back_dir/${project}$time.jar
    mv $new_dir/${project}.jar $project_dir
    kill -9 `netstat -lnpt|grep $port|awk  '{print $7}'|cut -d "/" -f1`
}

function deploy(){
    cd $project_dir
    nohup /usr/java/jdk1.8.0_181/jre/bin/java \
    -Xms300m -Xmx300m -Dapp.id=oowoo \
    -Denv=dev -Ddev_meta=http://172.17.32.6:8080 \
    -jar ${project}.jar >logs/${project}.log 2>&1 &
    sleep 10
    tail -100  logs/${project}.log
}

function main(){
    backup_shutdown
    deploy
}
main
脚本模板

 

      

 

转载于:https://www.cnblogs.com/xiangjun555/articles/10412454.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值