Jenkins入门教程
Jenkins入门教程
@
1. 什么是Jenkins
1.1 我们为啥需要jenkins
在一次系统开发中,往往需要如下几步:
- 写代码
- 代码提交
- 四处打听有没有人没提交的代码
- 项目打包(通常是jar包和war包)
- 上传到Linux服务器上
- 如果项目正在运行,关闭它
- 启动刚刚部署的项目
- 如果有人突然举手说我代码好像有点问题!重复步骤1-7,可以说是相等的折磨人了
这时有人就会问了,有没有那种可以自动打包部署的工具呢?

正确答案:Jenkins
Jenkins是一个基于Java构筑的一个持续集成工具,可以帮助用户更好地实现持续集成
1.2. Jenkin实现原理
- 程序员们提交代码
- 版本控制服务器(git、svm)整合代码库
- 版本控制服务器通知Jenkins自动化部署
- Jenkins调用git/svn插件获取源码
- Jenkins调用maven插件打包成war包或者是jar包
- Jenkins调用命令将项目部署到服务器
- 使用人员:测试/前端
2. Jenkins搭建
2.1. Jenkins环境搭建(以CentOS7.5为例)
- jdk
- maven/gradle
- git/svm
以上为部署java项目的基本环境,请先行搭建好
2.2. 安装Jenkins
安装包下载,Jenkins官网下载较慢,这里提供国内下载地址:Jenkins
在安装包根路径下输入: nohup java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true jenkins.war --httpPort=8080 &
- nohup ............. & 后台启动
- -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true 为了关闭CSRF,Jenkins2.2版本之后无法关闭CSRF,会导致项目拉取失败
- jenkins.war 下载下来的war包
- --httpPort=8080 指定jenkins管理页面的端口
安装结束后会有一个很长的初始密码,如果忘了可以在~/.jenkins/secrets/initialAdminPassword文件中查看
在浏览器输入 http://localhost:8080
输入密码后,建议点击安装推荐的插件,保证基本功能可用
安装完成后设置首个管理员用户和密码
2.3. Jenkins初始化配置
2.3.1. 汉化插件(可选)
Linux安装完成后,第一次打开发现内部全都是英文的
汉化步骤:

- 点击Manage Jenkins
- 点击Mange Plugins
- 点击Advanced,设置Update Sites的URL为:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json 用国内镜像源安装插件速度会很快
- 插件安装(新老版本二选一)
- 老版的安装Locale插件,随后依次点击Manage Jenkins -> Configure System,找到Locale输入zh_CN,并在下面打钩,
- 新版的安装Localization:Chinese(Simplified)插件即可(作者自用,Jenkins版本2.277)
- 拉到最下方点击save
- 重启(推荐方式: http://localhost:8080/restart)真的很省事
2.3.2. 全局工具配置(系统管理底下)
JDK、Git、Maven配置:


注意项:
- 如果没有git的配置项,先在插件里安装一下git插件,具体安装方式参照上面汉化步骤
- 是否自动安装自行考虑,网上看别人的建议是用自己的(自己的才是最好的)
- 记得拉到最底下点保存
- 换上你自己的目录配置项
- 记得把Maven的settings.xml里的mrror换成阿里源
- 上图git记得配置成git可执行文件的全路径
2.3.3. 安装远程服务器插件以及其余插件
一共需要安装三个插件(安装步骤参考上面汉化步骤):
- Publish Over SSH 用于连接远程服务器
- Deploy to container 用于把打包的应用发布到远程服务器
- Maven Integration 用于构建Maven项目
2.4. 配置连接远程服务器的SSH
- 依次点击 系统管理 -> 系统配置
- 拉到最底下找到Publish over SSH,参考下图填写完毕

参考值:
| 名字 | 对应内容 |
|---|---|
| Passphrase | 服务器的密码 |
| Path to key | 连接远程服务器密钥文件的路径 |
| Key | SSH Key (具体内容看下面注意项) |
| Name | 自定义服务器名 |
| HostName | 服务器IP地址 |
| UserName | 服务器用户名 |
| Remote Directory | 传输文件的目录 |
注意项:
如果找不到Publish over SSH,说明该插件未安装,请参考汉化步骤自行安装
登录方式:
- 如果是用户名密码登录,输入Passphrase即可
- 如果是SSH秘钥登录则输入Path to Key以及Key
Key在~/.ssh/id_rsa.pub文件里,若无此文件则命令行输入ssh-keygen,然后一路回车自动生成(Windows系统还请自行百度)
Remote Directory是你打包后的项目(jar包/war包)存放的地方,请先记住后续需要使用。
右下角有个Test Configuration可以点一下看看有没有Success
3. 守护程序员的笑容---自动化集成部署(来了来了,他来了)
3.1 项目构建
以构建maven项目为例,构建步骤如下:
新建任务

构建maven项目

源码管理配置(选择github上的项目)


触发器配置(github稍后会配置)

构建后操作

3.2. github配置

3.3 服务器添加脚本
进入到2.4配置的Remote Directory里,创建两个脚本(请根据自己的情况修改脚本)
stop.sh:
#!/bin/bash
pid=ps -ef |grep springboot-demo-0.0.1-SNAPSHOT.jar|awk '{print $2}'
if [ -n "$pid" ]
then
kill -9 $pid
fi
start.sh:
#!/bin/bash
chmod 777 /usr/local/java-projects/springboot-demo-0.0.1-SNAPSHOT.jar
cd /usr/local/java-projects
nohup java -jar springboot-demo-0.0.1-SNAPSHOT.jar &
3.4 测试
- 编写一个helloController
@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "Hello World!!!!!!!!!!!!";
}
}
push项目
jenkins开始自动部署项目

点击进项目,可查看控制台

访问项目路径 http://beanchan.cn/hello (我的,给你偷偷看一眼)
至此我的处女作也算是小小的完结了,内容也只是入门,后续部分会慢慢完善,在哪里如有存在着问题,或者这篇哪里还可以改进的,又或者你在通篇按照我的指示完成后还是无法正常使用欢迎与我探讨探讨,感谢你的观看。
Jenkins入门教程的更多相关文章
- Jenkins入门教程(一):Windos下Jenkins的安装教程
Jenkins的安装教程 Jenkins安装前的准备 1.安装jenkins前首先确保你的电脑已经安装了JDK,由于jenkins是基于java开发的 JDK下载地址 2.下载jenkins的安装包 ...
- jenkins 入门教程(下)
接上回继续学习jenkins,这次主要来看一些疑难杂症: 一.yum install安装方式 除了直接java -jar jenkins.war方式,还可以用yum安装,这种方式下提供了更多的可配置选 ...
- jenkins 入门教程(中)
接上回继续,本文以我托管在bitbucket上的一个开源项目spring-boot-rest-framework做为演示,讲解如何创建自动化部署. 一.创建item 点击ok继续,item的详情页面很 ...
- jenkins 入门教程(上)
jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java, ...
- jenkins 入门教程(上)【转】
转自:https://www.cnblogs.com/yjmyzz/p/jenkins-tutorial-part-1.html jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更 ...
- jenkins 入门教程
jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的"自动化"编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java, ...
- Jenkins入门系列之——02第二章 Jenkins安装与配置
2014-12-08:已不再担任SCM和CI的职位,Jenkins的文章如无必要不会再维护. 写的我想吐血,累死了. 网页看着不爽的,自己去下载PDF.有问题请留言! Jenkins入门系列之——03 ...
- [转载] Jenkins入门总结
转载自http://www.cnblogs.com/itech/archive/2011/11/23/2260009.html 在网上貌似没有找到Jenkins的中文的太多的文档,有的都是关于Huds ...
- Jenkins入门总结
Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作 在网上貌似没有找到Jenkins的中文的太多的文 ...
随机推荐
- [简单-剑指 Offer 53 - II. 0~n-1中缺失的数字]
[简单-剑指 Offer 53 - II. 0-n-1中缺失的数字] 一个长度为n-1的递增排序数组中的所有数字都是唯一的,并且每个数字都在范围0-n-1之内.在范围0-n-1内的n个数字中有且只有一 ...
- java容器-Iterator
1介绍 java中的容器主要是Collection<E>的子类型,即都实现了Iterable<E>接口,即使是Map类型,也有entrySet方法可以获得该Map的所有元素组成 ...
- Beta冲刺——第六天
这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzzcxy/2018SE1 这个作业要求在哪里 https://edu.cnblogs.com/campus/fz ...
- [不止于代码]Unraid基本使用速记
1.Unraid简介 Unraid是一个虚拟机系统,类似于VM.PVE,但又区别于前二者.通过Unraid的Dokcer可以快速构建类Nas及虚拟机环境,也可虚拟黑群晖使用,可以使用磁盘阵列,保护你的 ...
- 探索 .NET团队对API的设计流程
在这篇文章中,我想介绍一些我觉得非常有趣的东西,.NET 团队是如何设计API的? 我们先来看下.NET团队面临的有哪些挑战,您正在设计一套API库,每天有数百万的开发人员在使用这些库,它们在世界各地 ...
- Angular入门到精通系列教程(4)- 开发环境搭建以及入手项目
1. 本地开发环境搭建 1.1. node.js 1.2. Angular CLI 2. 开发工具 - Visual Studio Code 第一个Anuglar项目 创建第一个anuglar项目 A ...
- Java 反射修改类的常量值、静态变量值、属性值
前言 有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值. 定义一个实体类 class ...
- python列表字符串集合常用方法
1.1 列表常用方法 # 1. append 用于在列表末尾追加新的对象a = [1,2,3]a.append(4) # the result : [1,2,3,4]# 2. count方法统计某个 ...
- (一)React Ant Design Pro + .Net5 WebApi:先搞定服务器,顺手装个Nginx
腾讯云搞定服务器,具体过程就不赘述了,文档都有,咨询客服或者自行百度,体验一下过程. 一. 服务器 1. 云服务器 cvm 1核2G centos8.0 2. 域名注册 www.homejok.com ...
- 日常采坑:.NetCore上传大文件
一..NetCore上传大文件 .NetCore3.1 webapi 本地测试上传时,遇到一个坑,大点的文件直接失败,根本不走控制器方法. 二.大文件上传配置 IFormFile方式,vs IIS E ...