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 可以勾选“丢弃旧的构建”根据自身需求填写即可。

jenkins每次构建的时候,都会将上次生成的文件存储到这个路径下:

/var/lib/jenkins/jobs/{你的job名称}/modules/org.example${你的job远程目录}/builds


生成的路径如上图所示,每个数字目录保存着上一次构建的存档,这样会带来一个问题,就是备份文件一直存在占用磁盘空间。所以我们需要一套规则去约束它(丢弃旧的构建),根据自身需求填写即可。

3.2.2-源码管理

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

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

 3.2.3-构建触发器

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

 3.2.4-构建环境

(1)通过公共的ssh配置进行构建

执行的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'

(2)单独修改配置文件和shell进行构建

    参考:


构建jenkins项目实现可选择分支可选择服务器部署代码


3.2.5-构建


3.3操作立即构建

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

 3.4构建完成

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

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

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




by 雪洁 2021-10-13 04:40:08 436 views
我来说几句

相关文章