1. Jenkins安装前准备1.1 系统要求检查在开始安装Jenkins之前我们需要确保系统满足最低配置要求。根据官方文档Jenkins的最低推荐配置如下内存256MB可用内存作为Docker容器运行建议1GB磁盘空间1GB可用空间作为Docker容器运行建议10GBJava环境Java 8JRE或JDK均可对于小型团队的生产环境建议配置内存1GB磁盘空间50GB注意如果计划将Jenkins作为Docker容器运行Java环境不是必须的因为官方镜像已经包含了所需的Java环境。1.2 Java环境安装Jenkins是基于Java开发的应用程序因此需要先安装Java环境。以下是各平台的Java安装方法Ubuntu/Debian系统sudo apt update sudo apt install openjdk-8-jdkCentOS/RHEL系统sudo yum install java-1.8.0-openjdk-devel验证Java安装java -version应该能看到类似以下的输出openjdk version 1.8.0_292 OpenJDK Runtime Environment (build 1.8.0_292-8u292-b10-0ubuntu1~20.04-b10) OpenJDK 64-Bit Server VM (build 25.292-b10, mixed mode)1.3 防火墙配置如果系统启用了防火墙需要开放Jenkins将使用的端口默认8080和50000Ubuntu/Debian(UFW)sudo ufw allow 8080 sudo ufw allow 50000 sudo ufw enableCentOS/RHEL(Firewalld)sudo firewall-cmd --permanent --add-port8080/tcp sudo firewall-cmd --permanent --add-port50000/tcp sudo firewall-cmd --reload2. Jenkins安装方法2.1 使用Docker安装推荐Docker是最简单、最干净的Jenkins安装方式特别适合快速部署和测试环境。安装Docker# Ubuntu/Debian sudo apt update sudo apt install docker.io sudo systemctl enable --now docker # CentOS/RHEL sudo yum install docker sudo systemctl enable --now docker运行Jenkins容器docker run -d \ --name jenkins \ -u root \ -p 8080:8080 \ -p 50000:50000 \ -v jenkins-data:/var/jenkins_home \ -v /var/run/docker.sock:/var/run/docker.sock \ jenkinsci/blueocean参数说明-d后台运行容器--name jenkins为容器命名-u root以root用户运行避免权限问题-p 8080:8080映射Web界面端口-p 50000:50000映射代理通信端口-v jenkins-data:/var/jenkins_home持久化Jenkins数据-v /var/run/docker.sock:/var/run/docker.sock允许Jenkins使用宿主机Docker2.2 使用系统包管理器安装Ubuntu/Debian系统wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c echo deb http://pkg.jenkins.io/debian-stable binary/ /etc/apt/sources.list.d/jenkins.list sudo apt update sudo apt install jenkinsCentOS/RHEL系统sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key sudo yum install jenkins启动Jenkins服务sudo systemctl enable jenkins sudo systemctl start jenkins2.3 使用WAR包安装对于需要最大灵活性的高级用户可以直接下载Jenkins的WAR包运行wget http://mirrors.jenkins.io/war-stable/latest/jenkins.war java -jar jenkins.war --httpPort8080这种方式适合临时测试或需要自定义Servlet容器的情况。3. 初始配置Jenkins3.1 解锁Jenkins安装完成后访问http://服务器IP:8080你会看到解锁页面。要获取初始管理员密码Docker安装docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword系统包安装sudo cat /var/lib/jenkins/secrets/initialAdminPassword将输出的密码粘贴到Web界面中点击Continue。3.2 安装推荐插件在Customize Jenkins页面选择Install suggested plugins安装推荐插件集。这包括Git插件用于从Git仓库拉取代码Pipeline支持Jenkins PipelineBlue Ocean提供现代化的用户界面Credentials管理各种凭证SSH Agent通过SSH连接远程服务器插件安装过程可能需要几分钟时间取决于网络速度。3.3 创建管理员账户插件安装完成后系统会提示创建第一个管理员用户。建议使用真实的邮箱地址设置强密码至少12位包含大小写字母、数字和特殊字符记录好凭据避免丢失专业建议即使只有一个人使用Jenkins也不要使用默认的admin账户而是创建具有管理员权限的命名账户便于审计。4. Jenkins基本配置4.1 系统设置进入Manage Jenkins Configure System系统消息可以设置显示在所有页面的通知信息执行者数量根据服务器CPU核心数设置通常为核心数的1-2倍Jenkins URL确保与实际的访问地址一致邮件通知配置SMTP服务器用于发送构建通知4.2 全局工具配置进入Manage Jenkins Global Tool ConfigurationJDK安装可以自动安装或指定现有JDK路径建议至少配置一个Java 8环境Git安装如果系统已安装Git指定可执行文件路径或选择自动安装Maven安装配置Maven用于Java项目构建建议安装3.6.x或更高版本Docker安装如果需要在Pipeline中使用Docker确保正确配置4.3 安全设置进入Manage Jenkins Configure Global Security安全域默认使用Jenkins专有用户数据库授权策略小型团队建议Matrix-based security企业环境考虑与LDAP/AD集成CSRF保护保持启用状态Agent协议默认启用JNLP-4协议5. 常见问题解决5.1 无法访问Jenkins页面可能原因防火墙未开放8080端口Jenkins服务未正常运行代理或网络配置问题解决方法# 检查服务状态 sudo systemctl status jenkins # 系统包安装 docker ps -a | grep jenkins # Docker安装 # 检查端口监听 sudo netstat -tulnp | grep 80805.2 插件安装失败可能原因网络连接问题镜像源不可用磁盘空间不足解决方法更换更新中心镜像进入Manage Jenkins Manage Plugins Advanced将Update Site URL改为https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json手动安装插件从 https://plugins.jenkins.io/ 下载.hpi文件在Advanced标签页上传安装5.3 构建队列堵塞可能原因执行者数量不足长时间运行的构建占用资源节点离线解决方法增加执行者数量系统设置中检查构建历史优化长时间任务添加更多构建节点Manage Nodes6. 生产环境最佳实践6.1 备份策略定期备份Jenkins配置# 备份整个JENKINS_HOME目录 tar -czvf jenkins-backup-$(date %Y%m%d).tar.gz /var/lib/jenkins # 使用thinBackup插件设置自动备份6.2 性能优化JVM参数调整编辑/etc/default/jenkins(Debian/Ubuntu) 或/etc/sysconfig/jenkins(RHEL/CentOS)修改JAVA_OPTS例如JAVA_OPTS-Xms1g -Xmx2g -XX:MaxPermSize512m -Djava.awt.headlesstrue定期清理构建历史使用Discard Old Build插件自动清理旧构建或设置作业的构建保留策略6.3 高可用配置对于关键业务环境考虑以下高可用方案主从架构设置多个构建节点分担负载定期快照对Jenkins服务器进行VM/容器快照配置即代码使用JCasC (Jenkins Configuration as Code) 插件管理配置7. 插件推荐以下是一些提高生产力的必备插件Blue Ocean现代化UI可视化PipelinePipeline支持声明式和脚本式PipelineGit Parameter添加Git分支参数Docker集成Docker构建和部署Role-based Authorization细粒度的权限控制Build Monitor View构建状态监控视图Warnings Next Generation静态代码分析结果可视化安装方法进入Manage Jenkins Manage Plugins Available搜索并安装所需插件。
企业数字化 ERP 产品动态
相关推荐
移动端自动化测试坐标校准技术详解 1. 手机端坐标校准的核心挑战与解决思路在移动端测试领域,坐标校准是自动化测试脚本稳定运行的基础保障。不同于PC端相对固定的显示环境,移动设备存在三大核心变量:动态分辨率、异形屏适配和操作系统差异。以2023年主流Android机型为例&#… · 2026/11/5 21:57:07
Agent计算架构实战:从状态管理到高并发与安全设计 2026年聊“AI计算架构”,没人再绕开Agent这个话题。相比过去单次问答式的自然语言应用,现在的Agent系统已经带上了规划、记忆、工具调用、多轮长任务执行,甚至多个Agent互相协作,整个计算模型从“一次请求一次响应”变成了“一个任… · 2026/11/5 9:34:49
G.652.D与G.654.E光纤技术对比与应用解析 1. 光纤类型概述:G.652.D与G.654.E的技术定位在光通信领域,G.652.D和G.654.E是两种广泛使用的单模光纤标准,它们的设计目标和技术特性存在显著差异。G.652.D属于常规单模光纤(SSMF,Standard Single-Mode Fiber… · 2026/11/5 3:24:54
EasyU优启通PE维护盘实战指南:制作、启动与核心操作全解析 1. 为什么一个PE维护盘值得单独拿出来聊装系统、修引导、救数据、清病毒,这些活儿但凡干过几次的人都知道,真正决定效率的往往不是你手速多快,而是手边那套PE环境靠不靠谱。EasyU(圈内习惯叫优启通)就是在这个场景下被… · 2026/11/5 16:49:35
Rust原来很简单二:所有权系统 Part 2 核心篇 —— 所有权系统
本篇覆盖 第 6 ~ 10 章:所有权、借用与引用、生命周期、字符串与切片、内存模型。 ⚠️ 这是全书最重要的一篇。 把它吃透,Rust 从此“很简单”;跳过它,你会处处碰壁。请慢下来,动手敲每一段代码。 第 6 章 所有权:Rust 的第一性原理
6… · 2026/11/5 16:26:08
基于Hadoop+Spark的民宿智能推荐系统设计与实现 1. 项目概述:大数据时代的民宿智能推荐这个毕业设计项目融合了当前大数据领域最主流的技术栈,构建了一个完整的民宿推荐系统解决方案。作为一名长期从事大数据系统开发的工程师,我认为这个选题非常贴合实际应用场景——随着旅游业的复苏和共享… · 2026/11/5 14:59:25
ADS122U04IPWR+STM32F427ZI工业级温度测量信号链设计 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配RS485,解决远距离温度监控难题 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
UART接口24位ADC搭配PIC18F46K22的RTD与热电偶测温实践 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 14:10:41
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07
多智能体协作系统架构设计与实践优化 1. 多智能体协作系统的时代背景2017年Transformer架构的诞生彻底改变了人工智能的发展轨迹。当行业还沉浸在单一大模型带来的性能突破时,Anthropic的研究团队已经将目光投向了更前沿的领域——如何让多个智能体通过协作产生超越单体能力的系统智能。这就像交响乐团中… · 2026/11/5 0:00:39
大模型系统性入门实战指南:从原理到部署微调的全链路路线 提到大模型的系统性入门,我先说个结论:这事真不难,难的是资料太散、路线太多,今天这个框架明天那个工具,新人很容易在“收藏夹吃灰”和“教程看到一半放弃”之间反复横跳。市面上关于大模型的内容少说有几十万篇&#… · 2026/11/5 0:00:39
鸿蒙文件系统沙箱机制解析与开发实践 1. 鸿蒙文件系统沙箱机制深度解析作为一名从Android转向鸿蒙开发的工程师,我深刻体会到文件系统访问是迁移过程中最先遇到的"拦路虎"。在Android上运行良好的文件读写代码,在鸿蒙真机环境却频频出现文件写入后神秘消失或直接抛出权限拒绝错误的… · 2026/11/5 0:00:39
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:27:59
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:03
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/5 10:28:07