从0到1,Gitee + Maven + Idea + Jenkins 实现Pipeline类型工程部署Java的war包项目

结合资料,自己梳理的一个大致流程。这里我没有使用docker容器;Gitee、GitHub、GiLab三者使用类似,我这里以Gitee为例。


一.Jenkins介绍

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。官网: http://jenkins-ci.org/

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

二.安装Jdk、Git、Maven、Tomcat等相关配套工具

1.安装Jdk

yum install java-1.8.0-openjdk* -y

在这里插入图片描述

JDK的安装路径为:/usr/lib/jvm

2.安装Git

yum install git -y

在这里插入图片描述

3.安装Maven

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目
1.mavne官网下载tar.gz的包
官网地址:https://archive.apache.org/dist/maven/maven-3/3.6.2/binaries/
在这里插入图片描述
2.上传服务器解压缩,移动并重名文件夹

tar -xzf apache-maven-3.6.2-bin.tar.gz # 解压缩命令

具体效果看下图
在这里插入图片描述

mavne的路径:/usr/local/maven

3.新建mavne的仓库地址

maven仓库路径:/usr/local/maven/repo

在这里插入图片描述
4.编辑mavne的配置文件:修改仓库地址以及更换阿里的镜像地址

vim /usr/local/maven/conf/settings.xml

在这里插入图片描述

<mirror>
   <id>alimaven</id>
   <name>aliyun maven</name>
   <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
   <mirrorOf>central</mirrorOf>
 </mirror>

在这里插入图片描述
最后保存并退出就可以了!

4.配置Jdk和Maven的环境变量

1.打开系统环境配置文件

vim /etc/profile 

2…在配置文件中,添加如下配置

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk #jdk路径
export MAVEN_HOME=//usr/local/maven # maven路径
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin 

在这里插入图片描述
3.重新加载配置文件,查看mavne版本

source /etc/profile #配置生效
mvn -v #查找Maven版本

在这里插入图片描述

5.安装Tomcat

1.tomcat官网下载tar.gz的包
官网地址:https://tomcat.apache.org/download-80.cgi
在这里插入图片描述
2.上传服务器解压缩,移动并重名文件夹

tar -xzf apache-tomcat-8.5.78.tar.gz # 解压缩命令

具体效果看下图
在这里插入图片描述
3.配置阿里云安全组8080端口
在这里插入图片描述
如果服务器防火墙打开的,还要在服务器打开8080端口。我的服务器防火墙是关闭的,所以这里就不用进行打开防火墙8080端口的相应操作
在这里插入图片描述
4.进入Tomcat的bin目录启动tomcat

./startup.sh

在这里插入图片描述
最后输入相应的IP地址+8080端口就可以访问了,看到下图的猫就成功了
在这里插入图片描述
5.配置tomcat环境变量

vim /etc/profile

在这里插入图片描述

source /etc/profile

配置好后就可以在任意的路径下使用 startup.sh 命令启动了

在这里插入图片描述

6.配置tomcat管理员账号
这里需要配置tomcat的管理员账号的原因:简而言之,就是让Jenkins有权限发布项目到tomcat服务器中,这里所配置的tomcat管理员账号将用于后面jenkins发布项目到tomcat的一个凭证
默认情况下Tomcat是没有配置用户角色权限的
在这里插入图片描述
进入后是没有权限访问的页面
在这里插入图片描述
编辑tomcat-users.xml文件,添加管理员账号

vim /usr/local/tomcat/conf/tomcat-users.xml

内容如下:

<tomcat-users>
   <role rolename="tomcat"/>
   <role rolename="role1"/>
   <role rolename="manager-script"/>
   <role rolename="manager-gui"/>
   <role rolename="manager-status"/>
   <role rolename="admin-gui"/>
   <role rolename="admin-script"/>
   <user username="tomcat" password="tomcat" roles="manager-gui,manager-script,tomcat,admin-gui,admin-script"/>
</tomcat-users>

用户和密码都是:tomcat
在这里插入图片描述
注意:为了能够刚才配置的用户登录到Tomcat,还需要修改以下配置

vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

注释掉这行代码
在这里插入图片描述
之后重启Tomcat进入管理员界面登录刚刚配置的账号就可以了
在这里插入图片描述
5.配置tomcat开机自启动
在 /usr/lib/systemd/system/ 路径下,新建 tomcat.service文件,写入如下代码:

vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

启动服务

systemctl daemon-reload

systemctl start tomcat.service

systemctl enable tomcat.service # 开机自启

相关指令

# systemctl start tomcat.service  启动tomcat
# systemctl status tomcat.service  启动并查看详细启动信息
# systemctl restart tomcat.service  重启tomcat
# systemctl stop tomcat.service  关闭tomcat
# systemctl enable tomcat.service 开机自启
# systemctl disable tomcat.service 禁用开机自启

三.安装Jenkins

1.Jenkins官网下载rpm文件

官网地址:http://mirrors.jenkins-ci.org/redhat/
在这里插入图片描述

我选择的是:jenkins-2.344-1.1.noarch.rpm

2.文件上传至服务器

在这里插入图片描述

3.使用命令安装Jenkins

rpm -ivh jenkins-2.344-1.1.noarch.rpm

在这里插入图片描述

Jenkins的安装路径:/var/lib/jenkins

4.修改Jenkins配置文件

vim /etc/sysconfig/jenkins

修改内容如下: JENKINS_USER=“root” JENKINS_PORT=“8888”

在这里插入图片描述

5.启动Jenkins

systemctl start jenkins

这里有个问题:我们按照第四步的操作修改端口后,我们可以看到下图启动后,查看Jenkins的状态,可以看到端口还是8080
在这里插入图片描述
解决办法:在 jenkins 加载目录中修改端口

# 进入目录
cd /usr/lib/systemd/system
vim jenkins.service
# 或者
vim /usr/lib/systemd/system/jenkins.service

# 修改为想要的端口
Environment="JENKINS_PORT=8889"

# 重新加载配置文件
systemctl daemon-reload

在这里插入图片描述
然后启动并查看Jenkins状态,我们看到端口已经成功改过来了

# 重新加载
systemctl daemon-reload
# 启动
systemctl start jenkins
# 查看状态
systemctl status jenkins

在这里插入图片描述

6.访问Jenkins网页

打开浏览器访问 http://ip:8888

注意:我的服务器把防火墙关闭了,只需要打开阿里云安全组的888端口就可以了,如果开启防火墙,需要在防火墙添加端口
在这里插入图片描述
访问后首页先出现如下的页面
在这里插入图片描述
我们按照提示在服务器输入相应的命令即可获得初始密码:9058fdcd0e2d4c4783c6b77fe6ae80da
在这里插入图片描述
跳过插件安装
在这里插入图片描述
在这里插入图片描述
添加一个管理员账户,并进入Jenkins后台
在这里插入图片描述
进入Jenkins主页
在这里插入图片描述

7.设置Jenkins开机自启动

sudo /sbin/chkconfig jenkins on

在这里插入图片描述

四.Jenkins相关插件安装

插件安装图示
在这里插入图片描述

在这里插入图片描述

1.安装Git插件

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件
在这里插入图片描述

2.安装Pipeline插件

这个插件主要是让我们能够构建Pipeline项目用的
在这里插入图片描述
安装插件后,创建项目的时候多了“流水线”类型
在这里插入图片描述

3.安装Pipeline Stage View插件

这个插件主要是让我们看到后期部署流水线项目的时候每个阶段的运行时间和状态
效果图如下
在这里插入图片描述
如果没有安装这个插件,效果图如下
在这里插入图片描述
在这里插入图片描述

4.安装Deploy to container插件

Jenkins本身无法实现远程部署到Tomcat的功能,需要安装Deploy to container插件实现
在这里插入图片描述


五.Jenkin全局配置

1.全局工具配置

Jenkins->Manage Jenkins->Global Tool Configuration
在这里插入图片描述

Jenkins关联JDK和Maven

在这里插入图片描述
Jenkins->Manage Jenkins->Global Tool Configuration->JDK->新增JDK,配置如下:

指定JDK的JAVA_HOME即可

在这里插入图片描述

Jenkins->Manage Jenkins->Global Tool Configuration->Maven->新增Maven,配置如下:

同理指定MAVEN的MAVEM_HOME

在这里插入图片描述

2.添加Jenkins全局变量

Manage Jenkins->Configure System->Global Properties
在这里插入图片描述
添加三个全局变量JAVA_HOME、M2_HOME、PATH+EXTRA

 - JAVA_HOME: /usr/lib/jvm/java-1.8.0-openjdk
 - M2_HOME: /usr/local/maven
 - PATH+EXTRA: $M2_HOME/bin

在这里插入图片描述
最后点击应用保存即可。


六.Jenkin凭证管理

凭据可以用来存储需要密文保护的数据库密码、Gitlab密码信息、Docker私有仓库密码等,以便Jenkins可以和这些第三方的应用进行交互。
在这里插入图片描述

在这里插入图片描述

添加凭证

在这里插入图片描述

可以添加的凭证有5种:
Username with password:用户名和密码
SSH Username with private key: 使用SSH用户和密钥
Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到一个变量中,等构建结束后,所复制的Secret file就会被删除。
Secret text:需要保存的一个加密的文本串,如钉钉机器人或Github的api token
Certificate:通过上传证书文件的方式

常用的凭证类型有:Username with password(用户密码)和SSH Username with private key(SSH密钥)

1.添加gitee凭证(SSH密钥类型)

gitee凭证:用于Jenkins拉取gitee的项目代码

使用root用户生成公钥和私钥

ssh-keygen -t rsa

在这里插入图片描述

在/root/.ssh/目录保存了公钥和私钥
id_rsa:私钥文件
id_rsa.pub:公钥文件

在这里插入图片描述
注意:公钥配置在gitee上,私钥配置在Jenkins中

1.1gittt配置公钥

在这里插入图片描述

获取id_rsa.pub文件中的公钥字符串,复制到相应位置

在这里插入图片描述

1.2.Jenkins配置私钥

进入配置凭证页面,类型为"SSH Username with private key",把刚才生成私钥文件内容复制过来

在这里插入图片描述

编辑后完成后,点击保存

在这里插入图片描述

2.添加tomcat凭证(用户密码类型)

tomcat凭证:用于Jenkins部署项目到tomcat服务器
我这里先配置了,也可以后面用到再进行配置
在这里插入图片描述
配置完成后,我们就可以得到两个全局凭证了
在这里插入图片描述


七.Jenkins构建Pipeline项目

Jenkins中自动构建项目的类型有很多,常用的有以下三种:
自由风格软件项目(FreeStyle Project)
Maven项目(Maven Project)
流水线项目(Pipeline Project)

推荐使用流水线类型

1.新建Pipeline项目

在这里插入图片描述

2.修改配置

在这里插入图片描述

这里我们使用Pipeline脚本进行部署
Pipeline 脚本是由 Groovy 语言实现的,但是我们没必要单独去学习 Groovy
Pipeline 支持两种语法:Declarative(声明式)和 Scripted Pipeline(脚本式)语法

我们使用Scripted脚本式Pipeline

在这里插入图片描述

  • Node:节点,一个 Node 就是一个 Jenkins 节点,Master 或者 Agent,是执行 Step 的具体运行环境,后续讲到Jenkins的Master-Slave架构的时候用到
  • Stage:阶段,一个 Pipeline 可以划分为若干个 Stage,每个 Stage 代表一组操作,比如:Build、Test、Deploy,Stage 是一个逻辑分组的概念
  • Step:步骤,Step 是最基本的操作单元,可以是打印一句话,也可以是构建一个 Docker 镜像,由各类 Jenkins 插件提供,比如命令:sh ‘make’,就相当于我们平时 shell 终端中执行 make 命令一样

三个阶段:拉取代码阶段;构建项目阶段;发布项目阶段

node {
    def mvnHome
    stage('pull code') {
        echo 'Hello World'
 
    }
    stage('build project') {
        echo 'Hello World'
    }
    stage('publish project') {
        echo 'Hello World'
    }
}

接下来我们使用下方箭头的脚本生成器生成相应的脚本即可

在这里插入图片描述

1.生成拉取代码脚本

在这里插入图片描述
在这里插入图片描述

2.生成构建项目脚本

在这里插入图片描述

3.生成发布项目脚本

在这里插入图片描述

最后赋值三个阶段的脚本到相应的位置即可

在这里插入图片描述

3.手动部署

1.点击Build Now

在这里插入图片描述

2.查看控制台输出

在这里插入图片描述
在这里插入图片描述

访问tomcat

在这里插入图片描述

到此为止,Jenkins手动部署项目已经全部结束!

八.Git hook自动触发构建

1.Pipeline Script from SCM

刚才我们都是直接在Jenkins的UI界面编写Pipeline代码,这样不方便脚本维护,建议把Pipeline脚本放在项目中
1.在项目根目录建立Jenkinsfile文件,把内容复制到该文件中
在这里插入图片描述
2.把Jenkinsfile上传到Gitlab

push工程到Gitee

3.在Jenkins的项目配置中引用这文件
在这里插入图片描述
这里建议文件名称就好 Jenkinsfile
在这里插入图片描述

然后保存,最后自己测试一下用配置文件能否部署项目成功即可

2.安装插件 - Gitee

我这里使用的是Gitee作为代码仓库,所以Jenkins中只需要安装Gitee的插件即可
如果你使用的是GitLab作为你的代码仓库,那么这里需要两个插件:Gitlab Hook和GitLab

废话不多说,我们接下来进行安装插件

在这里插入图片描述

3.Jenkins配置参数

安装完插件后,我们进入Jenkins项目的配置中

在这里插入图片描述

在上图中给了一个URL地址和密码(密码需要生成),这两个参数时需要我们后面配置在gtiee的web hook中的

4.Gitee配置web hook

在这里插入图片描述

保存成功后进行测试

在这里插入图片描述

Gitee中查看测试结果

在这里插入图片描述

Jenkins中查看测试结果

在这里插入图片描述

5.测试自动部署

我们自己在本地修改一下代码内容,然后提交,试试能不能自动部署

在这里插入图片描述

查看Jenkins后台

在这里插入图片描述

最后我们浏览器访问一下项目

在这里插入图片描述

完结撒花!!!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值