Jenkins 使用教程:从入门到精通

news2025/2/11 15:49:45

在软件开发的复杂流程中,持续集成与持续交付(CI/CD)是提升开发效率和保障软件质量的核心实践。Jenkins 作为一款备受欢迎的开源自动化服务器,在 CI/CD 流程中发挥着举足轻重的作用。本文将深入、详细地介绍 Jenkins 的使用方法,帮助你迅速上手并熟练掌握其关键要点。

一、Jenkins 的安装

1. 环境准备

Jenkins 基于 Java 开发,因此安装前确保服务器已正确安装 Java 环境。通过在命令行输入java -version即可检查 Java 版本,若未安装或版本不符合要求,请先完成 Java 的安装与升级。

2. 下载安装包

根据服务器的操作系统类型,从 Jenkins 官方网站获取对应的安装包。以 Ubuntu 系统为例,可使用以下命令进行下载与安装:

 

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-get update

sudo apt-get install jenkins

关键要点:安装前务必确认 Java 环境无误,不同操作系统的安装命令和步骤存在差异,需严格按照官方文档进行操作,避免因环境和安装步骤错误导致后续问题。

二、Jenkins 的初始配置

1. 启动 Jenkins

完成安装后,在命令行输入sudo systemctl start jenkins即可启动服务。默认情况下,Jenkins 运行在http://localhost:8080 。若启动失败,需检查系统日志以排查端口冲突、权限不足等问题。

2. 解锁 Jenkins

首次访问 Jenkins 时,需要输入初始密码进行解锁。该密码存储在/var/lib/jenkins/secrets/initialAdminPassword文件中,通过以下命令可查看:

 

sudo cat /var/lib/jenkins/secrets/initialAdminPassword

请妥善保管此密码,避免泄露造成安全风险。

3. 安装插件

解锁后进入插件安装界面,建议优先选择 “安装推荐的插件”。这些插件涵盖了如 Git 插件、Maven 插件等常用功能,能够满足大多数项目的基本需求,为后续使用提供便利。若有特殊需求,也可在后续根据项目实际情况手动安装其他插件。

关键要点:妥善保存初始密码,防止密码丢失或泄露。插件安装可先以推荐插件为主,后续再根据实际需求灵活调整,以提高配置效率并满足项目要求。

三、创建第一个 Jenkins 任务并部署 Go 项目到 Windows 服务器

1. 新建任务

在 Jenkins 主界面,点击 “新建 Item”,为任务命名并选择 “Freestyle project”(自由风格项目),然后点击 “确定”。任务名称应简洁明了且能体现项目特征,方便后续管理与识别。

2. 配置任务

  • 源码管理:若项目托管在 Git 仓库,在此步骤配置仓库地址及相关凭证信息。例如,项目在 GitHub 上,需准确填入仓库 URL,并添加有效的 GitHub 凭证,确保 Jenkins 能够顺利拉取代码。若凭证错误或权限不足,将无法获取最新代码。
  • 构建触发器:构建触发器可选择定时构建,如 “*/5 * * * *” 表示每 5 分钟构建一次;也可配置为代码提交时自动触发构建。根据项目需求和团队协作模式选择合适的触发方式,以平衡资源利用和代码更新的及时性。
  • 构建环境:根据项目类型配置相应的环境变量。对于 Go 项目,需配置GOROOT、GOPATH等关键环境变量。假设 Go 安装目录为C:\Go,可在 “构建环境” 的 “环境变量” 中添加GOROOT=C:\Go,GOPATH=C:\Users\YourUsername\go(请根据实际情况修改)。环境变量配置错误可能导致依赖无法安装或项目无法正常构建。
  • 构建步骤
    • 添加 “Execute Windows batch command” 步骤,首先执行go get -v命令安装项目依赖,该命令会详细列出下载和安装的每一个依赖包,便于排查依赖问题。
    • 执行go build -o your_project_name.exe命令进行项目构建,your_project_name.exe为自定义的可执行文件名,可根据项目需求和规范进行命名。
    • 构建完成后,进行部署操作。若部署到同一服务器,使用move your_project_name.exe C:\Program Files\YourProject\命令将文件移动到指定运行目录;若部署到远程 Windows 服务器,可借助 PsExec、WinRM 等工具。以 PsExec 为例,假设远程服务器 IP 为192.168.1.100,共享目录为C$,用户名和密码分别为admin和password,则添加 “Execute Windows batch command” 步骤,输入psexec \\192.168.1.100 -u admin -p password copy your_project_name.exe C$\Program Files\YourProject\命令完成部署。

关键要点:任务配置的每一项都需精准无误,源码管理决定能否获取正确代码,环境变量影响构建过程,构建步骤直接关系到项目能否成功构建与部署。任何一个环节出错都可能导致任务失败,因此需仔细核对每一项配置。

四、构建与查看结果

配置完成后,点击任务界面的 “立即构建”,Jenkins 开始执行构建任务。构建完成后,在任务的 “控制台输出” 中可查看详细的构建日志,通过日志判断构建是否成功。若构建失败,需依据日志提示排查问题,如依赖缺失、语法错误、环境变量配置错误等。日志中会详细记录错误发生的位置和原因,是解决问题的关键线索。

关键要点:养成仔细查看构建日志的习惯,构建日志是排查问题的重要依据,通过分析日志能够快速定位和解决构建过程中出现的各种问题。

五、持续集成与持续交付(CI/CD)实践

通过 Jenkins 与 Docker、Kubernetes 等工具相结合,可实现完整的 CI/CD 流程。例如,构建成功后,自动将构建产物打包成 Docker 镜像,然后推送到镜像仓库,最后部署到 Kubernetes 集群中。这一过程涉及到多个工具的复杂配置与集成,需要深入学习相关知识,掌握各工具的工作原理和协同方式。

关键要点:实现 CI/CD 需全面掌握多种工具的协同工作,Jenkins 在其中扮演流程编排的核心角色。通过合理配置和使用这些工具,能够实现代码的快速迭代和高效交付,提升软件开发的整体效率和质量。

通过以上步骤,你已初步掌握 Jenkins 的使用方法以及如何利用它将 Go 项目部署到 Windows 服务器。在实际应用中,随着项目复杂度和需求的变化,不断探索 Jenkins 的更多高级功能,将为软件开发过程提供更强大的支持。

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

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

相关文章

从二叉树遍历深入理解BFS和DFS

1. 介绍 1.1 基础 BFS(Breadth-First Search,广度优先搜索)和 DFS(Depth-First Search,深度优先搜索)是两种常见的图和树的遍历算法。 BFS:从根节点(或起始节点)开始&am…

Kotlin协程详解——协程上下文

目录 一、上下文结构 get()获取元素 minusKey()删除元素 fold()元素遍历 plus()添加元素 CombinedContext Key 二、协程名称CoroutineName 三、上下文组合 四、协程作用域CoroutineScope 五、典型用例 协程的上下文,它包含用户定义的一些数据集合&#x…

手写一个C++ Android Binder服务及源码分析

手写一个C Android Binder服务及源码分析 前言一、 基于C语言编写Android Binder跨进程通信Demo总结及改进二、C语言编写自己的Binder服务Demo1. binder服务demo功能介绍2. binder服务demo代码结构图3. binder服务demo代码实现3.1 IHelloService.h代码实现3.2 BnHelloService.c…

Deep Dive into LLMs like ChatGPT - by Andrej Karpathy

https://www.youtube.com/watch?v7xTGNNLPyMIhttps://www.youtube.com/watch?v7xTGNNLPyMIDeep Dive into LLMs like ChatGPT - by Andrej Karpathy_哔哩哔哩_bilibilihttps://www.youtube.com/watch?v7xTGNNLPyMI转载自Andrej Karpathy Youtube ChannelThis is a general a…

react实例与总结(一)

目录 一、简单认识 1.1、特点 1.2、JSX语法规则 1.3、函数组件和类式组件 1.4、类组件三大属性state、props、refs 1.4.1、state 1.4.2、props 1.4.3、refs 1.5、事件处理 1.6、收集表单数据—非受控组件和受控组件 1.7、高阶函数—函数柯里化 1.8、生命周期—新旧…

51单片机(国信长天)矩阵键盘的基本操作

在CT107D单片机综合训练平台上,首先将J5处的跳帽接到1~2引脚,使按键S4~S19按键组成4X4的矩阵键盘。在扫描按键的过程中,发现有按键触发信号后(不做去抖动),待按键松开后,在数码管的第一位显示相应的数字:从左至右&…

STM32 RTC亚秒

rtc时钟功能实现:rtc模块在stm32内部,由电池或者主电源供电。如下图,需注意实现时仅需设置一次初始化。 1、stm32cubemx 代码生成界面设置,仅需开启时钟源和激活日历功能。 2、生成的代码,需要对时钟进行初始化,仅需…

【Linux】深入理解linux权限

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:Linux 目录 前言 一、权限是什么 二、用户和身份角色 三、文件属性 1. 文件属性表示 2. 文件类型 3. 文件的权限属性 四、修改文件的权限属性和角色 1. …

json格式,curl命令,及轻量化处理工具

一. JSON格式 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于一个子集的JavaScript编程语言,使用人类易于阅读的文本格式来存储和表示数据。尽管名字中有“JavaScript”,但JSON是语言无关的,几…

web直播弹幕抓取分析 signature

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言 最近遇到太多难点了卡了很久&am…

ABP框架9——自定义拦截器的实现与使用

一、AOP编程 AOP定义:面向切片编程,着重强调功能,将功能从业务逻辑分离出来。AOP使用场景:处理通用的、与业务逻辑无关的功能(如日志记录、性能监控、事务管理等)拦截器:拦截方法调用并添加额外的行为,比如…

CUDA 计算平台 CUDA 兼容性【笔记】

在 b 站看过的两个关于 CUDA 的技术分享,整理分享下对自己有用的课件。 20231130 2023第9期 聊一聊常见的AI计算平台库_哔哩哔哩_bilibili20230831 2023第6期 聊一聊CUDA兼容性_哔哩哔哩_bilibili 文章目录 CUDA 计算平台CUDA 函数库介绍英伟达三大护城河&#xff1…

最新消息 | 德思特荣获中国创新创业大赛暨广州科技创新创业大赛三等奖!

2024年12月30日,广州市科技局公开第十三届中国创新创业大赛(广东广州赛区)暨2024年广州科技创新创业大赛决赛成绩及拟获奖企业名单,德思特获得了智能与新能源汽车初创组【第六名】【三等奖】的好成绩! 关于德思特&…

ubuntu安装VMware报错/dev/vmmon加载失败

ubuntu安装VMware报错/dev/vmmon加载失败,解决步骤如下: step1:为vmmon和vmnet组件生成密钥对 openssl req -new -x509 -newkey rsa:2048 -keyout VMW.priv -outform DER -out VMW.der -nodes -days 36500 -subj "/CNVMware/"ste…

python的列表、元组、深拷贝、浅拷贝(四)

python的列表 一、序列1. 序列定义2. 序列数据类型包括3.特点:都支持下面的特性 二、 列表1. 列表的创建2. 列表的基本特性(1) 连接操作符喝重复操作符(2) 成员操作符(in , not in )(3) 索引(4) 切片练习(5) for循环 3. 列表的常用方法(1) 一…

2.10作业

思维导图 C C语言

【深度学习】多目标融合算法(四):多门混合专家网络MMOE(Multi-gate Mixture-of-Experts)

目录 一、引言 二、MMoE(Multi-gate Mixture-of-Experts,多门混合专家网络) 2.1 技术原理 2.2 技术优缺点 2.3 业务代码实践 2.3.1 业务场景与建模 2.3.2 模型代码实现 2.3.3 模型训练与推理测试 2.3.4 打印模型结构 三、总结 一、…

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决

RuoYi-Vue-Oracle的oracle driver驱动配置问题ojdbc8-12.2.0.1.jar的解决 1、报错情况 下载:https://gitcode.com/yangzongzhuan/RuoYi-Vue-Oracle 用idea打开,启动: 日志有报错: 点右侧m图标,maven有以下报误 &…

C# OpenCV机器视觉:对位贴合

在热闹非凡的手机维修街上,阿强开了一家小小的手机贴膜店。每天看着顾客们自己贴膜贴得歪歪扭扭,不是膜的边缘贴不整齐,就是里面充满了气泡,阿强心里就想:“要是我能有个自动贴膜的神器,那该多好啊&#xf…

Baumer工业相机堡盟相机的相机传感器芯片清洁指南

Baumer工业相机堡盟相机的相机传感器芯片清洁指南 Baumer工业相机1.Baumer工业相机传感器芯片清洁工具和清洁剂2.Baumer工业相机传感器芯片清洁步骤2.1、准备步骤2.2、清洁过程1.定位清洁工具2.清洁传感器3.使用吹风装置 Baumer工业相机传感器芯片清洁的优势设计与结…