linux 安装 Jenkins 教程
前言
Jenkins 是一个开源的自动化服务器,广泛用于持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域。它帮助开发者自动化软件构建、测试、部署等过程,从而提高开发效率、减少人为错误,并且保证代码质量。
1. Jenkins 的主要功能
持续集成:自动化地将代码合并到主分支,并执行自动化构建和测试。
自动化构建:从代码提交到生成构建产物(如可执行文件、Docker 镜像等),可以配置 Jenkins 自动化构建过程。
自动化测试:集成自动化单元测试、集成测试等,确保代码质量。
持续交付和部署:支持将构建产物自动部署到测试环境、生产环境或其他服务器。
插件扩展性:Jenkins 提供了大量的插件支持,可以与其他工具(如 Git、Maven、Docker、Kubernetes 等)无缝集成,满足不同需求。
2. Jenkins 的核心组件
Jenkins 主机(Master):负责调度任务、分发任务并管理工作流。
Jenkins 从机(Agent):也称为“构建节点”,执行由主机调度的构建任务。可以分布在不同的机器上进行并行构建。
3. Jenkins 构建流程
创建和配置 Job:在 Jenkins 中,一个 Job 表示一个构建过程,可以通过图形界面或配置文件定义。
触发构建:可以手动触发,也可以根据 Git 提交、定时任务、或者其他触发条件自动启动构建。
执行构建和测试:Jenkins 会在构建节点上执行任务,通常会包含代码编译、单元测试、集成测试等步骤。
报告与反馈:构建完成后,Jenkins 会提供构建报告,包括构建是否成功、测试结果、日志等信息。
4. Jenkins 常见的插件
Git Plugin:支持与 Git 仓库的集成,自动拉取最新代码并执行构建。
Maven Plugin:集成 Apache Maven 构建工具,自动化执行构建任务。
Docker Plugin:与 Docker 集成,支持构建 Docker 镜像、运行容器等操作。
Pipeline Plugin:支持通过声明式或脚本化的方式定义复杂的 CI/CD 流水线。
5. Jenkins Pipeline
Jenkins Pipeline 是一种基于代码的自动化工具,用于定义持续集成和持续交付流程。Jenkins Pipeline 允许用户通过 Jenkinsfile 来定义一系列构建步骤,这些步骤可以是自动化构建、测试、部署等。
Pipeline 分为两种类型:
Declarative Pipeline:声明式流水线,简洁易懂,适用于大多数场景。
Scripted Pipeline:脚本式流水线,提供更灵活和可定制的功能,但需要更高的脚本编写能力。
6. Jenkins 优势
易于安装和配置:Jenkins 提供了简单的图形化界面和大量插件,支持快速配置和安装。
强大的插件支持:通过插件可以将 Jenkins 与各种工具和服务集成,适应不同的开发环境。
社区活跃:Jenkins 拥有一个庞大的开源社区,提供了大量的文档、教程、插件和支持。
分布式构建:可以将 Jenkins 安装在不同的机器上进行分布式构建,提升性能和可扩展性。
7. Jenkins 的挑战
配置复杂性:随着项目规模的增大,Jenkins 配置和维护可能变得复杂。
性能瓶颈:在大型项目中,Jenkins 可能面临性能瓶颈,尤其是构建并行性和资源管理。
安全性问题:由于 Jenkins 是一个面向开发的工具,存在一定的安全隐患,需要注意访问控制和权限管理。
总结
Jenkins 是一款功能强大的自动化服务器,广泛应用于软件开发中的持续集成和持续交付。通过 Jenkins,开发团队可以更快、更可靠地交付软件,并且能够自动化地执行构建、测试和部署任务。虽然它存在一些配置和性能上的挑战,但凭借强大的插件生态和灵活的定制能力,Jenkins 仍然是 DevOps 流程中不可或缺的工具之一。
开始安装
官网:詹金斯
Jenkins War 软件包:War Jenkins 软件包
运行 Jenkins 系统Java 支持策略:Java 支持策略
Jenkins入门指南:开始使用 Jenkins
一 、第一步需要安装 jdk 查看Java 支持策略 选择与Jenkins所匹配的 jdk版本。
参考我以前的文档安装jdk:linux CentOS系统安装jdk教程_centos下载jdk-CSDN博客
二、下载Jenkins War 软件包 注意要与jdk版本匹配。
我的jdk版本是21 所以下载了jenkins.war 2.426 的版本。
wget https://sg.mirror.servanamanaged.com/jenkins/war/2.426/jenkins.war
安装成功之后就可以直接用 java -jar
命令启动起来,可以通过 httpPort
来指定端口号
java -jar jenkins.war --httpPort=8080
然后去游览器上访问:ip地址加端口号 比如我的是 http://192.168.153.200:8080/
将 密码 复制到对应的地方,点击 继续。
这里建议点击 选择插件来安装,在点击 无 ,不安装任何插件,再点击 安装。
进入到创建管理员页面,填写账户信息后,保存并完成。
进入以下页面配置 jenkins 的 URL,一般使用默认的就行了,保存并完成。
初始化安装完成。
开始使用 jenkins 吧。
将 Jenkins 添加 systemd 服务
1、创建 systemd 服务单元文件
sudo vim /etc/systemd/system/jenkins.service
2、在文件中输入以下内容:
[Unit]
Description=Jenkins Automation Server
After=network.target[Service]
User=root
Group=root
ExecStart=/usr/bin/java -jar /root/gao/jenkins/jenkins.war --httpPort=8080
Restart=always
Environment="JENKINS_HOME=/var/lib/jenkins"[Install]
WantedBy=multi-user.target
:wq 保存退出。
3、 重新加载 systemd 配置
sudo systemctl daemon-reload
4、使用 systemd管理 systemd服务命令
#启动 Jenkins 服务
sudo systemctl start jenkins
#设置 Jenkins 在系统启动时自动启动
sudo systemctl enable jenkins
#检查 Jenkins 服务状态
sudo systemctl status jenkins
#查看 Jenkins 日志
sudo journalctl -u jenkins
#停止服务:
sudo systemctl stop jenkins
#重启服务:
sudo systemctl restart jenkins
5、以下状态是启动成功。
6、服务需要重新加载 以下情况属于正常,耐心等待一会儿就行。
运维
如果使用systemd服务无法启动jenkins 服务。
1、查看端口是否被占用
netstat -tuln | grep 8080
#或者
ss -tuln | grep 8080
2、如果端口被占用,你可以查找占用该端口的进程 ID (PID)。执行以下命令
lsof -i :8080
3、停止占用端口的进程
kill -9 12345
4、重新启动 Jenkins
sudo systemctl start jenkins
如何更改端口号:
1、编辑启动文件
sudo vim /etc/systemd/system/jenkins.service
2、修改访问端口
3、重新加载 systemd 配置
sudo systemctl daemon-reload
4、重启systemd服务
sudo systemctl restart jenkins
5、如果服务启动成功,但是浏览器无法访问,检查防火墙状态。
sudo firewall-cmd --state
打开 8083 端口访问端口
sudo firewall-cmd --zone=public --add-port=8083/tcp --permanent
sudo firewall-cmd --reload
就可以访问拉。
相关文章:
linux 安装 Jenkins 教程
前言 Jenkins 是一个开源的自动化服务器,广泛用于持续集成(Continuous Integration,CI)和持续交付(Continuous Delivery,CD)领域。它帮助开发者自动化软件构建、测试、部署等过程,从…...
Vue3 使用 render 渲染函数透传组件
背景 我们透传组件的时候可能会用 slot,本文讲述的是另一种方式 props render 函数方式。当然具体的看业务场景。 实现 父组件 <AComp customComponent: () > {return h(UserAuthorization) }> </AComp>子孙组件 // 定义 render 组件ÿ…...
MongoDB 分片
MongoDB 分片 MongoDB 分片是一种数据库架构,用于将大量数据分布存储在多个服务器上。这种设计允许数据库扩展,以处理大量数据和高吞吐量操作。分片通过将数据集分割成小块,称为分片,并将这些分片分布到多个服务器上来工作。每个…...
Chrome webdriver下载-避坑
WebDriver以原生的方式驱动浏览器,不需要调整环境变量。 一、window版 1.chrome和chromedriver下载地址: Chrome for Testing availability 我下载的是如下两个安装包,解压即可。 2.导包 pip install selenium然后用python代码引用即可…...
【MFC】如何读取rtf文件并进行展示
tf是微软的一个带格式的文件,比word简单,我们可以用写字板等程序打开编辑。下面以具体实例讲解如何在自己程序中展示rtf文件。 首先使用VS2022创建一个MFC的工程。 VIEW类需要选择richview类,用于展示,如下图: 运行效…...
基于wifipumpkin3的AP伪造
一、软硬件需求 利用wifipumpkin-3进行AP伪造需要kali系统,还需要一张支持在kali的环境下能够支持AP伪造的无线网卡,如果是针对特定的无线网的话,再来第二张网卡的话更好用来转发流量更好。对于wifipumpkin-3的安装使用可以分为两种方式&…...
docker xxxx is using its referenced image ea06665f255d
Error response from daemon: conflict: unable to remove repository reference “registrxxxxxx” (must force) - container 9642fd1fd4a0 is using its referenced image ea06665f255d 这个错误表明你尝试删除的镜像正在被一个容器使用,因此无法删除。要解决这…...
svm支持向量机
支持向量机(SVM) 1. SVM 的核心思想 支持向量机(Support Vector Machine, SVM)是一种监督学习算法,用于分类和回归任务。其目标是找到一个超平面,将数据点分为不同类别,同时 最大化分类间隔&a…...
MySQL数据类型
MySQL数据库中的常用数据类型 数值型: ①整型 ②小数类型 定点型 浮点型 字符型: ①短的文本:char varchar ②长的文本:text blob(二进制) 日期型 ①数值型 整数应该知道的知识点 ①设置无符号和有符号 create table t_int( t1 int; #②默认有符…...
【深度学习】热力图绘制
热力图(Heatmap)是一种数据可视化方法,通过颜色来表示数据矩阵中的数值大小,以便更直观地展示数据的分布和模式。热力图在许多领域中都有应用,尤其在统计分析、机器学习、数据挖掘等领域,能够帮助我们快速识…...
高效Python开发工具PyCharm v2024.3全新发布,进一步提升编码体验!
JetBrains PyCharm是一种Python IDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具。此外,该IDE提供了一些高级功能,以用于Django框架下的专业Web开发。 立即获取PyCharm v2024.3正式版 Python 针对dataclass_transfor…...
Ubuntu 安装 Samba Server
在 Mac 上如何能够与Ubuntu 服务器共享文件夹,需要在 Ubuntu 上安装 Samba 文件服务器。本文将介绍如何在 Ubuntu 上安装 Samba 服务器从而达到以下目的: Mac 与 Ubuntu 共享文件通过用户名密码访问 安装 Samba 服务 sudo apt install samba修改配置文…...
WPF 实现 鼠标点击 取消 TextBox 光标
WPF 实现 鼠标点击 取消 TextBox 光标 原始需求:TextBox 控件光标取消后运行特定功能函数 所遇问题:若无相关事件,则除了点击其他控件等方式外,无法准确取消光标 解决思路:通过捕获 TextBox 控件外鼠标点击或鼠标移…...
cron服务执行定时任务
参考链接 cron表达式在线解析:quartz/Cron/Crontab表达式在线生成工具-BeJSON.com 定时任务运行时报错解决方法 运行脚本报 权限不够问题: 可以在脚本文件夹下直接执行 如下指令运行RequestAPI.sh 脚本 ./RequestAPI.sh 如果出现权限不够问…...
Go 语言与时间拳击理论下的结对编程:开启高效研发编程之旅
一、引言 结对编程作为一种软件开发方法,在提高代码质量、增强团队协作等方面具有显著优势。而时间拳击理论为结对编程带来了新的思考角度。本文将以 Go 语言为中心,深入探讨时间拳击理论下的结对编程。 在当今软件开发领域,高效的开发方法和…...
【收藏】Cesium 限制相机倾斜角(pitch)滑动范围
1.效果 2.思路 在项目开发的时候,有一个需求是限制相机倾斜角,也就是鼠标中键调整视图俯角时,不能过大,一般 pitch 角度范围在 0 至 -90之间,-90刚好为正俯视。 在网上查阅了很多资料,发现并没有一个合适的…...
PostgreSQL的学习心得和知识总结(一百六十四)|深入理解PostgreSQL数据库之在 libpq 中支持负载平衡
目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《PostgreSQL数据库内核分析》 2、参考书籍:《数据库事务处理的艺术:事务管理与并发控制》 3、PostgreSQL数据库仓库…...
TÜLU 3: Pushing Frontiers inOpen Language Model Post-Training
模型:https://huggingface.co/allenai 技术报告:https://allenai.org/papers/tulu-3-report.pdf 数据集:https://huggingface.co/collections/allenai/tulu-3-datasets-673b8df14442393f7213f372 GitHub:https://github.com/al…...
Pytest-Bdd-Playwright 系列教程(14):Docstring 参数
Pytest-Bdd-Playwright 系列教程(14):Docstring 参数 前言一、什么是docstring?二、基本语法三、主要特点四、实际例子五、注意事项六、使用建议总结 前言 在自动化测试的过程中,我们经常需要处理复杂的测试数据或需要输入多行文…...
Docker部署WebRTC-Streamer
文章目录 WebRTC-Streamer概述Docker部署WebRTC-StreamerVue使用WebRTC-Streamer一些问题 WebRTC-Streamer概述 WebRTC-Streamer是一个基于WebRTC技术的流媒体传输工具,它可以通过Web浏览器实现实时音视频流的传输和播放。它提供了一种简单而强大的方式ÿ…...
linux-16 关于shell(十五)date,clock,hwclock,man,时间管理,命令帮助
想显示一下当前系统上的时间该怎么显示?有一个命令叫做date,来看date命令,如下图, 第一个星期几对吧?然后是月日小时分钟秒,最后一个是年对吧?CST指的是它的时间格式,我这个可以先姑…...
厦门凯酷全科技有限公司深耕抖音电商运营
在数字经济飞速发展的今天,抖音电商平台以其独特的社交属性和庞大的用户基础,迅速成为众多品牌和商家的新战场。在这个充满机遇与挑战的市场中,厦门凯酷全科技有限公司凭借其专业的服务、创新的理念和卓越的执行力,成为了抖音电商…...
C++多线程实战:掌握图像处理高级技巧
文章结尾有最新热度的文章,感兴趣的可以去看看。 本文是经过严格查阅相关权威文献和资料,形成的专业的可靠的内容。全文数据都有据可依,可回溯。特别申明:数据和资料已获得授权。本文内容,不涉及任何偏颇观点,用中立态度客观事实描述事情本身 导读 在当今的计算世界中,…...
CityEngine实践——常用cga文件解析系列(2)
上回书说到了: 3、RULES/COMPONENTS/MASSING/SUBURBAN_BLOCK DETACHED_HOUSES.CGA ROWHOUSES.CGA SEMI_DETACHED_HOUSES.CGA 4、RULES/COMPONENTS/MASSING/URBAN_BLOCK MONOBLOCK.CGA PERIMETER_8_SHAPE.CGA PERIMETER_MULTIPART.CGA 这个cga挺有意思,…...
【人工智能】因果推断与数据分析:用Python探索数据间的因果关系
解锁Python编程的无限可能:《奇妙的Python》带你漫游代码世界 因果推断是数据科学领域的一个重要方向,旨在发现变量间的因果关系,而不仅仅是相关性。本篇文章将从因果推断的理论基础出发,介绍因果关系的定义与建模方法,涵盖因果图(Causal Graph)、d-分离、反事实估计等…...
depth wisepoint wise
文章目录 1. Description2. code 1. Description point wise 1. function: for the separated pixel without pixel confusion 2. kernel size : 3x3 ,star matrix [[0,0,0],[0,1,0],[0,0,0]] depth wise 1. fuction: for the separated channel without channel confusion 2.…...
AI大模型学习笔记|神经网络与注意力机制(逐行解读)
来源分享链接:通过网盘分享的文件:详解神经网络是如何训练的 链接: https://pan.baidu.com/s/12EF7y0vJfH5x6X-0QEVezg 提取码: k924 内容摘要:本文深入探讨了神经网络与注意力机制的基础,以及神经网络参数训练的过程。以鸢尾花数…...
2025软考中级《数据库系统工程师》案例模拟题合集
1.【说明】某销售企业正在实施电商平台项目,主要功能模块包括用户中心、商品中心、交易中心、支付中心、营销中心等。其中支付中心模块包括了一个账户表:Account (ano, aname, balance),其中属性含义分别为:账户号,账户…...
12.10深度学习_经典神经网络_GoogleNet自我理解
为了更清晰地展示 GoogLeNet 中每个卷积层及其相关参数,我们可以将这些信息整理成表格形式。这不仅有助于理解每一层的输入和输出尺寸,还能直观地看到卷积核的数量、大小、步长以及填充方式等关键参数。以下是 GoogLeNet 前几层(包括两个卷积…...
CTFshow-命令执行(Web58-77)
CTFshow-命令执行(Web58-77) Web58 <?php if(isset($_POST[c])){$c $_POST[c];eval($c); }else{highlight_file(__FILE__); }Warning: system() has been disabled for security reasons in /var/www/html/index.php(17) : eval()d code on line 1 本题对于passthru&…...
android全局拖拽效果实现startDragAndDrop
有多种方式实现全角拖拽,我们基于系统标准的api startDragAndDrop 来做介绍 实现步骤: 一、应用的的拖拽 1.1 通过长按触发 holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {Overridepublic boolean onLongClick(View v) {C…...
MySQL之索引与事务
一、索引 索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的数据结构实现。 索引主要的目的是为了加快查找速度 作用 1、数据库中的表、数据、索引之间的关系&am…...
【OpenCV】基于分水岭算法的图像分割
介绍 分水岭算法(Watershed Algorithm)是一种基于形态学的图像分割方法,它模仿了地理学中的分水岭概念。在图像处理中,分水岭算法通过模拟水流从山顶流向谷底的过程来分割图像,其中局部极小值点被视为“山谷”&#x…...
深度学习:CPU和GPU算力
一、算力 “算力”(Computing Power)通常是指计算机或计算系统执行计算任务的能力。它是衡量系统处理数据、运行算法以及执行计算任务效率的重要指标。根据上下文,算力可以在以下几种场景中具体化: 1. 单机算力 CPU算力&#x…...
android studio 模拟器不能联网?
模拟器路径: C:\Users\Administrator\AppData\Local\Android\Sdk\emulator\emulator.exe.关闭所有AVD设备实例 导航至: C:\Users\userName\AppData\Local\Android\Sdk\emulator查看模拟器名称 AdministratorDESKTOP-6JB1OGC MINGW64 ~/AppData/Local/…...
php.ini 文件上传/执行时间/部分配置新手教程
1、上传文件大小配置 一般需要同时配置“upload_max_filesize”、“post_max_size”,配置格式如下: file_uploads On ;是否允许HTTP文件上传 upload_max_filesize 2M ;设置单个文件上传的最大尺寸 post_max_size 8M ;设置 POST 请求体的最大尺寸&am…...
大模型Qwen面试内容整理-应用场景与案例分析
Qwen模型凭借其强大的自然语言理解和生成能力,在多个实际应用场景中得到了广泛应用。以下是Qwen模型的主要应用场景及一些典型的案例分析,展示了它如何解决具体问题和带来实际价值。 智能对话系统 ● 应用场景 ○ 客服机器人:Qwen被用于开发智能客服机器人,能够理解客户的问…...
网易游戏分享游戏场景中MongoDB运行和分析实践
在游戏行业中,数据库的稳定和性能直接影响了游戏质量和用户满意度。在竞争激烈的游戏市场中,一个优秀的数据库产品无疑能为游戏的开发和后期的运营奠定良好的基础。伴随着MongoDB在不同类型游戏场景中的应用越来越广泛,许多知名的游戏公司都在…...
子查询与嵌套查询
title: 子查询与嵌套查询 date: 2024/12/13 updated: 2024/12/13 author: cmdragon excerpt: 子查询和嵌套查询是关系型数据库中强大的查询工具,允许用户在一个查询的结果中再进行查询。通过使用子查询,用户能够简化复杂的SQL语句,增强查询的灵活性和可读性。本节将探讨子…...
智星云技术文档:GPU测速教程
安装gpu burn git clone https://github.com/wilicc/gpu-burn cd gpu-burn/ make测试 ./gpu_burn 60100.0% procd: 14280 (7373 Gflop/s) - 13390 (6997 Gflop/s) - 15912 (7110 Gflop/s) - 13184 (7055 Gflop/s) - 13464 (7369 Gflop/s) - 13974 (7351 Gflop/s) - 16626 (7…...
(二)多智能体强化学习
目录 前言 一、多智能体强化学习的概念 二、多智能体面临的问题 三、现有算法简介 总结 前言 基于上一篇文章对于强化学习基础概念的介绍,本篇文章针对多智能体强化学习进行介绍和总结,帮助大家了解多智能体的基本概念以及算法,方便大家…...
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg
Unity屏幕截图、区域截图、读取图片、WebGL长截屏并下载到本地jpg 一、全屏截图并保存到StreamingAssets路径下 Texture2D screenShot;//保存截取的纹理public Image image; //显示截屏的Imagepublic void Jietu(){StartCoroutine(ScrrenCapture(new Rect(0, 0, Screen.width…...
linux中给某个文件切换成www用户
要将某个文件的拥有者切换为 www 用户(通常是用于 Web 服务的用户),你可以使用 chown 命令来更改文件的所有者和所属组。以下是相关步骤: ### 1. 确认 www 用户存在 首先确认 www 用户已经存在。可以使用以下命令检查:…...
运维实战:K8s 上的 Doris 高可用集群最佳实践
今天我们将深入探讨::如何在 K8s 集群上部署 Compute storage coupled(存算耦合) 模式的 Doris 高可用集群? 本文,我将为您提供一份全面的实战指南,逐步引导您完成以下关键任务: 配…...
家庭网络防御系统搭建-将EDR系统的sysmon和Windows event log集成到security onion
在前面的文章中安装了sysmon,这里,安装了securityonion,这里,本文讲述如何将sysmon以及Windows生成的event log发送到siem security onion之中,供后续的分析,威胁狩猎之用。 通常日志集成的步骤分为如下几步࿱…...
Ubuntu boot-repair安装过程
本教程只是在UBuntu系统无法引导才使用的方法,有可能需要提前使用U盘刻录UBuntu镜像去引导。 假如winUBuntu双系统,找不到紫色的UBuntu界面了,请参考:windows10ubuntu双系统开机引导界面不见的解决办法_双系统不出现引导界面-CSD…...
图计算之科普:BSP计算模型、Pregel计算模型、
一、BSP计算模型 BSP计算模型,即整体同步并行计算模型(Bulk Synchronous Parallel Computing Model),又名大同步模型或BSP模型,是由哈佛大学L.G. Valiant教授(2010年图灵奖得主)在1992年提出的…...
Kafka Stream实战教程
Kafka Stream实战教程 1. Kafka Streams 基础入门 1.1 什么是 Kafka Streams Kafka Streams 是 Kafka 生态中用于 处理实时流数据 的一款轻量级流处理库。它利用 Kafka 作为数据来源和数据输出,可以让开发者轻松地对实时数据进行处理,比如计数、聚合、…...
数据仓库-基于角色的权限管理(RBAC)
什么是基于角色的用户管理? 基于角色的用户管理(Role-Based Access Control,简称RBAC)是通过为角色赋予权限,用户通过成为适当的角色而得到这些角色的权限。 角色是一组权限的抽象。 使用RBAC可以极大简化对权限的管理。 什么是RBAC模型&…...
如何使用ERC404协议
ERC404 ERC404协议的性质 ERC404不是一个开发代码工具包,而是一种智能合约标准规范。它就像是一份蓝图或者规则手册,规定了在以太坊区块链上开发特定智能合约应该遵循的接口、函数和事件等规则。如何使用ERC404协议 定义合约接口 首先,在开发智能合约时,要根据ERC404标准定…...