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移交代码之后,手动点击 “立即构建”即可将最新代码部署到服务器上。

原文地址:https://www.cnblogs.com/zxone/p/13503656.html