jenkins搭建以及使用手册
一、 概要
环境准备之前先废话两局,jenkins可以帮我们完成自动化部署持续集成。
1. 原理流程
- 从版本库(git、svn)拉取代码到本地
- 使用本地(maven、ANT)编译、测试、打包。
- 将部署包发送至远程要部署的服务器,
- 执行脚本部署,让包在远程服务器跑起来。
- 可以编写定时触发器构造版本,定时构造版本、定时检测代码更新构造版本等等。
- …
接下来模拟:从jenkins的部署,到使用jenkins 完成版本的部署教程。
2. 环境准备
-
准备一台linux机器,环境已经安装好jdk1.8,使用java -version 查看是否已安装jdk
-
安装git客户端 因为需要从git上拉取代码 git clone
-
并且已经配置了maven客户端,使用mvn -v 查看是否已安装maven
-
远程代码仓库服务器为gitlab。
如果不会安装jdk、git、maven 就请自行百度啦。
二、开始搭建
-
使用jenkins用户上传软件包
上传 jenkins.war plugins.tar.gz
jenkins.war 可以在官网下载地址:https://www.jenkins.io/zh/download/
这里的plugins.tar.gz 是我打包的自己jenkins的插件 目录为:~/.jenkins/plugins/ 没有也没关系 可以在线安装.
-
创建插件目录 (没有插件可以略过这一步)
如果离线安装,没有网络无法在线下载插件,所以直接在有网络的环境下载好jenkins的插件包,然后打包 ~/.jenkins/plugins/目录下的插件复制到内网环境的jenkins的插件目录下即可
对应目录为~/.jenkins/plugins/
创建目录 并且解压插件
mkdir ~/.jenkins/ tar -zxvf plugins.tar.gz -C ~/.jenkins/
-
编写 启动 停止脚本
vi server-jk.sh #内容为: #! /bin/bash port=8000 app=jenkins.war cmd=$1 pid=$(netstat -nlp | grep :$port | awk '{print $7}' | awk -F"/" '{ print $1 }'); function start(){ nohup java -jar -Dhudson.util.ProcessTree.disable=true $app --ajp13Port=-1 --httpPort=$port & } function stop(){ if [ -n "$pid" ]; then kill -9 $pid; fi } if [ ! $cmd ]; then echo "Please specify args start | stop" exit fi echo $cmd if [ $cmd == 'start' ]; then if [ ! $pid ] then start else echo "$app is run ! pid = $pid" fi fi if [ $cmd == 'restart' ]; then if [ $pid ] then echo "$pid will be killed after 3 seconds!" sleep 3 stop fi start fi if [ $cmd == 'stop' ]; then stop echo "$app is stopped" fi
-
启动 jenkins
sh server-jk.sh start
-
访问地址
这里换成你启动的IP
-
配置
这里的默认密码在后台查看
cat /home/jenkins/.jenkins/secrets/initialAdminPassword
-
跳过离线插件安装
-
创建管理员用户
- 访问路径配置,直接点确认即可
- 至此搭建已完成
三、配置使用jenkins
-
安装成功后 查看插件是否成功
Manage Jenkins >> Manage Plugins 下,进入后,如下图
如果需要额外的其他插件,可以到:https://updates.jenkins.io/download/plugins 进行下载 hpi 文件 后 点击高级,往下拉,如图可以上传
哪些插件需要安装呢,其实我这里也记不大清除了,反正
ssh 、 git 、maven 这些插件都安装上吧。
-
配置JDK、MAVEN
Manage Jenkin >> Global Tool Configuration
配置JDK安装目录,根据实际情况配置
配置maven的安装目录,更具实际安装情况配置
-
配置远程服务器
Manage Jenkin >> Configure System
拉到最下面
点击高级配置用户密码 如下图,多个服务就往下加就可以了
- 进入正题,开始构造任务
4.1 选中第一个 取个名称为demo
4.2 General 为通用配置,根据实际情况配置,不是必选配置
4.3 配置git 仓库
URL 为远程gitlab 仓库地址,登录 gitlab 可以查看,注意这里使用http
Credentials 点击添加,配置用户名密码。
注意:使用http拉取代码需要jenkins机器上安装curl
这里只介绍http的方式拉取代码 ssh方式拉取代码 请百度一下,因为要配置公钥,稍微麻烦一点…
4.4 配置构造触发器
Build after other projects are built:其他任务构造后在执行
Build periodically:定时构造(固定时间构建)
Build when a change is pushed to GitLab. GitLab webhoo: 是gitLab仓库的插件 向GitLab提交代码时触发Jenkins自动构建
参考资料:https://blog.csdn.net/u012375924/article/details/63267439
GitHub hook trigger for GITScm polling:是github的插件,向GitHub提交代码时触发Jenkins自动构建
参考资料:https://blog.csdn.net/boling_cavalry/article/details/78943061
Poll SCM (轮询 SCM): 定时检测代码更新自动构造。
配置每五分钟检测代码,如下图所示
4.5 配置编译后将文件发送至远程服务器,并且执行启动命令,如下图所示
jenkins 项目工作目录为:~/.jenkins/workspace ,该目录下有对应任务的git拉取的源码
test为前面我们配置的服务器。
Source files:编译后的文件
Remove prefix:去除前缀,去除对应source files中的前缀,如果不去去除 则 会连前缀一起上传.
Remote directory:远程的文件夹,这里为上传后新建的文件夹。
Exec command :要执行的命令
注意:如果配置了环境变量 未找到 命令的情况 可以 source /etc/profile 或者 source ~/.bash_profile 使环境变量生效
重启服务脚本,请参考已编写好脚本。
4.6 构造项目执行的MAVEN命令
4.7 点击保存,点击build now, 开始构建
4.8 查看控制台输出