tomcat部署jenkins

news2025/1/10 23:37:12

tomcat部署jenkins

1.简介:

Jenkins是一个开源的自动化服务器工具,用于持续集成和持续交付。它能够自动化构建、测试和部署软件项目,提高开发团队的效率和软件质量。

jenkins就是一个整合工具,把代码从git或者其他代码托管平台拉取过来,然后通过脚本语言编写执行流程,达到了项目一键启动的目的
准备工作
发布的包放到wabapps目录下

2.优缺点:

优点:

  1. 易于安装和配置:Jenkins具有用户友好的界面,易于安装和配置,适用于各种项目。
  2. 可扩展性和灵活性:Jenkins支持大量的插件和扩展,可以根据需要添加自定义功能以适应不同的项目要求。
  3. 支持多种版本控制系统:Jenkins能够与多种版本控制系统(如Git、Subversion等)集成,方便代码管理和版本控制。
  4. 强大的可视化和报告功能:Jenkins提供了丰富的可视化和报告工具,方便开发团队实时监控构建和测试结果。

缺点:

  1. 配置复杂:Jenkins的配置涉及到许多参数和插件,使用起来可能需要一定的学习和了解。
  2. 对硬件资源有一定要求:Jenkins需要一定的硬件资源来保证并发构建的效率和稳定性。

3.工作原理:

Jenkins的工作原理基于事件驱动的架构。当有代码提交或定时触发时,Jenkins会触发任务的执行。任务主要通过插件实现,如构建、测试、部署等。Jenkins会通过轮询或等待事件的方式检测代码仓库的变化,并根据配置的规则和条件执行相应的操作。

4.工作流程:

  1. 代码触发:Jenkins会监听代码仓库的变化,当有代码提交或定时触发时,Jenkins会开始执行任务。
  2. 构建:Jenkins会根据任务配置,自动拉取代码,执行构建操作,如编译、打包等。
  3. 测试:构建完成后,Jenkins会执行配置的测试任务,如单元测试、集成测试等。
  4. 部署:如果测试通过,Jenkins会根据配置将构建好的应用程序部署到目标环境。
  5. 反馈和报告:Jenkins会生成构建日志、测试报告等相关信息,并发送通知给相关人员。
  6. 循环:Jenkins会定期监听代码仓库的变化,并重复执行上述步骤。

5.所需环境说明:

Jenkins是基于Java开发的,因此需要安装Java运行环境(JRE或JDK)。此外,Jenkins需要运行在支持Java的操作系统上,如Windows、Linux和Mac等。具体的硬件需求取决于项目的规模和需求,一般建议分配足够的内存、磁盘空间和网络带宽来保证Jenkins的正常运行。

6.CI/CD介绍

CI/CD是持续集成(Continuous Integration)与持续部署(Continuous Deployment)的缩写。

当涉及到持续集成与持续部署时,以下是一些关键概念和优势:

  1. 持续集成(CI):持续集成是一种开发实践,要求开发人员经常将代码集成到共享代码仓库中。这通过自动化构建、自动化测试、代码静态分析等过程来实现。持续集成的优势包括减少集成问题、快速发现错误、增加团队协作。
  2. 持续部署(CD):持续部署是在持续集成完成后,自动将应用程序部署到生产环境的过程。这可通过自动化构建、配置管理、发布工具等来实现。持续部署的优势包括减少人为错误、快速交付新功能、实现持续交付。
  3. 自动化测试:持续集成和持续部署依赖于自动化测试来验证代码和应用程序的质量。自动化测试包括单元测试、集成测试、端到端测试等,可以在每次代码提交或部署前运行。
  4. 自动化工具:实现持续集成和持续部署需要使用各种自动化工具和平台。常见的工具包括持续集成服务器(如Jenkins、Travis CI)、配置管理工具(如Ansible、Chef)、容器化平台(如Docker、Kubernetes)等。

优势:

  • 加速发布:持续集成和持续部署自动化了构建、测试和部署过程,能够更快地交付新功能和修复bug。
  • 减少风险:自动化测试和验证过程可以快速发现问题,并在早期阶段解决,降低了发布潜在问题的风险。
  • 提高代码质量:频繁地进行集成和测试,有助于发现和纠正代码质量问题,促进团队合作。
  • 提升团队效率:自动化的CI/CD流程减少了手动重复工作,使开发团队能够更集中地编写代码和解决问题。

综上所述,持续集成与持续部署是一种有效的开发实践,通过自动化构建、测试和部署来加速交付新功能,降低发布风险,并提高团队效率和代码质量。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7.实战

7.1.tomcat部署jenkins

环境说明

需要部署好tomcat服务,详细步骤访问此网站:
tomcat服务&&tomcat多实例部署

7.1.1.进入jenkins官网下载jenkins.war包

官网地址Jenkins
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

将jenkins.war包复制到/usr/local/tomcat/webapps/目录中,并开启tomcat服务使jenkins.war包自动解压

[root@jenkins ~]# ls
anaconda-ks.cfg  apache-tomcat-9.0.80.tar.gz  jenkins.war
[root@jenkins ~]# cp jenkins.war /usr/local/tomcat/webapps/
[root@jenkins ~]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  jenkins.war  manager  ROOT  test
[root@jenkins ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
[root@jenkins ~]# ls /usr/local/tomcat/webapps/
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT  test

//查看端口
[root@jenkins ~]# ss -antl
State          Recv-Q         Send-Q                      Local Address:Port                 Peer Address:Port        
LISTEN         0              128                               0.0.0.0:22                        0.0.0.0:*           
LISTEN         0              1                      [::ffff:127.0.0.1]:8005                            *:*           
LISTEN         0              100                                     *:8080                            *:*           
LISTEN         0              128                                  [::]:22                           [::]:*

部署jenkins需将java-1.8.0-openjdk删除,安装java-17-openjdk

//将java-1.8.0-openjdk删除
[root@jenkins ~]# rpm -qa | grep openjdk
java-1.8.0-openjdk-headless-1.8.0.312.b07-2.el8_5.x86_64
java-1.8.0-openjdk-devel-1.8.0.312.b07-2.el8_5.x86_64
java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk-headless
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk-devel
[root@jenkins ~]# rpm -e --nodeps java-1.8.0-openjdk

//安装java-17-openjdk
[root@jenkins ~]# yum -y install java-17-openjdk
省略 . . .

//重启tomcat服务
[root@jenkins ~]# /usr/local/tomcat/bin/catalina.sh stop
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
NOTE: Picked up JDK_JAVA_OPTIONS:  --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED
[root@jenkins ~]# /usr/local/tomcat/bin/catalina.sh start
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.
7.1.2.访问jenkins项目

在这里插入图片描述

[root@jenkins ~]# cat /root/.jenkins/secrets/initialAdminPassword
8062a842d81344a9b6be9b972d4c7bd7

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

部署成功

7.1.3.在jenkins页面中创建一个项目进行测试

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1093016.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

windows10 sockect tcp

1. 在vs下添加ws2_32.lib库 右键【项目】-【属性】-【链接器】-【输入】-【附加依赖项】,进行编辑,添加 ws2_32.lib库,去掉从父级或项目默认设置继承的勾选,如下图所示: 这是因为inet_addr是一个老函数,而…

【MySQL】索引的作用及知识储备

为什么要有索引 索引可以提高数据库的性能。不用加内存,不用改程序,不用调sql,只要执行正确的create indix,查询的速度就可能提高成百上千倍。但相应的代价是,插入,更新,删除的速度有所减弱。 …

【重新定义matlab强大系列十六】求解混合整数线性问题

🔗 运行环境:Matlab 🚩 撰写作者:左手の明天 🥇 精选专栏:《python》 🔥 推荐专栏:《算法研究》 #### 防伪水印——左手の明天 #### 💗 大家好🤗&#x1f91…

【算法|动态规划No.18】leetcode718. 最长重复子数组

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

数据结构与算法-单链表小练习

🎈类定义 typedef int ElemType; typedef struct LNode {ElemType data;LNode* next; }LNode; class LinkList { private:LNode* head;public:LinkList();~LinkList();int deletelist(int x);void CreatList_h(int n);void print_evennode();void divide_LinkList(…

『GitHub Actions』部署静态博客指南

前言 之前博主是使用的 Jenkins 实现 vuepress 博客的自动部署与持续交付,但是因为现在迁移服务器到海外,并且服务器配置降低。现在经常出现服务器的 Jenkins 构建过程中 CPU 占用率过高,导致服务器卡死 然后我想的话既然只是部署静态博客&…

基于Java的博客管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)

Puppeteer实现上下滚动、打开新Tab、用户数据保存(三) Puppeteer实现上下滚动、打开新Tab、用户数据保存(三)一、实现上下滚动二、打开新Tab三、用户数据保存四、效果演示 一、实现上下滚动 在自动化测试中,我们需要能…

计算机毕业设计选题推荐-springboot 蛋糕甜品店管理系统

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

YOLO目标检测——跌倒摔倒数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用:公共安全监控、智能家居、工业安全等活动区域无监管情况下的人员摔倒事故数据集说明:YOLO目标检测数据集,真实场景的高质量图片数据,数据场景丰富。使用lableimg标注软件标注,标注框质量高,含…

SpringBoot面试题1:什么是SpringBoot?为什么要用SpringBoot?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:什么是SpringBoot? Spring Boot 是一个用于快速开发独立的、基于 Spring 框架的应用程序的开源框架。它简化了 Spring 应用的配置和部署过程,使…

稚晖君项目复刻:L-ink门禁卡(1)——环境搭建与第一个项目创建

行文目录 前言其他文章正文开始STM32CubeMX安装STM32CubeMX安装L0的固件支持包Clion安装OpenOCD安装MinGw安装arm-none-eabi-gcc安装Clion配置 创建STM32工程创建STM32CubeMX工程更改芯片型号 参考文献 前言 其实关于稚晖君的L-ink门禁卡在我本科阶段就已经刷过好几次了&#x…

前端页面布局之【响应式布局】

目录 🌟前言🌟优点🌟缺点🌟media兼容性🌟利用CSS3-Media Query实现响应式布局🌟常见的媒体类型🌟常见的操作符🌟属性值🌟设备检测🌟响应式阈值选取&#x1f3…

使用vue3+element-ui plus 快速构建后台管理模板

一、安装 vue3 脚手架 npm create vuelatestcd vue-ui-template #切换到刚刚创建好的vue项目根目录中 npm install #下载项目所需要的依赖包 npm run dev #启动运行项目服务项目启动后,默认页面显示如下: 二、安装element-ui plus 官网链接:…

CDN到底有什么魅力,值得网站接入

当谈到提高网站性能和用户体验时,内容分发网络(Content Delivery Network,CDN)是一项不可忽视的技术。CDN加速已经成为许多在线企业的首选,用以减少加载时间、提高安全性和全球可访问性。本文将深入探讨CDN的原理、工作…

2023-10-14 LeetCode每日一题(只出现一次的数字)

2023-10-14每日一题 一、题目编号 136. 只出现一次的数字二、题目链接 点击跳转到题目位置 三、题目描述 给你一个 非空 整数数组 nums ,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时…

基于Java的大学生实习管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

【LVGL】SquareLine Studio入门基础操作

1.SquareLine Studio基础 在这篇文章中将介绍SquareLine Studio的基础操作、解释如何加载一个项目、布局结构。    启动软件后,可以加载之前的项目、创建项目、加载一个示例。    这里以打开示例audio_mixer为例,可以双击该项目打开或者选中该项目点击右下角的【创建】按…

从基础到卷积神经网络(第13天)

1. PyTorch 神经网络基础 1.1 模型构造 1. 块和层 首先,回顾一下多层感知机 import torch from torch import nn from torch.nn import functional as Fnet = nn.Sequential(nn.Linear(20, 256), nn.ReLU(), nn.Linear(256, 10))X = torch.rand(2, 20) # 生成随机输入(批…