2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第1张图片

系列文章目录

Java常用Linux命令集合
程序员入职必备技能 Oracle安装+局域网服务+内网穿透
2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)
Window下的Jenkins实战,一学就会,一看就懂

文章目录

  • 系列文章目录
  • Jenkins
    • 一 Jenkins 的介绍
      • 1.1 持续集成
      • 1.2 Jenkins 是什么?
      • 1.3 Jenkins 的特征
      • 1.4 Jenkins持续集成的过程
    • 二 服务器环境的搭建
      • 2.1 服务器的购买
      • 2.2 运程控制软件
      • 2.3 Jdk的安装
      • 2.4 Svn仓库的安装
      • 2.5 Maven的安装
      • 2.6 Tomcat的安装
      • 2.7 Jenkins的安装
    • 三 Jenkins+Svn+Maven的配置
      • 3.1 基本配置
      • 3.2 插件的安装
      • 3.3 基本过程
      • 3.4 基本信息配置
      • 3.5 源码配置
      • 3.6 触发器配置
      • 3.7 Pre Steps
      • 3.8 构建完成之后
      • 3.9 邮件通知
      • 3.10 构建

Jenkins

一 Jenkins 的介绍

1.1 持续集成

持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干 之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第2张图片

1.2 Jenkins 是什么?

官网:Jenkins

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第3张图片

  • Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。

  • Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。

1.3 Jenkins 的特征

  • 开源的Java语言开发持续集成工具,支持持续集成,持续部署。
  • 易于安装部署配置:可通过yum安装,或下载war包以及通过docker容器等快速实现安装部署,可 方便web界面配置管理。
  • 消息通知及测试报告:集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知,生 成JUnit/TestNG测试报告。
  • 文件识别:Jenkins能够跟踪哪次构建生成哪些jar,哪次构建使用哪个版本的jar等。 丰富的插件支持:支持扩展插件,你可以开发适合自己团队使用的工具,如git,svn,maven, docker等。

1.4 Jenkins持续集成的过程

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第4张图片

二 服务器环境的搭建

2.1 服务器的购买

  • Jenkins机器要求:

    • 256 MB 内存,建议大于 512 MB
    • 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)
  • 需要安装以下软件:

    • Java 8 ( JRE或者``JDK `都可以)
    • Docker (导航到网站顶部的Get Docker链接以访问适合您平台的Docker下载)
  • 腾讯云服务器:https://console.cloud.tencent.com

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第5张图片

  • 完成实名认证之后,才能进行免费体验,实验够了

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第6张图片

  • 进入控制台

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第7张图片

  • 等待加载完毕

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第8张图片

  • 修改密码

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第9张图片

到此服务器就已经好了

2.2 运程控制软件

网址:https://www.xshellcn.com/

  • 下载这两款软件安装

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第10张图片

  • 服务器配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第11张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第12张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第13张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第14张图片

  • 配置成功

2.3 Jdk的安装

百度网盘:https://pan.baidu.com/s/1BtzPh6ZYW6i6PaS5M–Zrg xx7y

  • 上传服务器

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第15张图片

  • xshell中安装
# 安装
[root@VM-4-10-centos jdk]# rpm -ivh jdk-8u131-linux-x64.rpm
Preparing...                          ################################# [100%]
Updating / installing...
   1:jdk1.8.0_131-2000:1.8.0_131-fcs  ################################# [100%]
Unpacking JAR files...
	tools.jar...
	plugin.jar...
	javaws.jar...
	deploy.jar...
	rt.jar...
	jsse.jar...
	charsets.jar...
	localedata.jar...
#检查	
[root@VM-4-10-centos jdk]# java -version
java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
[root@VM-4-10-centos jdk]# 
  • 配置环境变量
#编辑环境变量
[root@VM-4-10-centos /]# vim /etc/profile
#添加内容
JAVA_HOME=/usr/java/jdk1.8.0_131
JRE_HOME=/usr/java/jdk1.8.0_131/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
#生效
[root@VM-4-10-centos /]# source /etc/profile

2.4 Svn仓库的安装

  • 安装依赖
# yum install subversion 
  • 查看版本
# svnserve --version 
  • 创建仓库
# mkdir -p /home/svn/project   
  • 初始化项目
# svnadmin create /home/svn/project/
  • 配置conf
# vim svnserv.conf
[general]
anon-access = none     # 使非授权用户无法访问
auth-access = write    # 使授权用户有写权限
password-db = password   # 用户密码文件
authz-db = authz       # 访问控制文件
realm = /home/svn/project # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
# 采用默认配置,以上语句都必须顶格写,左侧不能留空格,否则会出错。
# vim passwd
[users]
# harry = harryssecret
# sally = sallyssecret
username = 123456
# vim authz
# 在末尾添加如下代码
[/]
username = rw 
# r:读,w:写
  • 启动(注意防火墙的打开:3690)
# svnserve -d -r /home/svn
  • 本地测试

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第16张图片

  • 上传项目

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3s0I5F2G-1629357327365)(E:\学习笔记\运维开发\自动化部署\images\image-20210818172835471.png)]2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第17张图片

2.5 Maven的安装

  • 创建文件夹
# mkdir /environment/maven
# cd  /environment/maven
# mkdir Repository 仓库地址
  • 下载maven
# wget https://mirrors.bfsu.edu.cn/apache/maven/maven-3/3.8.2/binaries/apache-maven-3.8.2-bin.tar.gz
  • 解压
# tar -zxvf apache-maven-3.8.2-bin.tar.gz
  • ls
[root@shu maven]# ls
apache-maven-3.8.2  apache-maven-3.8.2-bin.tar.gz
[root@shu maven]# cd apache-maven-3.8.2/
[root@shu apache-maven-3.8.2]# ls
bin  boot  conf  lib  LICENSE  NOTICE  README.txt
[root@shu apache-maven-3.8.2]# cd conf
[root@shu conf]# ls
logging  settings.xml  toolchains.xml
  • 编辑配置文件
[root@shu conf]# vim settings.xml 
#增加仓库地址
<localRepository>/environment/maven/apache-maven-3.8.2/Repository</localRepository>
#增加阿里云支持
<mirror>
         <id>alimaven</id>
        <mirrorOf>central</mirrorOf>
        <name>aliyun maven</name>
        <url>https://maven.aliyun.com/repository/central</url>
</mirror>
<mirror>
        <id>alimaven</id>
        <name>aliyun maven</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        <mirrorOf>central</mirrorOf>
 </mirror>
  • 编辑环境依赖
# vim /ect/profile
#末尾增加
export MAVEN_HOME=/environment/maven/apache-maven-3.8.2
export PATH=$PATH:$MAVEN_HOME/bin
  • 生效验证
[root@shu conf]# source /etc/profile
[root@shu conf]# mvn -version
Apache Maven 3.8.2 (ea98e05a04480131370aa0c110b8c54cf726c06f)
Maven home: /environment/maven/apache-maven-3.8.2
Java version: 1.8.0_131, vendor: Oracle Corporation, runtime: /usr/java/jdk1.8.0_131/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.10.0-1160.11.1.el7.x86_64", arch: "amd64", family: "unix"

配置成功

2.6 Tomcat的安装

  • 安装包下载
[root@shu tomcat]#  wget http://mirror.bit.edu.cn/apache/tomcat/tomcat-9/v9.0.8/bin/apache-tomcat-9.0.8.tar.gz
  • 解压
[root@shu tomcat]# ls
apache-tomcat-9.0.52.tar.gz
[root@shu tomcat]# tar -zxvf apache-tomcat-9.0.52.tar.gz
  • 修改端口号
[root@shu tomcat]# ls
apache-tomcat-9.0.52  apache-tomcat-9.0.52.tar.gz
[root@shu tomcat]# cd apache-tomcat-9.0.52/
[root@shu apache-tomcat-9.0.52]# ls
bin  BUILDING.txt  conf  CONTRIBUTING.md  lib  LICENSE  logs  NOTICE  README.md  RELEASE-NOTES  RUNNING.txt  temp  webapps  work
[root@shu apache-tomcat-9.0.52]# cd conf
[root@shu conf]# ls
catalina.policy  catalina.properties  context.xml  jaspic-providers.xml  jaspic-providers.xsd  logging.properties  server.xml  tomcat-users.xml  tomcat-users.xsd  web.xml
[root@shu conf]# vim server.xml
 <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />
  • 启动
[root@shu apache-tomcat-9.0.52]# cd bin
[root@shu bin]# ./startup.sh
Using CATALINA_BASE:   /environment/tomcat/apache-tomcat-9.0.52
Using CATALINA_HOME:   /environment/tomcat/apache-tomcat-9.0.52
Using CATALINA_TMPDIR: /environment/tomcat/apache-tomcat-9.0.52/temp
Using JRE_HOME:        /usr/java/jdk1.8.0_131/jre
Using CLASSPATH:       /environment/tomcat/apache-tomcat-9.0.52/bin/bootstrap.jar:/environment/tomcat/apache-tomcat-9.0.52/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第18张图片

2.7 Jenkins的安装

  • 先建文件夹
# mkdir /environment/Jenkins
  • 安装包下载

链接:https://pan.baidu.com/s/1UAGTjC2Ksb2Sk_1x5ZWHOw 提取码:v2t5

  • 上传到该文件下
  • 安装
[root@shu Jenkins]# ls
jenkins-2.174-1.1.noarch.rpm
[root@shu Jenkins]# rpm -ivh jenkins-2.174-1.1.noarch.rpm
warning: jenkins-2.174-1.1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID d50582e6: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jenkins-2.174-1.1                ################################# [100%]
  • 环境配置
[root@shu Jenkins]# whereis jenkins #实际安装位置
jenkins: /usr/lib/jenkins 
[root@shu /]# cd /usr/lib/jenkins
[root@shu jenkins]# ls
jenkins.war
[root@shu jenkins]# vim /etc/init.d/jenkins
#配置java路径
/usr/java/jdk1.8.0_131/bin/java
  • 启动
# sudo service jenkins start
# 如果失败:systemctl daemon-reload 再运行sudo service jenkins start
# 日志
vim /var/log/jenkins/jenkins.log
  • 访问(ip+端口)

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第19张图片

  • 密码配置
#  vim /var/lib/jenkins/secrets/initialAdminPassword #密码

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第20张图片

  • 更新(升级)

用新版本的war包替换这个路径下的war包

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第21张图片

#完成重启
域名+端口/restart

安装完毕,到此基本的服务器环境搭建成功,下面该把他们联合起来配置

三 Jenkins+Svn+Maven的配置

3.1 基本配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第22张图片

  • 用户注册

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第23张图片

  • 增加用户

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第24张图片

  • 工具配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第25张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第26张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第27张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第28张图片

  • 插件更新与汉化

插件管理:搜索Chinese

在这里插入图片描述

其他插件完成更新,重启生效

3.2 插件的安装

  • 插件一:Subversion Plug-in

在这里插入图片描述

  • 插件二:Publish Over SSH

在这里插入图片描述

  • 插件三:Maven Integration plugin

在这里插入图片描述

  • 注意:重启服务

3.3 基本过程

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第29张图片

  • 创建

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第30张图片

  • 配置(SpringBoot项目jar)

还有一种方式是Tomcat+War包配置,这里我就不演示了,网上很多演示

3.4 基本信息配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第31张图片

3.5 源码配置

Svn或Git,注意必须安装响应的插件,Svn上面的安装教程有详细解释

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第32张图片

3.6 触发器配置

触发器就是一个条件执行器,满足了条件就执行,比如svn仓库更新,一天多久执行

在这里插入图片描述

环境构建:我来解释下吧:

提供一个管理文件,

在构建完成之前通过ssh发送文件

在构建完成之后通过ssh发送文件

在这里插入图片描述

3.7 Pre Steps

可以理解为调用maven的命令来打成jar包,这里提供的方式有很多

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第33张图片

3.8 构建完成之后

可以理解为jar完成之后,执行的操作,当然是执行jar包 nohup java -jar jar包名 >temp.txt &

  • ssh连接配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第34张图片

  • 执行配置

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第35张图片
2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第36张图片

  • jar包查看linux(运行成功之后)

在这里插入图片描述

3.9 邮件通知

注意在系统配置中配置邮件地址

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第37张图片

3.10 构建

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第38张图片

2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)_第39张图片

在这里插入图片描述

大功告成,当然这只是基本使用,最重要的是构建流水线式的自动化部署,后面有空更新

你可能感兴趣的:(#,Linux,linux,jar,运维,运维开发,项目管理)