• Jenkins实现自动化部署


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

    通过Jenkins实现自动化部署项目,本地git提交代码Jenkins自动化将项目部署在Linux服务器

    Jenkins自动化部署实现原理

    1、环境准备

    Linux需要安装JAVA,GIT,MAVEN.如果是war部署还需要TOMCAT

    [root@zxone demo]# java -version
    java version "1.8.0_261"
    Java(TM) SE Runtime Environment (build 1.8.0_261-b12)
    Java HotSpot(TM) 64-Bit Server VM (build 25.261-b12, mixed mode)
    [root@zxone demo]# git --version
    git version 2.28.0

      [root@zxone ~]# mvn -v
      Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
      Maven home: /home/zhangsha/apache-maven-3.6.3
      Java version: 1.8.0_261, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_261-amd64/jre
      Default locale: en_US, platform encoding: UTF-8
      OS name: "linux", version: "3.10.0-1127.18.2.el7.x86_64", arch: "amd64", family: "unix"

     2、安装Jenkins

        2.1).下载安装包jenkins.war

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

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

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

     2.5).这里建议选择,推荐安装的插件,保证基本常用的功能可以使用。

    注意:可能各种原因,插件安装失败,则跳过也可以,再登录到Jenkins之后可以对插件进行自定义选择性安装。

    插件安装界面

     2.6).设置初始用户和密码

    2.7).登录账号密码之后,进入系统,安装完成。(如果录入账号密码登录遇到空白页,重启jenkins服务在尝试重新登录)

     3、Jenkins基本配置

     3.1).插件配置(系统管理-插件管理)

    在插件管理页面可以对插件进行安装、卸载、更新。(各个插件的版本和Jenkins版本有时候会有兼容性问题,可以进行更新或者降级)

    需要安装的插件:

    •远程连接服务插件(必须):Publish Over SSH

    •发布插件必须:Deploy to container Plugin

    •Maven插件必须: Maven Integration plugin

    •git插件: Git plugin(git和svn根据自身需求)

    •svn插件 :Subversion Plug-in (git和svn根据自身需求)

     3.2).全局工具配置(系统管理-全局工具配置)

     3.2.1-Maven配置

      3.2.2-JDK和GIT配置

       3.2.3-Maven配置

      3.3).系统配置(系统管理-系统配置)

    3.3.1-Jenkins主目录(一般不用修改)

     3.3.2-Publish over SSH插件配置

     

    3、Jenkins构建任务

    上述基本配置完成之后就可以开始构建任务。

    3.1首页-新建任务

    录入任务名称,选择“构建一个自由风格的软件项目”。

    创建完成出现任务列表

     

     点击名称,进入任务工程的操作界面,可以对任务进行配置、删除、构建操作。

     3.2任务-配置(重点)

    3.2.1-General 可以勾选“丢弃旧的构建”根据自身需求填写即可。

     3.2.2-源码管理

    Repository URL:gitlub或者gitee的代码的git地址

    Credentials:凭证(第一次需要添加账号密码)

     

      3.2.3-构建触发器

    触发器可以不勾选,每次手动进行构建即可。

      3.2.4-构建环境

    执行的sheel脚本start.sh参考如下:

    如果jenkins执行shell脚本出现权限问题,修改jenkins的配置的用户为root用户。

    #!/bin/bash
    echo "Stop Procedure : demo-0.0.1-SNAPSHOT.jar"
    APP_PATH=/home/www/jenkins-auto/demo
    pid=`ps -ef |grep java|grep demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'`
    echo 'old Procedure pid:'$pid
    if [ -n "$pid" ]
    then
    kill -9 $pid
    echo "kill end---"
    fi
    echo 'Start the program : demo-0.0.1-SNAPSHOT.jar'
    echo '-------Starting-------'
    export BUILD_ID=dontKillMe            #注释:防止:Jenkins启动项目之后,之后杀死进程 配合 sleep 10s  使用
    nohup java -jar $APP_PATH/demo-0.0.1-SNAPSHOT.jar > $APP_PATH/admin.log & 2>&1 &   #注释:admin.log 项目启动日志
    sleep 10s echo 'start success'

     3.2.5-构建

     3.3操作立即构建

    配置完成之后,点击立即构建

      3.4构建完成

    根据配置将代码下载到:/var/lib/jenkins/workspace/demo

    根据配置将jar移动到:/home/www/jenkins-auto/demo

     

     

    以上即实现了Jenkins自动化部署的流程,通过git移交代码之后,手动点击 “立即构建”即可将最新代码部署到服务器上。

  • 相关阅读:
    leetcode 128. Longest Consecutive Sequence 最长连续序列(中等)
    《Effective Java》第54条:返回零长度的数组或者集合,而不是null
    EasyPlayer如何获取点播视频流的时间戳?
    TSINGSEE智能分析网关简介及说明
    TSINGSEE青犀视频AI智能分析网关重磅发布!
    TSINGSEE青犀视频智能分析网关平台首页为何取消四分屏展示?
    基于AI深度学习的安全帽检测算法,如何应用在实际场景中?
    AI智能分析网关包含哪些深度学习算法?如何赋能场景应用?
    AI智能分析网关包含哪些深度学习算法?如何赋能场景应用?
    TSINGSEE智能分析网关如何添加通道?
  • 原文地址:https://www.cnblogs.com/zxone/p/13503656.html
Copyright © 2020-2023  润新知