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 全局工具配置

  1. 配置 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 你需要的这里都有相关推荐

  1. 赠书:深入理解 Spring Cloud 与实战

    无论是Dubbo,还是Spring Cloud,大家可能都不会感到陌生. 那什么是Dubbo Spring Cloud呢?使用Dubbo Spring Cloud可以实现什么目的?基于其实现的路由和负 ...

  2. Spring Cloud Gateway实战之三:动态路由

    欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是<Spring Cloud Ga ...

  3. Linux中部署Spring Cloud项目

    Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...

  4. 【Spring Cloud Alibaba 实战 | 总结篇】Spring Cloud Gateway + Spring Security OAuth2 + JWT 实现微服务统一认证授权和鉴权

    一. 前言 hi,大家好~ 好久没更文了,期间主要致力于项目的功能升级和问题修复中,经过一年时间这里只贴出关键部分代码的打磨,[有来]终于迎来v2.0版本,相较于v1.x版本主要完善了OAuth2认证 ...

  5. 用idea搭建一个Spring Cloud项目(含代码)

    目录 目标 相关术语介绍 实战 搭建父工程(聚合工程) 搭建注册中心微服务 搭建生产者和消费者微服务 新增Eureka用户认证 新增健康检测 手动维护注册列表 剔除微服务 up微服务 down微服务 ...

  6. 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

    告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...

  7. IntelliJ 启动不同端口的两个spring cloud项目

    IntelliJ 启动不同端口的两个spring cloud项目 1,使用maven进行clean package 2,在Terminal界面,输入java -jar xxx.jar --server ...

  8. STS创建Spring Boot项目实战(Rest接口、数据库、用户认证、分布式Token JWT、Redis操作、日志和统一异常处理)

    STS创建Spring Boot项目实战(Rest接口.数据库.用户认证.分布式Token JWT.Redis操作.日志和统一异常处理) 1.项目创建 1.新建工程 2.选择打包方式,这边可以选择为打 ...

  9. Spring Cloud项目是如何读取bootstrap.properties文件的?

    提前说明:关于Spring Cloud和Spring Boot源码分析基于的版本如下所示 <!-- Spring Dependencies --> <dependency> & ...

最新文章

  1. 用于可解释机器学习的 Python 库
  2. 安防工程商必须知道的PoE供电真相
  3. python3菜鸟教程pdf-Python 3 教程
  4. python中文意思k-【Python】 汉字转化汉语拼音pinyin
  5. 将vim打造成IDE编程环境
  6. ViewController类中得方法和属性的用途
  7. Flutter漫说:组件生命周期、State状态管理及局部重绘的实现(Inherit)
  8. idea如何全局查找和替换
  9. vue框架的vue-router路由的运用
  10. cocos js 3.8.1 clippingNode 不能被 ccui.ScrollView 或者ccui.Layout裁剪的bug
  11. IP地址冲突导致网络故障如何排查问题?
  12. SQL Server里的闩锁介绍
  13. caffe数据格式(Google Protocol Buffers)
  14. 怎么样抓取微信小程序
  15. 十进制转换为二进制代码
  16. java word 分页显示_java使用freemaker 导出word 包含分页,表格循环,word改xml格式化...
  17. .NET中XML 注释 SandCastle 帮助文件.hhp 使用HTML Help Workshop生成CHM文件
  18. 客户关系管理系统(CRM)的开发过程中使用到的开发工具总结
  19. 数据存储- 存储文件概述
  20. 电子电路学习笔记(11)——滤波电容

热门文章

  1. 复制知乎专栏文章的方法
  2. 虚幻引擎图文笔记:如何让带骨骼的角色捡东西(Pickup)和扔东西(Drop)
  3. 數據移動時發生***識別欄位其外顯值只有當使用了資料行清單且 IDENTITY_INSERT 為 ON 時才能指定...
  4. 二、RPA机器人开发基础
  5. 系统集成项目管理工程师——挣值管理(PV、EV、AC、SV、CV、SPI、CPI)
  6. 测试笔试题汇总(测试开发)
  7. 【20230204】Ubuntu系统备份与恢复
  8. http 重定向 302报文
  9. fatal error LNK1104:
  10. oracle添加序列