热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins详细安装配置部署超详细

Jenkins详细安装配置部署--超详细一、什么是CICD二、Gitlab内置持续集成持续集成(CI)持续交付(CD)2.1




Jenkins详细安装配置部署--超详细


  • 一、什么是CI/CD
  • 二、Gitlab内置持续集成
    • 持续集成(CI)
    • 持续交付(CD)
    • 2.1 Gitlab的CI/CD优势
    • 2.2 Gitlab的CI/CD特点
    • 2.3 Gitlab的CI/CD组件

  • 三、gitlab CI/CD工作原理
  • 四、Jenkins安装与部署
    • 4.1 Jenkins的简介
    • 4.2 Jenkins的特征:
    • 4.3 Jenkins安装和持续集成环境配置
      • 4.3.1Gitlab服务部署
        • 4.3.1.1 Gitlab介绍
        • 4.3.1.2 Gitlab与Github区别
        • 4.3.1.3 Gitlab安装
        • 4.3.1.4修改gitlab配置
        • 4.3.1.5 Gitlab用户管理
          • 4.3.1.5.1 创建用户组
          • 4.3.1.5.2 创建项目
          • 4.3.1.5.3 用户创建
          • 4.3.1.5.4 添加用户到组




  • 五、Jenkins服务部署
    • 5.1 Jenkins安装
      • 5.1.1 修改Jenkins配置文件
      • 5.1.2 Jenkins添加汉化插件
      • 5.1.3 用户权限管理
        • 5.1.3.1 安装插件
        • 5.1.3.2 添加角色
        • 5.1.3.3 创建用户
        • 5.1.3.4 切换账户
        • 5.1.3.5 权限分配
        • 5.1.3.6 项目创建

      • 5.1.4 Jenkins凭证管理
        • 5.1.4.1 安装Credentials Binding插件
        • 5.1.4.2 安装Git插件和Git工具

      • 5.1.5 配置Gitlab凭证
      • 5.1.6 Maven部署
        • 5.1.6.1 安装Maven
        • 5.1.6.2 Jenkins配置Maven
        • 5.1.6.3添加Maven
        • 5.1.6.4 修改Maven的settings.xml



  • 六、Tomcat服务部署
    • 6.1 JDK配置
    • 6.2 设置JDK环境变量
    • 6.3 安装Tomcat
    • 6.4 设置终端访问

  • 七、Jenkins--Pipeline流水线项目构建
    • 7.1 Pipeline简介
    • 7.2 安装Pipeline插件
    • 7.3 拉取代码
    • 7.4 编译打包
    • 7.5 发布
      • 7.5.1 Tomcat认证





一、什么是CI/CD
  • CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了 新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确 地集成在一起。
  • CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近 真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环 境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

二、Gitlab内置持续集成

持续集成(CI)


  • 集成团队中每个开发人员提交的代码到代码存储库中。
  • 开发人员在merge或者pull请求中合并拉去新的代码。
  • 在提交或者合并更改到代码库之前,会触发了构建,测试和新代码验证的管道。
  • CI 可帮助您在开发周期的早期发现并减少错误。

CI(Continuous integration,中文意思是持续集成)是一种软件开发时间。持续集成强调开发人员提交了
新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确
地集成在一起。


持续交付(CD)


  • 可通过结构化的部署管道确保将经过CI验证的代码交付给您的应用程序。
  • CD可以将经过验证的代码更快地移至您的应用程序。

CD(Continuous Delivery, 中文意思持续交付)是在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境(类生产环境)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

CI/CD一起可以加快团队为客户和利益相关者交互成果的速度。CI 和 CD必须无缝协作,以使您的团队快速有效的进行构建,并且对于确保完全优化的开发实践至关重要。
在这里插入图片描述
根据持续集成的设计,代码从提交到生产,整个过程有以下几步:
提交
流程的第一论,是开发者向代码仓库提交代码。所有后面的步骤都始于本地代码的一次提交(commit)
测试(第一轮)
代码仓库对commit操作配置了钩子(hook),只要提交代码或者合并进主干,就会跑自动化测试.
构建
通过第一轮测试,代码就可以合并进主干。就算可以交付了。
交付后,就先进行构建(build),再进入第二轮测试。所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源〔样式表、JS脚本、图片)等等。
测试(第二轮)
构建完成,就要进行第二轮测试。如果第一轮已经涵盖了所有测试内容,第二轮可以省略,当然,这时构建步骤也要移到第一轮测试前面。
部署
过了第二轮测试,当前代码就是一个可以直接部署的版本(artifact)。将这个版本的所有文件打包(tarfilename.tar*]存档,发到生产服务器。
回滚
一旦当前版本发生问题,就要回滚到上一个版本的构建结果。最简单的做法就是修改一下符号链接,指向上一个版本的目录。


2.1 Gitlab的CI/CD优势


  • 开源:ci/cd是开源gitlab社区版和专有gitlab企业版的一部分。
  • 易于学习:具有详细的入门文档。
  • 无缝集成:gitlab的ci/cd是gitlab的一部分,支持从计划到部署,具有出色的用户体验。
  • 可扩展:测试可以在单独的计算机上分布式运行,可以根据需要添加任意数量的计算机。
  • 更快的结果:每个构建可以拆分为多个作业,这些作业可以在多台计算机上并行运行。
  • 针对交付进行了优化:多个阶段、手动部署、环境和变量。

2.2 Gitlab的CI/CD特点


  • 多平台:UNIX,WINDOWS,macOS和任何其他支持GO的平台上执行构建。
  • 多语言:构建脚本是命令行驱动的,并且可以与java、php、ruby、c和其他语言一起使用。
  • 稳定构建:构建在gitlab不同的机器上运行。
  • 并行构建:gitlab CI/CD在多台机器上拆分构建,以实现快速执行。‘
  • 实时日志记录:合并请求中的链接将您带到动态更新的当前构建日志。
  • 灵活的管道:您可以在每个阶段定义多个并行作业,并且可以触发其他构建。
  • 版本管道:一个.gitlab-ci.yml文件包含您的测试,整个过程的步骤,是每个人都能贡献更改,并确保每个分支获得所需的管道。
  • 自动缩放:您可以自动缩放构建机器,以确保立即处理您的构建并降低成本。
  • 构建工件:您可以将二进制文件和其他构建工件上载到gitlab并浏览和下载它们。
  • docker支持:可以使用自定义docker镜像,作为测试的一部分启动服务,构建新的dockers镜像,甚至可以在k8s上运行。
  • 容器注册表:内置的容器注册表,用于存储,共享和使用容器镜像。
  • 受保护的变量:子啊部署期间使用受每个环境保护的变量安全地存储和使用机密。
  • 环境:定义多个环境。

2.3 Gitlab的CI/CD组件

在这里插入图片描述


  • Gitlab CI/CD


    • Gitlab的一部分,Gitlab是一个web应用程序,具有将其状态存储在数据库中的API。
    • 除了Gitlab的所有功能之外,它还管理项目、构建并提供一个不错的用户界面。
  • Gitbal Runner


    • 是一个处理构建的应用程序。
    • 它可以单独部署,并通过API 与 Gitlab CI/CD 一起使用。
  • .gitlab-ci.yml文件

  • 为了运行测试,至少需要一个Gitlab实例和一个Gitlab Runner。


三、gitlab CI/CD工作原理
  • 将代码托管到git存储库中;
  • 在项目根创建ci文件 .gitlab-ci.yml,在文件中指定构建,测试和部署脚本;
  • gitlab将检测到它并使用名为gitlab runner的工具运行脚本;
  • 脚本被分组为作业,它们共同组成了一个管道。

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


四、Jenkins安装与部署

4.1 Jenkins的简介

Jenkins是一个广泛用于持续集成的可视化web自动化工具,Jenkins可以很友好的支持各种语言的项目构建,也可以完全兼容ant maven、gradle等多种第三方构建工具,同时跟svn git能无缝集成,也支持直接与知名源代码托管网站,比如 github、bitbucket直接集成,而且插件众多,在这么多年的"技术积累之后,在国内大部分公司都有使用Jenkins。

Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具。主要做的事情就是从git中拉取代码,根据配置信息打包;把打好的包传输到目标服务器,并可以执行一些shell脚本,使项目打包发布一键完成。
官网:https://www.jenkins.io/
在这里插入图片描述


4.2 Jenkins的特征:


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

4.3 Jenkins安装和持续集成环境配置

使用三台服务器:一台Gitlab仓库服务器、一台Jenkins服务器(JDK、Git、Maven)、一台Tomcat测试服务器。
在这里插入图片描述


  1. 首先,开发人员每天进行代码提交,提交到Git仓库
  2. 然后,Jenkins作为持续集成工具,使用Git工具到Git仓库拉取代码到集成服务器,再配合JDK、Maven等软件完成代码编译,代码测试与审查,测试,打包等工作,在这个过程中每一步出错,都重新再执行一次整个流程。
  3. 最后,Jenkins把生成的jar或war包分发到测试服务器或者生产服务器,测试人员或用户就可以访问应用。

4.3.1Gitlab服务部署


4.3.1.1 Gitlab介绍

官网:https://about.gitlab.com/
GitLab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务。


4.3.1.2 Gitlab与Github区别

GitLab和GitHub一样属于第三方基于Git开发的作品,免费且开源(基于MIT协议),与Github类似,可以注册用户,任意提交你的代码,添加SSHKey等等。不同的是,GitLab是可以部署到自己的服务器上,数据库等一切信息都掌握在自己手上,适合团队内部协作开发。
Github服务器在别人手上,所有的代码需要上传到别人的服务器上。Gitlab可以看作是一个个人版的Github.


4.3.1.3 Gitlab安装

1.安装相关依赖
yum -y install policycoreutils openssh-server openssh-clients postfix
2.启动ssh服务&设置为开机启动
systemctl enable sshd && systemctl start sshd
3.设置postfix开机自启,并启动,postfix支持gitlab发信功能
systemctl enable postfix && systemctl start postfix
4.开放ssh以及http服务,然后重新加载防火墙列表
firewall-cmd --add-service=ssh --permanent
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
如果关闭防火墙就不需要做以上配置
关闭防火墙和增强机制
systemctl stop firewalld.service
systemctl disable firewalld.service
setenforce 0
#使用命令行模式在线下载
wget --no-check-certificate https://mirrors.tuna.tsinghua.edu.cn/gitlabce/yum/el7/gitlab-ce-12.10.14-ce.0.el7.x86_64.rpm
#--no-check-certificate 不进行证书验证
rpm -ivh gitlab-ce-12.4.2-ce.0.el6.x86_64.rpm

在这里插入图片描述

widows下载安装包:https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.10.14-ce.0.
el7.x86_64.rpm

4.3.1.4修改gitlab配置

vim /etc/gitlab/gitlab.rb
external_url 'http://xxxxxxx' #29行,ip地址:端口;外部访问的地址
nginx['listen_port'] = 82 #1197默认注释。修改为82端口
unicorn['worker_processes'] = 2 #736行,设置gitlab占用内存大小

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
重载配置及启动gitlab

gitlab-ctl reconfigure #重新加载配置

在这里插入图片描述

gitlab-ctl restart #重启服务

#开机自启
systemctl enable gitlab-runsvdir.service

在这里插入图片描述
试着用IP 直接访问 IP:82 10.148.158.4:82
修改管理员密码后,即可登录
在这里插入图片描述
在这里插入图片描述


4.3.1.5 Gitlab用户管理


4.3.1.5.1 创建用户组

在这里插入图片描述
在这里插入图片描述
权限等级分三种:


  • Private 私有的,只有你自己或者组内的成员能访问
  • Internal 所有登录的用户
  • Public 公开的,所有人都可以访问

4.3.1.5.2 创建项目

在这里插入图片描述
代码上传

git config --global user.name "root" #全局声明
git clone http://10.148.158.4:root/web-test.git #将项目克隆到服务器
输入密码:12345678
cd web-test #切换目录
git add . #将代码上传到工作区
git commit -m "Initial commit" #提交代码申明
git push -u origin master #将代码推送到Gitlab

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


4.3.1.5.3 用户创建

如图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
点击创建,在生成用户的右侧点击创建密码
在这里插入图片描述
在这里插入图片描述
点下下面的保存你修改,save change!


4.3.1.5.4 添加用户到组

如图所示:
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
Gitlab用户在组里面有5种不同权限:

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,普通开发可以赋予这个权限
Maintainer:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心开发可以赋予这个权限
Owner:可以设置项目访问权限·Visibility Level、删除项目、迁移项目、管理组成员,开发组组长可以赋予这个权限

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


五、Jenkins服务部署

5.1 Jenkins安装

官网:https://www.jenkins.io/
新版的Jenkins需要安装JDK11的JAVA环境,所以我们首先要配置JDK
下载完之后拖到opt目录下
在这里插入图片描述

#安装JDK11
rpm -ivh jdk-11.0.15.1_linux-x64_bin.rpm
#安装Jenkins
rpm -ivh jenkins-2.332.3-1.1.noarch.rpm

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


5.1.1 修改Jenkins配置文件

vim /etc/sysconfig/jenkins
JENKINS_PORT="8080" #修改默认端口,根据所需修改
systemctl start jenkins.service

在这里插入图片描述
在浏览器访问IP:端口【记得这里要把防火墙给关闭!】
在这里插入图片描述
在浏览器访问,选择自行选择插件安装
在这里插入图片描述
在这里插入图片描述
第一次进入后,会让创建一个管理员账户与密码
在这里插入图片描述
在这里插入图片描述


5.1.2 Jenkins添加汉化插件

Jenkins->Manage Jenkins->Manage Plugins,点击Available,搜索Chinese、Locale插件
在这里插入图片描述
在这里插入图片描述
在Manage Jenkins–>Configure System中设置如下
在这里插入图片描述
解决插件安装完,中文简体部分不翻译在Locale中,将语言设置为en_US,重启,再设置为zh_CN;注:zh_TW为中文繁体
【因为版本问题可能会导致部分英文无法被识别】


5.1.3 用户权限管理


5.1.3.1 安装插件

Role-based Authorization Strategy:主要用于用户权限管理
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加完后可以再管理界面看到如下功能选项
在这里插入图片描述
点击进入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Glabal rales (全局角色):管理员等高级用户可以创建基于全局的角色
Project roles(项目角色)︰针对菜个或者某些项目的角色
Node rales(节点角色)︰节点相关的权限


5.1.3.2 添加角色

我们添加以下三个角色:
TEST: 该角色为全局角色。这个角色需要绑定Dverall下面的Read权限,是为了给所有用户绑定最基本的jenkins访问权限。
注意:如果不给后续用户绑定这个角色,会报错误:用户名is missing the Overall/Read permission
test1:该角色为项目角色。使用正则表达式绑定zzh.*,意思是只能操作zzh开头的项目。
test2:该角色也为项目角色。绑定wxd.*,意思是只能操作wxd开头的项目。

在这里插入图片描述


5.1.3.3 创建用户

路径:系统管理–>管理用户–>新建用户
新建两个用户001与002
在这里插入图片描述
在这里插入图片描述


5.1.3.4 切换账户

**v**


5.1.3.5 权限分配

系统管理–>Manage and Assign Roles–>Assign Rples
在这里插入图片描述


5.1.3.6 项目创建

在首页新建任务中,创建两个自由风格项目在这里插入图片描述
在这里插入图片描述
切换账户进行访问
在这里插入图片描述
在这里插入图片描述


5.1.4 Jenkins凭证管理

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


5.1.4.1 安装Credentials Binding插件

在这里插入图片描述
安装完插件后在系统管理,多了两个功能菜单
在这里插入图片描述
路径:系统管理–>Manage Credentials
在这里插入图片描述
在这里插入图片描述

Username with password:用户名和密码 比如使用Gitlab拉取代码
SSH Username with private key:使用SSH用户和密钥 SSH免密登录
Secret file:需要保密的文本文件,使用时Jenkins会将文件复制到一个临时目录中,再将文件路径设置到
一个变量中,等构建结束后,所复制的Secret file就会被删除。
Secret text:需要偃存的一个加密的文本串,如钉钉机器人或Github的api token
Certificate:通过上传证书文件的方式
常用的凭证类型有: Username with password(用户密码)和SSH Username with private key (SSH密
)
接下来以使用Git工具到Gitlab拉取项目源码为例,演示Jenkins的如何管理Gitlab的凭证。

5.1.4.2 安装Git插件和Git工具

为了让Jenkins支持从Gitlab拉取源码,需要安装Git插件以及在CentOs7上安装Git工具Git插件安装
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
打开服务器安装Git工具

yum install -y git #安装git工具
git --version #查看git版本

在这里插入图片描述

在这里插入图片描述


5.1.5 配置Gitlab凭证

SSH免密登录

路径:系统管理-->Manage Credentials
在Gitlab服务器上,使用root用户生成钥匙对


ssh-keygen
#/root/.ssh/目录保存公钥和使用


在这里插入图片描述
id_rsa:私钥文件
id_rsa.pub:公钥文件
把生成的公钥放在Gitlab中,使用root用户登录Gitlab
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看服务器上的公钥内容
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
将私钥内容复制到Jenkins
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
生成后的凭证:
在这里插入图片描述
打开gitlab,选择仓库,复制仓库ssh克隆地址
在这里插入图片描述
在这里插入图片描述
测试,选择zzh001的任务,选择立即构建进行拉取gitlab代码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


5.1.6 Maven部署

在Jenkins集成服务器上,我们需要安装Maven来编译和打包项目。
Maven官网:https://maven.apache.org/download.cgi
在这里插入图片描述
上传Maven软件【在Jenkins的服务器上装】
在这里插入图片描述


5.1.6.1 安装Maven

tar -xf apache-maven-3.8.6-bin.tar.gz #解压
mv apache-maven-3.8.6 /usr/local/maven #移动文件
#配置环境变量
vim/etc/profile
export JAVA_HOME=/usr/java/jdk-11.0.15.1
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$JAVA_HOME/bin:$MAVEN_HOME/bin
#刷新配置
source /etc/profile
mvn -v #查找Maven版本

在这里插入图片描述
行尾添加【按G到行尾,按o输入】
在这里插入图片描述


5.1.6.2 Jenkins配置Maven

打开全局工具设置
在这里插入图片描述
在这里插入图片描述


5.1.6.3添加Maven

在这里插入图片描述
应用保存
打开系统设置
在这里插入图片描述


5.1.6.4 修改Maven的settings.xml

mkdir /opt/repo #创建本地仓库目录
vim /usr/local/maven/conf/settings.xml

在这里插入图片描述


六、Tomcat服务部署

6.1 JDK配置

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
#上传安装包
apache-tomcat-9.0.16.tar.gz #tomcat安装包
jdk-8u201-linux-x64.rpm #JDK安装包

在这里插入图片描述

#解压,安装JDK
rpm -ivh jdk-8u201-linux-x64.rpm

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


6.2 设置JDK环境变量

#新建文件
vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$PATH
#刷新变量
source /etc/profile.d/java.sh

在这里插入图片描述
使用java -version查看版本
在这里插入图片描述
#在服务台测试
mvn help:system
#出现如下,则说明mvn配置正确
在这里插入图片描述
在这里插入图片描述


6.3 安装Tomcat

#解压安装包
cd /opt
tar -xf apache-tomcat-9.0.16.tar.gz
#移动解压包到指定目录
mv apache-tomcat-9.0.16 /usr/local/tomcat
#创建用户,便于管理服务
useradd -M -s /sbin/nologin tomcat
chown -R tomcat:tomcat /usr/local/tomcat

在这里插入图片描述

#添加启动脚本:
vim /etc/init.d/tomcat
#!/bin/bash
#chkconfig: 35 80 25
#description:Tomcat Service Control Script
start="/usr/local/tomcat/bin/startup.sh"
stop="/usr/local/tomcat/bin/shutdown.sh"
case "$1" in
start)
$start
;;
stop)
$stop
;;
restart)
$0 stop
$0 start
;;
*)
echo "$0 {start|stop|restart}"
esac

在这里插入图片描述

#设置:
chmod +x /etc/init.d/tomcat #添加执行权限
chkconfig --add tomcat #添加到系统服务
systemctl start tomcat
lsof -i:8080 #查看服务是否启动

在这里插入图片描述


6.4 设置终端访问

#添加tomcat用户密码用于终端登录
vim /usr/local/tomcat/conf/tomcat-users.xml
<tomcat-users>
<role rolename&#61;"tomcat"/>
<role rolename&#61;"role1"/>
<role rolename&#61;"manager-script"/>
<role rolename&#61;"manager-gui"/>
<role rolename&#61;"manager-status"/>
<role rolename&#61;"admin-gui"/>
<role rolename&#61;"admin-script"/>
<user username&#61;"tomcat" password&#61;"123456" roles&#61;"tomcat,manager-script,manager-gui,admin-gui,admin-script"/>
</tomcat-users>

在这里插入图片描述

#开启终端访问&#xff0c;修改以下配置&#xff0c;默认不许允许远程访问&#xff0c;现在需要注释掉
vim /usr/local/tomcat/webapps/manager/META-INF/context.xml

在这里插入图片描述

重启服务&#xff1a;systemctl start tomcat

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


七、Jenkins–Pipeline流水线项目构建

7.1 Pipeline简介


  1. 概念
    Pipeline&#xff0c;简单来说&#xff0c;就是一套运行在Jenkins上的工作流框架&#xff0c;将原来独立运行于单个或者多个节点的
    任务连接起来&#xff0c;实现单个任务难以完成的复杂流程编排和可视化的工作。
  2. 使用Pipeline有以下好处∶

  • 代码: Pipeline以代码的形式实现&#xff0c;通常被检入源代码控制&#xff0c;使团队能够编辑&#xff0c;审查和迭代其传送流程。
  • 持久:无论是计划内的还是计划外的服务器重启&#xff0c;Pipeline都是可恢复的。
  • 可停止: Pipeline可接收交互式输入&#xff0c;以确定是否继续执行Pipeline。
  • 多功能: Pipeline支持现实世界中复杂的持续交付要求。它支持fork/join、循环执行&#xff0c;并行执行任务的功能。
  • 可扩展: Pipeline插件支持其DSL的自定义扩展&#xff0c;以及与其他插件集成的多个选项。

  1. 如何创建Jenkins Pipeline呢?
    Pipeline脚本是由Groovy语言实现的&#xff0c;但是我们没必要单独去学习Groovy
    Pipeline支持两种语法: Declarative(声明式)和Scripted Pipeline(脚本式)语法
    **Pipeline也有两种创建方法:**可以直接在Jenkins的Web UI界面中输入脚本;也可以通过创建一个Jenkinsfile脚本文件放入项目源码库中(一般我们都推荐在Jenkins 中直接从源代码控制(SCM)中直接载入Jenkinsfile Pipeline这种方法)。

7.2 安装Pipeline插件

如图所示&#xff1a;
在这里插入图片描述
在这里插入图片描述
Pipeline分为&#xff1a;脚本式、声明式&#xff0c;2.0以后推荐使用声明式脚本

声明式&#xff1a;以pipeline开头 stages之前&#xff0c;可以加入环境、jdk、maven等配置&#xff0c;
stages&#xff08;一个&#xff09;阶段下有多个stage&#xff0c;stage下有steps&#xff0c;拉取代码等操作

在这里插入图片描述

pipeline {
agent any
stages {
stage(&#39;pull code&#39;) {
steps {
echo &#39;开始拉取代码&#39;
}
}
stage(&#39;build project&#39;) {
steps {
echo &#39;开始构建&#39;
}
}
stage(&#39;publish project&#39;) {
steps {
echo &#39;正在部署&#39;
}
}
}
}

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


7.3 拉取代码

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
能够看到刚刚的操作&#xff01;
查看Jenkins工作空间/var/lib/jenkins/workspace/
在这里插入图片描述


7.4 编译打包

如图所示:
在这里插入图片描述
将代码放入脚本中
在这里插入图片描述
再次点击应用、保存&#xff0c;并构建
查看控制台输出
在这里插入图片描述
查看Jenkins工作空间
在这里插入图片描述


7.5 发布


7.5.1 Tomcat认证

如图所示&#xff1a;
在这里插入图片描述
在这里插入图片描述
选择流水线语法&#xff0c;生成pipeline脚本
在这里插入图片描述

deploy adapters: [tomcat9(credentialsId: &#39;8108a31f-a1bc-4350-9cfb-147bafaae1e8&#39;,
path: &#39;&#39;, url: &#39;http://192.168.48.13:8080&#39;)], contextPath: null, war: &#39;**/*.war&#39;

将脚本内容复制到代码中
在这里插入图片描述
点击应用、保存&#xff0c;并构建&#xff0c;查看控制台输出
在这里插入图片描述
访问tomcat界面
在这里插入图片描述

小编的内容就讲到这里&#xff01;闲暇之余写的大家喜欢点点关注小爱心哦&#xff01;







推荐阅读
  • 本文介绍了H5游戏性能优化和调试技巧,包括从问题表象出发进行优化、排除外部问题导致的卡顿、帧率设定、减少drawcall的方法、UI优化和图集渲染等八个理念。对于游戏程序员来说,解决游戏性能问题是一个关键的任务,本文提供了一些有用的参考价值。摘要长度为183字。 ... [详细]
  • Webpack5内置处理图片资源的配置方法
    本文介绍了在Webpack5中处理图片资源的配置方法。在Webpack4中,我们需要使用file-loader和url-loader来处理图片资源,但是在Webpack5中,这两个Loader的功能已经被内置到Webpack中,我们只需要简单配置即可实现图片资源的处理。本文还介绍了一些常用的配置方法,如匹配不同类型的图片文件、设置输出路径等。通过本文的学习,读者可以快速掌握Webpack5处理图片资源的方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文详细介绍了使用C#实现Word模版打印的方案。包括添加COM引用、新建Word操作类、开启Word进程、加载模版文件等步骤。通过该方案可以实现C#对Word文档的打印功能。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文介绍了RxJava在Android开发中的广泛应用以及其在事件总线(Event Bus)实现中的使用方法。RxJava是一种基于观察者模式的异步java库,可以提高开发效率、降低维护成本。通过RxJava,开发者可以实现事件的异步处理和链式操作。对于已经具备RxJava基础的开发者来说,本文将详细介绍如何利用RxJava实现事件总线,并提供了使用建议。 ... [详细]
  • GPT-3发布,动动手指就能自动生成代码的神器来了!
    近日,OpenAI发布了最新的NLP模型GPT-3,该模型在GitHub趋势榜上名列前茅。GPT-3使用的数据集容量达到45TB,参数个数高达1750亿,训练好的模型需要700G的硬盘空间来存储。一位开发者根据GPT-3模型上线了一个名为debuid的网站,用户只需用英语描述需求,前端代码就能自动生成。这个神奇的功能让许多程序员感到惊讶。去年,OpenAI在与世界冠军OG战队的表演赛中展示了他们的强化学习模型,在限定条件下以2:0完胜人类冠军。 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
author-avatar
尼莫它只是只喵
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有