系列文章目录
Java常用Linux命令集合
程序员入职必备技能 Oracle安装+局域网服务+内网穿透
2021史上最强教你如何用Jenkins自动化部署项目(教程,从零到搭建完成)
Window下的Jenkins实战,一学就会,一看就懂
文章目录
Jenkins
一 Jenkins 的介绍
1.1 持续集成
持续集成( Continuous integration , 简称 CI )指的是,频繁地(一天多次)将代码集成到主干。 持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量。它的核心措施是,代码集成到主干 之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。
1.2 Jenkins 是什么?
官网:Jenkins
-
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持续集成的过程
二 服务器环境的搭建
2.1 服务器的购买
-
Jenkins机器要求:
- 256 MB 内存,建议大于 512 MB
- 10 GB 的硬盘空间(用于 Jenkins 和 Docker 镜像)
-
需要安装以下软件:
- Java 8 (
JRE
或者``JDK `都可以) - Docker (导航到网站顶部的Get Docker链接以访问适合您平台的Docker下载)
- Java 8 (
-
腾讯云服务器:https://console.cloud.tencent.com
- 完成实名认证之后,才能进行免费体验,实验够了
- 进入控制台
- 等待加载完毕
- 修改密码
到此服务器就已经好了
2.2 运程控制软件
网址:https://www.xshellcn.com/
- 下载这两款软件安装
- 服务器配置
- 配置成功
2.3 Jdk的安装
百度网盘:https://pan.baidu.com/s/1BtzPh6ZYW6i6PaS5M–Zrg xx7y
- 上传服务器
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
- 本地测试
- 上传项目
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3s0I5F2G-1629357327365)(E:\学习笔记\运维开发\自动化部署\images\image-20210818172835471.png)]
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.
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+端口)
- 密码配置
# vim /var/lib/jenkins/secrets/initialAdminPassword #密码
- 更新(升级)
用新版本的war包替换这个路径下的war包
#完成重启
域名+端口/restart
安装完毕,到此基本的服务器环境搭建成功,下面该把他们联合起来配置
三 Jenkins+Svn+Maven的配置
3.1 基本配置
- 用户注册
- 增加用户
- 工具配置
- 插件更新与汉化
插件管理:搜索Chinese
其他插件完成更新,重启生效
3.2 插件的安装
- 插件二:Publish Over SSH
- 注意:重启服务
3.3 基本过程
- 创建
- 配置(SpringBoot项目jar)
还有一种方式是Tomcat+War包配置,这里我就不演示了,网上很多演示
3.4 基本信息配置
3.5 源码配置
Svn或Git,注意必须安装响应的插件,Svn上面的安装教程有详细解释
3.6 触发器配置
触发器就是一个条件执行器,满足了条件就执行,比如svn仓库更新,一天多久执行
环境构建:我来解释下吧:
提供一个管理文件,
在构建完成之前通过ssh发送文件
在构建完成之后通过ssh发送文件
3.7 Pre Steps
可以理解为调用maven的命令来打成jar包,这里提供的方式有很多
3.8 构建完成之后
可以理解为jar完成之后,执行的操作,当然是执行jar包 nohup java -jar jar包名 >temp.txt &
- ssh连接配置
- 执行配置
- jar包查看linux(运行成功之后)
3.9 邮件通知
注意在系统配置中配置邮件地址
3.10 构建
大功告成,当然这只是基本使用,最重要的是构建流水线式的自动化部署,后面有空更新