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

在软件开发的复杂流程中,持续集成与持续交付(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.mzph.cn/pingmian/69456.shtml

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

相关文章

通过k8s请求selfsubjectrulesreviews查询权限

当前是通过kubelet进行查询 curl --cacert /etc/kubernetes/pki/ca.crt \ --cert /var/lib/kubelet/pki/kubelet-client-current.pem \ --key /var/lib/kubelet/pki/kubelet-client-current.pem \ -d - \ -H "Content-Type: application/json" \ -H Accept: applicat…

C语言基础系列【3】VSCode使用

前面我们提到过VSCode有多么的好用,本文主要介绍如何使用VSCode编译运行C语言代码。 安装 首先去官网(https://code.visualstudio.com/)下载安装包,点击Download for Windows 获取安装包后,一路点击Next就可以。 配…

windows安装WSL完整指南

本文首先介绍WSL,然后一步一步安装WSL及Ubuntu系统,最后讲解如何在两个系统之间访问和共享文件信息。通过学习该完整指南,能帮助你快速安装WSL,解决安装和使用过程中的常见问题。 理解WSL(Windows Subsystem for Linux…

doris:MySQL 兼容性

Doris 高度兼容 MySQL 语法,支持标准 SQL。但是 Doris 与 MySQL 还是有很多不同的地方,下面给出了它们的差异点介绍。 数据类型​ 数字类型​ 类型MySQLDorisBoolean- 支持 - 范围:0 代表 false,1 代表 true- 支持 - 关键字&am…

【LeetCode 刷题】贪心算法(4)-区间问题

此博客为《代码随想录》贪心算法章节的学习笔记,主要内容为贪心算法区间问题的相关题目解析。 文章目录 55. 跳跃游戏45. 跳跃游戏 II452. 用最少数量的箭引爆气球435. 无重叠区间763. 划分字母区间56. 合并区间 55. 跳跃游戏 题目链接 class Solution:def canJu…

苹果公司宣布正式开源 Xcode 引擎 Swift Build145

2025 年 2 月 1 日,苹果公司宣布正式开源 Xcode 引擎 Swift Build145。 Swift 是苹果公司于 2014 年推出的一种开源编程语言,用于开发 iOS、iPadOS、macOS、watchOS 和 tvOS 等平台的应用程序。 发展历程 诞生:2014 年,苹果在全球…

PID 算法简介(C语言)

一、简介: PID是比例、积分、微分三个环节的组合,用来进行反馈控制。每个部分都有对应的系数,也就是Kp、Ki、Kd。PID 算法实现这三个部分的计算,然后综合起来得到控制输出。 二、PID控制器结构体: PID控制器结构体:包含PID参数(Kp, Ki, Kd);存储积分项和上一次误差;…

123,【7】 buuctf web [极客大挑战 2019]Secret File

进入靶场 太熟悉了,有种回家的感觉 查看源代码,发现一个紫色文件 点下看看 点secret 信息被隐藏了 要么源代码,要么抓包 源代码没有,抓包 自己点击时只能看到1和3处的文件,点击1后直接跳转3,根本不出…

HTTP协议学习大纲

第一阶段:HTTP基础概念 互联网与Web基础 理解Web工作原理:客户端-服务器模型URL与URI的结构及区别端口、协议、域名概念 HTTP协议概览 HTTP的作用与特点(无状态、无连接、可扩展)HTTP协议版本演进(0.9 → 1.0 → 1.1 …

Formality:时序变换(五)(寄存器复制)

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 一、引言 时序变换在Design Compiler的首次综合和增量综合中都可能发生,它们包括:时钟门控(Clock Gating)、寄存器合并(Register Merging)、…

我使用deepseek高效学习-分析外文网站Cron定时执行任务

最近在spring框架中 设置定时任务,有的末尾是星号有的是问号,有的是6位,有的是7位。就这个机会总结下cron表达式的使用,综合源代码中的crontab地址翻译分析,结合最近超爆的deepseek 提高学习效率,归纳总结出…

BurpSuite抓包与HTTP基础

文章目录 前言一、BurpSuite1.BurpSuite简介2.BurpSuite安装教程(1)BurpSuite安装与激活(2)安装 https 证书 3.BurpSuite使用4.BurpSuite资料 二、图解HTTP1.HTTP基础知识2.HTTP客户端请求消息3.HTTP服务端响应消息4.HTTP部分请求方法理解5.HTTPS与HTTP 总结 前言 在网络安全和…

华为交换机堆叠配置

一、CSS堆叠集群配置(框式交换机) 1、通过集群卡连接方式组建集群 [SwitchA] set css mode css-card \\配置集群卡连接方式 [SwitchA] set css id 1 \\配置成员交换机的集群ID(缺省值为1) [SwitchA] set css priority 100 \\配…

google 多模态aistudio Stream Realtime体验

参考: https://aistudio.google.com/live 使用gemini多模态能力,支持语音图像文字输入输出,实时交互体验 支持语音实时交互、摄像头加语音、屏幕视频语音 摄像头 屏幕共享

(文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练

文章目录 (文末提供数据集下载)ML.NET库学习001:基于PCA的信用卡异常检查之样本处理与训练目标项目概述代码结构概述1. **主要类和文件**2. **命名空间和使用指令**3. **数据类 (TransactionObservation)**4. **主程序入口 (Main 方法)**5. **数据预处理 (DataPrepr…

基于GA-BP遗传算法优化神经网络+NSGAII多目标优化算法的工艺参数优化、工程设计优化!

目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.GA-BP遗传算法优化神经网络NSGAII多目标优化算法,工艺参数优化、工程设计优化!(Matlab完整源码和数据) 多目标优化是指在优化问题中同时考虑多个目标的优化过程。在多…

1、http介绍

一、HTTP 和 HTTPS 简介 HTTP(HyperText Transfer Protocol) 用途:用于网页数据传输(不加密)。协议特性:以明文形式传输数据,默认端口 80,无身份验证和完整性保护。典型场景&#xf…

电商行业的新篇章:3D和AR技术助力销售转化率提升!

3D模型在电商行业的应用十分广泛,其影响深远且意义重大。以下是关于3D模型在电商行业应用的具体分析: 一、提升消费者购物体验与决策效率 三维呈现:通过3D技术,商品可以在电商平台上以三维形式呈现,消费者可以720旋转…

书籍《新能源汽车动力电池安全管理算法设计》和《动力电池管理系统核心算法》脑图笔记

目录 一、阅读背景二、《新能源汽车动力电池安全管理算法设计》脑图笔记三、《动力电池管理系统核心算法》脑图笔记四、后记参考学习 一、阅读背景 如今身处新能源动力电池行业,欲对动力电池相关算法做一些了解,通过查找相关电子书app,最后找…

前端布局与交互实现技巧

前端布局与交互实现技巧 1. 保持盒子在中间位置 在网页设计中&#xff0c;经常需要将某个元素居中显示。以下是一种常见的实现方式&#xff1a; HTML 结构 <!doctype html> <html lang"en"> <head><meta charset"UTF-8"><m…