Jenkins持续集成部署——jenkins安装

前言

Jenkins 是一个开源的自动化服务器,主要用于持续集成(CI)和持续交付(CD)。它为软件开发团队提供了一个易于使用的平台来自动化构建、测试和部署应用程序的过程。

Jenkins 主要功能

1. 持续集成 (CI)

  • 自动构建:每次代码提交后,Jenkins 可以自动触发构建过程,确保最新的代码可以成功编译。
  • 测试执行:在构建完成后,Jenkins 可以运行单元测试、集成测试等,确保代码质量。
  • 静态代码分析:通过插件,Jenkins 可以执行静态代码分析工具(如 SonarQube),检查代码中的潜在问题。

2. 持续交付 (CD)

  • 自动化部署:Jenkins 支持从构建到部署的整个流水线自动化,包括将应用程序部署到不同环境(如开发、测试、生产)。
  • 版本控制集成:与各种版本控制系统(如 Git、SVN)无缝集成,能够自动检测代码变更并触发相应的构建任务。

3. Pipeline as Code

  • 定义 CI/CD 流水线:使用 Jenkins Pipeline 功能,可以将 CI/CD 流程定义为代码的一部分,并将其存储在项目的源代码仓库中。这不仅便于版本控制,还促进了团队协作和审查。
  • Declarative 和 Scripted Pipelines:提供两种编写 Pipeline 的方式,满足不同的需求。Declarative Pipeline 更加结构化,适合新手;Scripted Pipeline 提供更大的灵活性,适合复杂场景。

4. 分布式构建

  • 主从架构:Jenkins 支持主从架构,允许将构建任务分发到多个节点上执行,提高构建效率,特别适用于大型项目或需要跨平台构建的情况。
  • 多平台支持:可以在不同的操作系统(如 Linux、Windows、macOS)上设置 Jenkins Agent,以适应多样化的构建需求。

5. 插件生态系统

  • 丰富的插件库:拥有超过 1,500 个插件,涵盖从构建工具、测试框架到通知服务等各种工具和技术,极大地扩展了 Jenkins 的功能。
  • 自定义扩展:用户还可以根据自己的需求开发和安装自定义插件,进一步增强 Jenkins 的能力。

6. 安全性和权限管理

  • 用户认证:支持多种认证机制(如 LDAP、Active Directory),确保只有授权人员才能访问和操作 Jenkins。
  • 权限控制:提供了细粒度的权限管理,可以根据角色分配不同的权限,保护敏感信息和操作。

7. 监控和报告

  • 构建状态可视化:通过 Web 界面直观地展示每个 Job 的构建状态,帮助团队快速了解项目健康状况。
  • 历史记录和趋势分析:保存所有构建的历史记录,提供趋势分析图表,有助于发现和解决长期存在的问题。

8. 通知和集成

  • 通知机制:可以通过电子邮件、Slack、HipChat 等多种渠道发送构建结果通知,确保团队成员及时获得反馈。
  • 第三方服务集成:与 Docker、Kubernetes、AWS 等云服务和其他 DevOps 工具链集成,提升整体工作效率。

9. 易用性

  • Web 界面:提供了友好的 Web 用户界面,简化了 Jenkins 的配置和管理。
  • 文档和支持:拥有详尽的官方文档和活跃的社区支持,方便用户学习和解决问题

Jenkins 工作流

代码提交

        1. ​​​​​开发人员将代码提交到版本控制系统(如 Git)。

        2. 提交代码后,版本控制系统会记录此次提交。

触发构建

        1. Jenkins 监控版本控制系统的变化,当检测到代码提交时,会自动触发构建。

        2. Jenkins 会根据配置的触发规则(如代码提交、定时任务等)启动构建任务。

构建和测试

        1. Jenkins 根据配置的构建脚本,编译代码并运行自动化测试。

        2. 测试结果会被记录并分析,以确保代码的质量。

        3. ​​​如果测试失败,构建过程会中断,并报告失败原因。

生成构建结果

        1. Jenkins 将构建结果(成功或失败)报告给开发人员,并生成构建工件(如可执行文件、Docker 镜像等)。

        2. 构建工件会被存储在 Jenkins 的工作空间中,以便后续使用。

        3. ​​​​​​​Jenkins 还可以生成详细的构建日志和报告,方便开发人员查看和调试。

部署

​​​​​​​        1. Jenkins 可以自动将构建好的工件部署到测试环境或生产环境。

        2. 部署过程可以配置为手动或自动,具体取决于团队的需求和流程。

​​​​​​​        3. Jenkins 支持多种部署方式,如直接部署到服务器、通过 Docker 部署等。

Jenkins 安装

1. 基础环境准备

        1.1节点规划

IP

主机名

节点

192.168.200.70

jenkins

Jenkins

        上传jdk-17.0.10_linux-x64_bin.tar.gz  jenkins-2.489-1.1.noarch.rpm软件包到虚拟机/root目录下。

2. 安装 Jenkins

2.1 基础环境配置

(1)修改主机名

[root@localhost ~]# hostnamectl  set-hostname jenkins
[root@localhost ~]#bash

(2)关闭防火墙

[root@jenkins ~]# systemctl stop firewalld
[root@jenkins ~]# setenforce 0

2.2 安装 jdk

        Jenkins是基于java8编写的软件,所以在安装之前需要在主机上安装Java8的运行环境,及安装jdk 17.0.10。

[root@jenkins ~]# mkdir /usr/lib/jdk17/
[root@jenkins ~]# tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/lib/jdk17/
[root@jenkins ~]# ls /usr/lib/jdk17/
jdk-17.0.10

配置环境变量

[root@jenkins ~]# vi /etc/profile
export JAVA_HOME=/usr/lib/jdk17/jdk-17.0.10
export CLASSPATH=.:$JAVA_HOME/lib
export PATH=.:$JAVA_HOME/bin:$PATH
[root@jenkins ~]# source /etc/profile
[root@jenkins ~]# java -version
java version "17.0.10" 2024-01-16 LTS
Java(TM) SE Runtime Environment (build 17.0.10+11-LTS-240)
Java HotSpot(TM) 64-Bit Server VM (build 17.0.10+11-LTS-240, mixed mode, sharing)

2.3 安装 Jenkins

        Jenkins是一个独立的开源软件项目,是基于Java开发的一种可扩展的持续集成(CI)工具,用于监控持续重复的工作,自动的构建和测试软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能。

        解压jenkins-2.489-1.1.noarch.rpm包。

[root@jenkins ~]# rpm -ivh jenkins-2.489-1.1.noarch.rpm 

配置 Jenkins

[root@jenkins ~]# vi /usr/lib/systemd/system/jenkins.service

修改下图标注内容

启动 Jenkins

[root@jenkins ~]#  yum install -y fontconfig
[root@jenkins ~]# systemctl daemon-reload
[root@jenkins ~]# systemctl start jenkins 
[root@jenkins ~]# systemctl status jenkins
[root@jenkins ~]# netstat -tuln
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp6       0      0 :::8088                 :::*                    LISTEN     
tcp6       0      0 ::1:25                  :::*                    LISTEN     
tcp6       0      0 :::22                   :::*                    LISTEN     
udp        0      0 127.0.0.1:323           0.0.0.0:*                          
udp6       0      0 ::1:323                 :::*                             

登录网站 http://ip:8088(默认端口为8080)

查看安装日志,查询密码,并输入管理员密码。

[root@jenkins ~]# cat /var/lib/jenkins/secrets/initialAdminPassword
c4245c993980486495d104caa4366d60

3. 自定义 Jenkins

(1)安装插件

        登陆后,会出现如下页面,这里涉及到jenkins的插件安装,建议选择“安装推荐的插件”,点击“安装推荐的插件”后,进入“新手入门”页面,等待全部插件安装成功即可。

(2)创建第一个管理员用户

        插件安装完成后,会出现“创建第一个管理员用户”页面,填写正确信息后,点击“保存并完成”,这样第一个管理员用户就创建完毕了,如下图:

至此,Jenkins安装结束。你可以开始使用自己的Jenkins了。

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

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

相关文章

PYG - Cora数据集加载 (自动加载+手动实现)

本文从Cora的例子来展示PYG如何加载图数据集。 Cora 是一个小型的有标注的图数据集,包含以下内容: data.x:2708 个节点(即 2708 篇论文),每个节点有 1433 个特征,形状为 (2708, 1433)。data.ed…

《 火星人 》

题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的,首先,火星人把一个非常大的数字告诉人类科学家,科学家破解这…

机器学习基础算法 (二)-逻辑回归

python 环境的配置参考 从零开始:Python 环境搭建与工具配置 逻辑回归是一种用于解决二分类问题的机器学习算法,它可以预测输入数据属于某个类别的概率。本文将详细介绍逻辑回归的原理、Python 实现、模型评估和调优,并结合垃圾邮件分类案例进…

BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)

Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出) 目录 Matlab实现BiTCN-BiGRU基于双向时间卷积网络结合双向门控循环单元的数据多特征分类预测(多输入单输出)分类效果基本描述…

云备份项目--工具类编写

4. 文件工具类的设计 4.1 整体的类 该类实现对文件进行操作 FileUtil.hpp如下 /* 该类实现对文件进行操作 */ #pragma once #include <iostream> #include <string> #include <fstream> #include <vector> #include <sys/types.h> #include …

51c大模型~合集94

我自己的原文哦~ https://blog.51cto.com/whaosoft/12897659 #D(R,O) Grasp 重塑跨智能体灵巧手抓取&#xff0c;NUS邵林团队提出全新交互式表征&#xff0c;斩获CoRL Workshop最佳机器人论文奖 本文的作者均来自新加坡国立大学 LinS Lab。本文的共同第一作者为上海交通大…

【大学英语】英语范文十八篇,书信,议论文,材料分析

关注作者了解更多 我的其他CSDN专栏 过程控制系统 工程测试技术 虚拟仪器技术 可编程控制器 工业现场总线 数字图像处理 智能控制 传感器技术 嵌入式系统 复变函数与积分变换 单片机原理 线性代数 大学物理 热工与工程流体力学 数字信号处理 光电融合集成电路…

一起学Git【第一节:Git的安装】

Git是什么&#xff1f; Git是什么&#xff1f;相信大家点击进来已经有了初步的认识&#xff0c;这里就简单的进行介绍。 Git是一个开源的分布式版本控制系统&#xff0c;由Linus Torvalds创建&#xff0c;用于有效、高速地处理从小到大的项目版本管理。Git是目前世界上最流行…

消息队列 Kafka 架构组件及其特性

Kafka 人们通常有时会将 Kafka 中的 Topic 比作队列&#xff1b; 在 Kafka 中&#xff0c;数据是以主题&#xff08;Topic&#xff09;的形式组织的&#xff0c;每个 Topic 可以被分为多个分区&#xff08;Partition&#xff09;。每个 Partition 是一个有序的、不可变的消息…

《Mycat核心技术》第06章:Mycat问题处理总结

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 星球项目地址&#xff1a;https://binghe.gitcode.host/md/zsxq/introduce.html 沉淀&#xff0c…

【day11】面向对象编程进阶(继承)

概述 本文深入探讨面向对象编程的核心概念&#xff0c;包括继承、方法重写、this和super关键字的使用&#xff0c;以及抽象类和方法的定义与实现。通过本文的学习&#xff0c;你将能够&#xff1a; 理解继承的优势。掌握继承的使用方法。了解继承后成员变量和成员方法的访问特…

随手记:小程序兼容后台的wangEditor富文本配置链接

场景&#xff1a; 在后台配置wangEditor富文本&#xff0c;可以文字配置链接&#xff0c;图片配置链接&#xff0c;产生的json格式为&#xff1a; 例子&#xff1a; <h1><a href"https://uniapp.dcloud.net.cn/" target"_blank"><span sty…

6.8 Newman自动化运行Postman测试集

欢迎大家订阅【软件测试】 专栏&#xff0c;开启你的软件测试学习之旅&#xff01; 文章目录 1 安装Node.js2 安装Newman3 使用Newman运行Postman测试集3.1 导出Postman集合3.2 使用Newman运行集合3.3 Newman常用参数3.4 Newman报告格式 4 使用定时任务自动化执行脚本4.1 编写B…

工具环境 | 工具准备

搭建一套验证环境需要的工具如下&#xff1a; 虚拟机&#xff1a;推荐virtualbox ubuntu VM好用&#xff0c;但是免费的好像木有了&#xff0c;ubuntu界面版更加容易上手。 网上找安装教程即可&#xff0c;注意实现文件共享、复制粘贴等功能。 EDA&#xff1a;VCS Veridi 工…

计算机网络之王道考研读书笔记-2

第 2 章 物理层 2.1 通信基础 2.1.1 基本概念 1.数据、信号与码元 通信的目的是传输信息。数据是指传送信息的实体。信号则是数据的电气或电磁表现&#xff0c;是数据在传输过程中的存在形式。码元是数字通信中数字信号的计量单位&#xff0c;这个时长内的信号称为 k 进制码…

ROS2学习配套C++知识

第3章 订阅和发布——话题通信探索 3.3.1 发布速度控制海龟画圆 std::bind cstd::bind绑定成员函数时&#xff0c;需要加上作用域以及取址符号 因为不会将成员函数隐式的转换成指针&#xff0c;因此需要加&符号&#xff1b; 后面的第一个参数必须跟具体对象&#xff0c;c…

法规标准-C-NCAP评测标准解析(2024版)

文章目录 什么是C-NCAP&#xff1f;C-NCAP 评测标准C-NCAP评测维度三大维度的评测场景及对应分数评星标准 自动驾驶相关评测场景评测方法及评测标准AEB VRU——评测内容(测什么&#xff1f;)AEB VRU——评测方法(怎么测&#xff1f;)车辆直行与前方纵向行走的行人测试场景&…

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项任务书正式赛题

第十七届山东省职业院校技能大赛 中职组“网络安全”赛项任务书-A 目录 一、竞赛阶段 二、竞赛任务书内容 &#xff08;一&#xff09;拓扑图 &#xff08;二&#xff09;模块A 基础设施设置与安全加固(200分) &#xff08;三&#xff09;B模块安全事件响应/网络安全数据取证/…

mlr3机器学习AUC的置信区间提取

如果你在mlr3拿到机器学习的预测数据 ROC 过程原理探索 假设数据 df <- data.frame(Airis$Sepal.Length, groupsample(x c(0,1),size 150,replace T)) 分组为 0,1 # 变量A为连续性变量 library(pROC) roc_obj <- roc(df g r o u p , d f group, df group,dfA, le…

Halcon例程代码解读:安全环检测(附源码|图像下载链接)

安全环检测核心思路与代码详解 项目目标 本项目的目标是检测图像中的安全环位置和方向。通过形状匹配技术&#xff0c;从一张模型图像中提取安全环的特征&#xff0c;并在后续图像中识别多个实例&#xff0c;完成检测和方向标定。 实现思路 安全环检测分为以下核心步骤&…