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