Spring Cloud 项目实战 Jenkins 实现 CI/CD 你需要的这里都有
1. Jenkins 介绍
在介绍 Jenkins 之前首先了解一个概念 CI,也就是持续集成。持续集成是一种开发实践,即团队开发成员经常集成他们的工作,每次集成后都通过自动化构建服务来验证,从而尽快地发现集成错误。在大觅网的项目开发过程中,每当代码提交时,构建就会自动被触发。Jenkins 是一种开源的自动化服务工具,本身基于 Java 开发。它可以用于软件自动化构建、测试、部署等相关的所有任务,使软件的持续集成更加方便
2. Jenkins 安装
Jenkins 的安装需要有一些先决条件:
➢ 256 MB 内存,推荐 512 以上内存
➢ 10G 硬盘空间
➢ 只支持 Java 8 环境
2.1 在 Linux 下安装 Jenkins
登录 Jenkins 官网选择 2.107.1 版本文件。
下载对应的 war 包文件
下载完成后需要运行 Jenkins 服务。Jenkins 可以运行在各种平台,只需要有 Java
环境即可。启动 Jenkins 服务有两种方式:
1)通过 Java 命令直接运行
运行以下 Java 命令直接运行,同时指定服务的端口。
java -jar jenkins.war --httpPort=8080
通过容器运行
将下载的 war 包文件放到 Web 服务器中运行,本书使用第二种方式启动 Jenkins
服务,并且在 Linux 系统下使用 Tomcat7.0.85 作为 web 服务器,对于 Tomcat 版
本没有限制,支持 JDK8 即可。把 jenkins.war 放到 Tomcat 的 webapp 目录下,然
后启动 Tomcat,启动成功后访问 jenkins 项目,Jenkins 启动成
功。
为了给大家更好的说明,这里插播一小段视频
2.2 在 Docker 中安装 Jenkins
依据以上的安装步骤,可将 Jenkins 的安装过程写成 Dockerfile,用以生成相
关 Docker 容器。
示例 1:Jenkins Dockerfile
Jenkins 2.107.1
FROM yi/centos7-tomcat7
MAINTAINER Leon
RUN yum install -y git maven
#maven home : /usr/share/maven
WORKDIR /usr/local/apache-tomcat-7.0.85/webapps/ROOT/
RUN rm -fr ./*
RUN wget http://mirrors.tuna.tsinghua.edu.cn/jenkins/warstable/2.107.1/jenkins.war
RUN unzip jenkins.war
WORKDIR /usr/local/apache-tomcat-7.0.85/webapps/
RUN rm -fr docs
RUN rm -fr examples
RUN rm -fr manager
RUN rm -fr host-manager
EXPOSE 8080
ENTRYPOINT /usr/local/apache-tomcat-7.0.85/bin/startup.sh && tail -F
/usr/local/apache-tomcat-7.0.85/logs/catalina.out
以上 Dockerfile 基于在线的方式进行软件安装,具体素材文件,请参考提供的电
子资料。通过 Dockerfile 构建镜像,然后启动容器,能够访问到图-4 代表启动成
功。
2.3 解锁 Jenkins
首次访问 Jenkins 需要解锁,Jenkins 会提示解锁密码存在位置,不同的平台位置
按照提示寻找即可,如图-4 可知,在 Linux 系统下,解锁密码位置存放在:
/root/.jenkins/secrets/initialAdminPassword
文件中。打开 initialAdminPassword 文件,复制密码,将复制的密码填入到解锁界面,并点击“继续”按钮,
接下来会进入等待界面,如果网络没有问题会很快显示安装插件的界面,
Jenkins 插件点击“安装推荐插件”就会自动下载,推荐插件不一定全是我们需要的,推荐选择插件安装,具体安装的插件请参考 3.1 节下载插件。
如果网络无法连接插件服务,会在等待一段时间后进入离线提示界面,如
点击“跳过插件安装”,接下来会提示创建第一个管理员用户,输入用户名和密码均为:admin,填写完成点击“保存并完成“按钮,然后点击“开始使用 Jenkins”,
3. Jenkins 配置
3.1 下载插件
本次需要下载的插件支持包括:Maven、Git、SSH。此时点系统管理->管理插件进入到插件安装界面,在插件安装界面,选择高级,如图-11 和
在高级管理界面中,选择下方升级站点,将默认的 URL 地 址 改 为 :
“ https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/stable-2.89/updatecenter.json”,
注意:点击“系统管理->管理插件”后,选择“可选插件”选项卡,如果在可选
插件界面能显示出插件信息可以不替换此 URL,如果显示为空白,没有任何插件信息,则代表地址无法访问,需要替换为可用的镜像地址。
现在点击“可选插件”,就可以看到支持的插件列表信息,如果还是无法显示,则点击下面”立即获取”按钮等待更新即可,成功显示插件如图-14 所示。在搜索框中分别搜索 maven、git、ssh,分别点击“直接安装”按钮,然后等待安装完成即可
3.2 系统设置
在本书中 Jenkins 服务和大觅网项目服务并不在同一个机器上,需要设置链接远
程服务器信息。点击” 系统管理->系统设置”,进入界面后在 SSH 节点,点击“添
加”,输入远程服务器的别名、连接地址、用户名、远程连接目录后,点击“高
级”按钮,勾选 Use password 验证选项,输入远程服务器登录密码,
远程连接配置
其中 Name 可以自由定义,Hostname 为远程主机地址,Username 为登录用户,
Remote Directory 为远程主机存在的目录,可以自由定义。
然后点击下方“Test Configuration”按钮,显示 Success 代表连接成功,
最后点击“保存”退出。
3.3 全局工具配置
- 配置 Maven
下载 Maven 包,本书使用 3.5.0 版本,解压至 Jenkins 所在的服务器的
/usr/local/目录下,解压后将/usr/local/ apache-maven-3.5.2/conf 目录下的
settings.xml 文件复制到/root/.m2 目录下,如果没有.m2 文件夹则需要手动创
建。点击“系统管理->全局工具配置”,指定 Maven 的配置文件地址设置 Maven 配置文件地址
然后在 Maven 节点点击“Maven 安装”按钮,指定 Maven 的安装地址
settings.xml 文件中需要设定自己的 Maven 仓库地址和本地仓库地址,
settings.xml 文件存放地址不限制,只要和图-22 中路径配置一致即可。
2)配置 JDK
在 Jenkins 所在服务器上安装 JDK,具体安装方式不在赘述。然后在全局工具配
置中选择 JDK 节点,点击“JDK 安装”按钮,输入别名和具体 JDK 目录,
4.创建普通任务
访问 Jenkins 主页,点击“新建任务”,然后输入任务名称并选择”构建一个 maven
注意:如果没有出现“构建一个 maven 项目”选项,是因为 Maven 插件没有安装正确,需要检查插件是否安装成功,如果安装成功还无法显示,请尝试重启
Jenkins 服务。
点击“确定”进入配置界面,在项目名称下的描述节点中可以添加对任务的详细描述。
选择源码管理节点,选中 Git,然后填入项目对应的仓库地址和对应的分支,此时因为没有配置 Git 账户信息,所以显示连接仓库失败。点击 Credentials 后的“Add”按钮后选择 Jenkins,然后添加 Git 仓库用户信息,
然后再回到配置界面,选择刚才创建的用户,错误提示会消失,如图-28 所示。接下来再构建触发器节点,选中 Poll SCM,代表定时检查源码变更(根据 SCM 软
件的版本号),如果有更新就 checkout 最新 code 下来,然后执行构建动作,这
里配置为:*/1 * * * * ,指定为每分钟检查一次源码变化,如图-29 所示。
接下来选中 Build 节点,填写项目的 pom.xml 文件的地址和想要执行的 Maven 命令,
注意:这里的 Root POM 路径有默认前缀,默认前缀就是/root/.jenkins/workspace/, 是 Jenkins 通过 Git 命令 clone 项目后的保存地址,这里只需要填写项目名称
/pom.xml 即可。
经验:root 目录下.jenkins 是隐藏文件夹,可能无法看见,直接访问即可。
继续向下选择“构建后操作”节点,选择 Send build artifacts over SSH,如
配置通过 SSH 远程上传文件,
其中 Source files 是想要上传的文件,此处选择 Maven 编译后的 jar 包,这里
的路径是相对路径(相对默认的环境目录,可以在系统设置里查看)。
Remove prefix 代表需要过滤的目录路径,此处就代表只上传.jar 文件,而不会
生成 dm-discovery-eureka\target 目录。
Remote directory 表示想要上传的远程服务器的目录地址,此处的地址有默认
前缀,默认前缀为图-18 中填写的 Remote directory 地址。这里配置后代表 jar
文件会上传到 server:151 服务器的/home/px2/tools/dm/dm-discovery-eureka
目录下。
最后点击“应用”和“保存”按钮,然后在界面中点击“立即构建”按钮,会进
行项目自动构建,构建完成后
最后,给大家分享一下leon老师的课程《7周Spring Cloud微服务架构项目实战》我最近学习过,感觉很不错,所以分享给大家
博文中展示的视频也是节选至Leon老师的精品课程《7周Spring Cloud微服务架构项目实战》
Leon老师主攻Java、Android,7年项目开发和教学经验,4年金融上市公司技术Leader,擅长大型软件架构、微服务应用架构设计。笔者对于Leon老师是很崇拜的。
《7周Spring Cloud微服务架构项目实战》课程主要围绕电商项目大觅网的业务场景,基于微服务原则设计电商项目。
学了这个课程会学到:
1.多种诸如Eureka、Feign、Hystrix、Ribbon、Zuul、Config等技术使用方法,另外
2.基于虚拟化技术Docker+Jenkins实现程序自动发布
3.基于Mycat实现第三方支付接入、整个项目的高并发测试等
下面附全部课程的视频链接,希望对您有用:
https://edu.csdn.net/course/detail/9995?utm_source=springcloud_4
扫码加小姐姐微信拉入交流群,可免费听技术讲座+领学习资料+视频课免费看
Spring Cloud 项目实战 Jenkins 实现 CI/CD 你需要的这里都有相关推荐
- 赠书:深入理解 Spring Cloud 与实战
无论是Dubbo,还是Spring Cloud,大家可能都不会感到陌生. 那什么是Dubbo Spring Cloud呢?使用Dubbo Spring Cloud可以实现什么目的?基于其实现的路由和负 ...
- Spring Cloud Gateway实战之三:动态路由
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Spring Cloud Ga ...
- Linux中部署Spring Cloud项目
Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...
- 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权
一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...
- 用idea搭建一个Spring Cloud项目(含代码)
目录 目标 相关术语介绍 实战 搭建父工程(聚合工程) 搭建注册中心微服务 搭建生产者和消费者微服务 新增Eureka用户认证 新增健康检测 手动维护注册列表 剔除微服务 up微服务 down微服务 ...
- 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)
告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...
- IntelliJ 启动不同端口的两个spring cloud项目
IntelliJ 启动不同端口的两个spring cloud项目 1,使用maven进行clean package 2,在Terminal界面,输入java -jar xxx.jar --server ...
- STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)
STS创建Spring Boot项目实战(Rest接口.数据库.用户认证.分布式Token JWT.Redis操作.日志和统一异常处理) 1.项目创建 1.新建工程 2.选择打包方式,这边可以选择为打 ...
- Spring Cloud项目是如何读取bootstrap.properties文件的?
提前说明:关于Spring Cloud和Spring Boot源码分析基于的版本如下所示 <!-- Spring Dependencies --> <dependency> & ...
最新文章
- 用于可解释机器学习的 Python 库
- 安防工程商必须知道的PoE供电真相
- python3菜鸟教程pdf-Python 3 教程
- python中文意思k-【Python】 汉字转化汉语拼音pinyin
- 将vim打造成IDE编程环境
- ViewController类中得方法和属性的用途
- Flutter漫说:组件生命周期、State状态管理及局部重绘的实现(Inherit)
- idea如何全局查找和替换
- vue框架的vue-router路由的运用
- cocos js 3.8.1 clippingNode 不能被 ccui.ScrollView 或者ccui.Layout裁剪的bug
- IP地址冲突导致网络故障如何排查问题?
- SQL Server里的闩锁介绍
- caffe数据格式(Google Protocol Buffers)
- 怎么样抓取微信小程序
- 十进制转换为二进制代码
- java word 分页显示_java使用freemaker 导出word 包含分页,表格循环,word改xml格式化...
- .NET中XML 注释 SandCastle 帮助文件.hhp 使用HTML Help Workshop生成CHM文件
- 客户关系管理系统(CRM)的开发过程中使用到的开发工具总结
- 数据存储- 存储文件概述
- 电子电路学习笔记(11)——滤波电容