当前位置: 首页 > news >正文

jenkins介绍与部署

jenkins介绍与部署

一、Jenkins 基础信息

  1. Jenkins 简介:Jenkins 是开源 CI&CD 软件,起源于商用的 Hudson,用 Java 编写,可在 Tomcat 等容器运行或独立运行,常与 SVN、Git 等版本控制工具及 Maven、Ant、Gradle 等构建工具结合,用于持续自动构建 / 测试软件项目、监控外部任务
  2. 相关工具介绍
    • SVN:开放源代码的版本控制系统,采用分支管理,支持多人协作开发同一项目,实现资源共享与集中式管理
    • Maven:Java 项目构建工具,通过项目对象模型(POM)管理项目构建、报告和文档,缺省构建规则可重用,配置简单
    • Ant:自动化工具,能将软件编译、测试、部署等步骤关联,主要用于构建 Java 应用,也可构建 C/C++ 等非 Java 应用
    • Gradle:基于 Ant 和 Maven 的项目自动化构建工具,负责项目依赖、打包、部署、发布及渠道差异管理等
  3. Jenkins 工作原理:从 SVN/Git 拷贝源代码到本地,依据设置的 build 脚本执行任务,build 脚本是整个系统的关键
  4. Jenkins 特点:具有易安装(仅需 Jenkins.war 文件)、易配置(GUI 界面)、支持代码变更检测、永久链接、集成多种通知工具、生成测试报告、分布式构建、保存文件指纹信息及支持第三方插件等特点

二、CI/CD 概念

  1. CI(持续集成)
    • 简介:开发人员提交新代码后,系统自动构建、进行单元测试,判断新代码与原有代码能否正确集成,可减少代码错误引入
    • 工作模式:涉及源代码(SOURCE)、构建(BUILD)、代码仓库(REPOSITORY)、CI 服务器(CI SERVER)、测试(TEST)、代码提交(CHECK-IN)及结果(RESULT)等环节
    • 优势:频繁集成将复杂代码逻辑分割,便于定位错误;细致的工作提交利于判断工作进度,方便管理开发流程
  2. CD(持续交付与持续部署)
    • 持续交付:在 CI 基础上,将集成后的代码部署到类生产环境(如 Staging 环境)进行更多测试,无问题可手动部署到生产环境
    • 持续部署:是 CI 和持续交付的延伸,能自动将交付的应用部署到生产环境,及时获取用户反馈,降低部署风险,目标是代码随时可部署并自动进入生产环境

三、Jenkins 安装部署(基于 Tomcat 容器)

  1. 部署 Tomcat
    • 卸载 CentOS7 自带 JDK,通过rpm -qa | grep java查看,再用rpm -e命令卸载
    • 安装 JDK11,执行yum -y install java-11-openjdk
    • 下载 Tomcat 9.0 版本(10 版本有 bug),解压到/usr/local/目录并创建软链接tomcat,启动 Tomcat 后测试能否访问首页
  2. 部署 Jenkins
    • 下载 Jenkins.war 文件到/usr/local/tomcat/webapps/目录,文件会自动解压
    • 重启 Tomcat 服务,通过浏览器访问 Jenkins,查看/root/.jenkins/secrets/initialAdminPassword文件获取初始密码登录
  3. 自定义 Jenkins
    • 登录后选择插件安装方式,可先选择 “无”,后续按需安装
    • 创建管理员用户(如 admin,密码 admin)
    • 将 Jenkins 插件源替换为国内源(如华为云、清华大学源),安装简体中文插件及 Git、GitHub、GitLab、Gitee 等插件,安装完成后重启 Jenkins
    • 进行全局工具配置,如安装 JDK,还可进行节点管理

具体示例:

已关闭防火墙与selinux

使用tomcat容器安装jenkins

部署tomcat,tomcat下载https://mirrors.tuna.tsinghua.edu.cn/apache/tomcat,此时下载9.0版本的,10版本部署有bug,无法实现。

先要卸载centos7中自带得jdk

[root@server ~]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64
java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64
tzdata-java-2018e-3.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
[root@server ~]# rpm -e java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 --nodeps
[root@server ~]# rpm -e java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 --nodeps
[root@server ~]# rpm -qa | grep java
python-javapackages-3.4.1-11.el7.noarch
tzdata-java-2018e-3.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch

安装jdk:

[root@server ~]# cd /etc/yum.repos.d/
[root@server yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@server yum.repos.d]# rm -rf *
[root@server yum.repos.d]# curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo% Total    % Received % Xferd  Average Speed   Time    Time     Time  CurrentDload  Upload   Total   Spent    Left  Speed
100  2523  100  2523    0     0   9051      0 --:--:-- --:--:-- --:--:--  9075
[root@server yum.repos.d]# yum -y install epel-release
[root@server ~]# yum -y install java-11-openjdk

上传tomcat压缩包解压,并部署安装:

[root@server ~]# rz -E
rz waiting to receive.
[root@server ~]# ls
anaconda-ks.cfg              Desktop    Downloads             Music     Public     Videos
apache-tomcat-9.0.67.tar.gz  Documents  initial-setup-ks.cfg  Pictures  Templates
[root@server ~]# tar -xzf apache-tomcat-9.0.67.tar.gz -C /usr/local
[root@server ~]# cd /usr/local/
[root@server local]# ln -s apache-tomcat-9.0.67/ tomcat

启动tomcat,测试能否访问tomcat首页:

[root@server local]# cd tomcat/
[root@server tomcat]# bin/startup.sh
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.

在这里插入图片描述

部署Jenkins

下载jenkins到/usr/local/tomcat/webapps/目录下:(注:这里是上传)

[root@server ~]# cd /usr/local/tomcat/webapps/
[root@server webapps]# rz -E
rz waiting to receive.

上传后会自动解压:

[root@server webapps]# ls
docs  examples  host-manager  jenkins  jenkins.war  manager  ROOT

启动服务:

[root@server 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@server 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.

浏览器访问Jenkins:

在这里插入图片描述

查看上图框出来的文件,该文件中记录这密码,复制密码并登录:

[root@server tomcat]# cat /root/.jenkins/secrets/initialAdminPassword
4010907ccf2245a2a6c8782d8008e297

在这里插入图片描述

自定义Jenkins

选择插件来安装:

在这里插入图片描述

选择无,进行安装,后期需要哪些插件就安装哪些插件:

在这里插入图片描述

创建管理员用户admin,密码为redhat:

在这里插入图片描述

此时登录进去是英文界面,我们进行替换国内源:

在这里插入图片描述

在这里插入图片描述

点击
Advanced —> 更新为国内源 —> Submit

原国外插件源地址:https://updates.jenkins.io/update-center.json

国内插件源地址:https://mirrors.huaweicloud.com/jenkins/updates/update-center.json

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

安装Git GitHub GitLab Gitee插件

在这里插入图片描述

在这里插入图片描述

安装完成后,会重启jenkins

http://www.dtcms.com/a/511742.html

相关文章:

  • Attention:MHA->MQA->GQA->MLA
  • 拥塞控制原理
  • Flink Kafka 生产者原理与实现
  • 路由器和机顶盒的射频核心:深入解析PA、LNA、PHY与滤波器
  • Java----set
  • python编程网站推荐郑州云帆网站设计
  • 如何做论文网站给我一个用c 做的网站
  • 青岛网站排名公司自己的网站如何让百度收录
  • MQTT主题架构的艺术:从字符串拼接走向设计模式
  • i.MAX6ULL Linux LED 字符设备驱动代码分析
  • Linux中基数树的初始化
  • 4.3 二维数组
  • 【C语言实战(40)】C语言查找算法:从基础到实战的效率进阶
  • 洛谷 P2949 [USACO09OPEN] Work Scheduling G
  • 建站公司杭州南宁制作网站服务商
  • Deepseek-ocr论文精读
  • 【完整源码+数据集+部署教程】【文件&发票】发票信息提取系统源码&数据集全套:改进yolo11-ContextGuided
  • SpringBoot+Shiro+mybatis教务管理系统源码
  • 佛山个人制作网站公司手机百度下载免费安装
  • Git 项目开发核心指南:聚焦常用语法与完整流程
  • 【图像处理基石】遥感多光谱图像处理入门:从概念到实战(附Python代码)
  • Spring Boot项目中使用线程池并发插入6万条数据的线程池参数设置指南
  • 网站建设网站设计哪家专业东莞展馆设计公司
  • Docker Swarm:打造高效、可扩展的容器编排引擎,引领微服务新纪元(上)
  • 第15章:Spring AI Alibaba — 认识Graph框架
  • [Dify 实战] 构建一个自动发送邮件的插件:从 OpenAPI 到自动化通知
  • 基于Chrome140的FB账号自动化(关键词浏览)——脚本撰写(二)
  • CICD实战(8) - 使用Arbess+GitLab实现React.js项目自动化部署
  • 小程序uview actionSheet 内容过多高度设置
  • 基于.net的个人网站开发实录哪个网站建站比较好