如何在 Ubuntu 22.04 服务器上安装 Jenkins
简介
Jenkins 是一个非常流行的免费自动化工具,每个人都应该了解它。DevOps 工程师使用它来自动化代码构建、测试和部署。本文将重点介绍如何在新的 Ubuntu LTS 版本,即 Ubuntu 22.04 中安装 Jenkins。
但在此之前,让我们快速讨论一下 Jenkins 是什么。
什么是 Jenkins
Jenkins 是开源自动化服务器的首选。它是目前最流行的 CI/CD 工具。它用于自动化软件开发任务,例如测试代码更改、打包以及在 SDLC 阶段末尾进行部署。
主要功能:
- 管道自动化: 将 CI/CD 流程定义为代码。
- 可扩展性: 支持超过 1500 个插件,用于各种集成(例如,Git、Docker、Kubernetes)。
- 分布式构建: 在多台机器上运行作业以实现可扩展性。
- 轻松集成: 可以与众多工具和平台(例如,Maven、Gradle、GitHub)协同工作。
- 用户友好的界面: 简单的 Web UI,用于作业管理和监控。
- 强大的社区支持: 定期更新和广泛的文档。
准备工作
服务器准备
必要前提:
- 一个充满求知欲的大脑。
- 一台 Linux 服务器(推荐腾讯云、阿里云或雨云等)。
我将以 雨云 为例,带大家创建一台自己的云服务器,以便学习本篇文章的内容。
注册链接: https://rainyun.ivwv.site
创建雨云服务器
以下步骤仅供参考,请根据实际需求选择配置。
- 点击 云产品 → 云服务器 → 立即购买。
- 选择距离你较近的区域,以保证低延迟。

- 按照自己需求选择配置,选择Ubuntu 22.04 版本,按照自己需求是否预装Docker。
- 最后按照提示进行购买。
- 购买后等待机器部署完毕,点击刚刚创建好的服务器,进入管理面板,找到远程连接相关信息。

- 我们使用
PowerShell进行SSH远程连接到服务器,Win+R打开运行窗口,输入powershell后点击确定。

- 输入
ssh root@你的服务器IP例如ssh root@154.9.227.239回车后,首次需要输入yes,再次回车后即可登录服务器。

- 到此为止,我们的云服务器就远程连接上了。
如何在 Ubuntu 22.04 上安装 Jenkins
让我们从更新你的系统并安装必要的依赖项开始。
第一步:更新系统
在安装新软件之前更新你的系统软件包始终是一个明智的选择。打开终端并运行以下命令:
sudo apt update

sudo apt upgrade
它会更新你系统上使用的软件包索引。它会知道有哪些软件包及其版本,然后安装所有已安装的新版本。
第二步:安装 Java
第二步是在你的 Ubuntu 服务器上安装 Java,因为 Jenkins 需要它才能运行。Jenkins 官方支持 Java 11 和 Java 17。我们将安装 OpenJDK 17,这是 Ubuntu 22.04 推荐的版本。
要安装 Java 17,请运行以下命令:
sudo apt install openjdk-17-jdk

安装 Java 后,通过检查版本来验证安装:
java -version

你应该看到类似于以下的输出:
openjdk version "17.0.x"
OpenJDK Runtime Environment (build 17.0.x+xx)
OpenJDK 64-Bit Server VM (build 17.0.x+xx, mixed mode)
安装 Java 后,我们准备好进行下一步。
第三步:添加 Jenkins 存储库
首先将 Jenkins GPG 密钥导入你的系统。请注意,下面提到的 URL 将来可能会更改,因此请在使用前进行验证。
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key

接下来,将 Jenkins 存储库添加到你系统的 sources.list:
sudo sh -c 'echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian binary/ > /etc/apt/sources.list.d/jenkins.list'

第四步:安装 Jenkins
Jenkins 在默认的 Ubuntu 存储库中不可用,因此我们需要添加 Jenkins 存储库,然后从那里安装 Jenkins。
添加存储库后,更新软件包列表并通过运行以下命令安装 Jenkins:
sudo apt update

sudo apt install jenkins

安装 Jenkins 后,它将自动作为服务启动。
第五步:启动并启用 Jenkins
现在 Jenkins 已经安装,我们需要启动并启用 Jenkins 服务,以便它在启动时自动运行。
使用以下命令启动 Jenkins:
sudo systemctl start jenkins
为确保 Jenkins 在启动时启动,请使用以下命令启用它:
sudo systemctl enable jenkins
你可以检查 Jenkins 的状态以确保它正在运行:
sudo systemctl status jenkins

你应该看到一个输出,指示 Jenkins 处于活动状态并正在运行。
第六步:调整防火墙
Jenkins 托管在端口 8080 上,这是默认端口。如果你的服务器具有内置防火墙,则必须允许此端口上的流量。为此,请运行以下命令:
对于 UFW(Uncomplicated Firewall)用户,允许端口 8080:
sudo ufw allow 8080
sudo ufw reload
如果你正在使用其他防火墙,例如 iptables,请确保它允许端口 8080 上的流量。
要验证 UFW 状态并确认 Jenkins 已通过防火墙,请运行以下命令:
sudo ufw status

第七步:访问 Jenkins Web 界面
Jenkins 现在已安装并在你的服务器上运行。要完成设置,你需要访问 Jenkins Web 界面。打开 Web 浏览器并输入你的服务器的 IP 地址,后跟端口 8080:
http://your-server-ip:8080
如果你在本地运行 Jenkins,请使用:
http://localhost:8080

第八步:配置 Jenkins
首次访问 Jenkins 时,它会要求提供初始管理密码。要检索此密码,请在终端中运行以下命令:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword

你会看到一长串字符。复制此密码并将其粘贴到 Jenkins 设置屏幕中。
输入初始管理密码后,Jenkins 会将你带到 Customize Jenkins 页面。在这里,你将被要求安装插件。建议安装建议的插件以获取基本的 Jenkins 功能。
单击 Install suggested plugins 开始该过程。

Jenkins 将自动安装最常用的插件,这可能需要几分钟,具体取决于你的服务器速度。

第九步:创建第一个管理员用户
安装插件后,Jenkins 将提示你创建第一个管理员用户。填写如下所示的必填字段:

此帐户将用作 Jenkins 管理员用户。

创建用户后,单击 Save and Finish。

你已成功在 Ubuntu 22.04 上安装了 Jenkins。
接下来,让我们使用 Jenkins 创建一个简单的管道。
使用 Jenkins 创建一个简单的管道
在 Jenkins 中创建你的第一个基本管道是开始自动化的好方法。Jenkins 管道将你的 CI/CD 流程的步骤定义为代码,这些代码可以进行版本控制并轻松重复使用。以下是使用 Jenkins 创建非常基本管道的分步指南。
在你的 Jenkins 仪表板上,单击 New Item。

命名你的作业(例如,“Demo”),选择 Pipeline 作为项目类型,然后单击 OK。

向下滚动到 Pipeline 部分。在 Definition 下拉列表中,选择 Pipeline script。
在出现的文本框中,输入一个非常基本的管道脚本。这是一个简单的示例:
pipeline {agent anystages {stage('Build') {steps {echo 'Building...'}}stage('Test') {steps {echo 'Testing...'}}stage('Deploy') {steps {echo 'Deploying...'}}}
}
此管道的功能:
- pipeline {}:定义整个管道。
- agent any:在任何可用的 Jenkins 代理上运行管道。
- stages {}:列出管道的阶段。
- stage(‘Build’), stage(‘Test’), stage(‘Deploy’):定义构建、测试和部署的各个阶段。
- steps {}:每个阶段中发生的实际操作(在本例中,是简单的 echo 语句)。

编写完管道脚本后,单击 Save。在作业的仪表板上,单击 Build Now 以运行管道。

你可以在左侧的 Build History 部分中查看进度。单击构建号以查看控制台输出并检查每个阶段的结果。

它将显示管道已成功执行。

构建完成后,单击构建号,然后单击 Pipeline Steps 或 Pipeline Graph。
Jenkins 将以可视方式表示管道,显示每个阶段以及它是否通过或失败。

结论
在本指南中,我们逐步解释了如何在 Ubuntu 22.04 上安装 Jenkins。我们介绍了安装 Java、添加 Jenkins 存储库、安装 Jenkins 服务器以及启动 Jenkins 服务器。再次说明,从 Jenkins 的角度来看,现在我们已经启动并运行了它,你可以开始使用此 CI/CD 管道集成系统来自动化你的开发操作。
雨云 - 新一代云服务提供商: https://rainyun.ivwv.site
我的博客:https://blog.ivwv.site
相关文章:
如何在 Ubuntu 22.04 服务器上安装 Jenkins
简介 Jenkins 是一个非常流行的免费自动化工具,每个人都应该了解它。DevOps 工程师使用它来自动化代码构建、测试和部署。本文将重点介绍如何在新的 Ubuntu LTS 版本,即 Ubuntu 22.04 中安装 Jenkins。 但在此之前,让我们快速讨论一下 Jenk…...
【一篇搞定配置】如何在Ubuntu上配置单机/伪分布式Hadoop
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀各种软件安装与配置_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1.…...
利用Map集合设计程序,存储城市和对应等级相关信息
package testmap;import java.util.HashMap; import java.util.Scanner; import java.util.Set;public class TestHashMap6 {public static void main(String[] args) {//1.创建一个Map集合:存储键值对HashMap<String, String> map new HashMap<>();/…...
【自动驾驶】单目摄像头实现自动驾驶3D目标检测
🍑个人主页:Jupiter. 🚀 所属专栏:传知代码 欢迎大家点赞收藏评论😊 目录 概述算法介绍演示效果图像推理视频推理 核心代码算法处理过程使用方式环境搭建下载权重文件pytorch 推理(自动选择CPU或GPU&#x…...
21 go语言(golang) - gin框架安装及使用(二)
四、组成 前面的文章中,我们介绍了其中一部分组成,接下来继续学习: Router(路由器) Gin 使用基于树结构的路由机制来处理 HTTP 请求。它支持动态路由参数、分组路由以及中间件。路由器负责将请求路径映射到相应的处理…...
Intel(R) Iris(R) Xe Graphics安装Anaconda、Pytorch(CPU版本)
一、Intel(R) Iris(R) Xe Graphics安装Anaconda 下载网址:https://repo.anaconda.com/archive/ 双击Anaconda3-2024.10-1-Windows-x86_64,一直下一步,选择安装的路径位置,一直下一步就安装完成了。打开Anaconda PowerShell Promp…...
【Unity3D】实现可视化链式结构数据(节点数据)
关键词:UnityEditor、可视化节点编辑、Unity编辑器自定义窗口工具 使用Newtonsoft.Json、UnityEditor相关接口实现 主要代码: Handles.DrawBezier(起点,终点,起点切线向量,终点切线向量,颜色,n…...
Three.js推荐-可以和Three.js结合的动画库
在 Three.js 中,3D 模型、相机、光照等对象的变换(如位置、旋转、缩放)通常需要通过动画进行控制,以实现更加生动和富有表现力的效果。然而,Three.js 本身并没有内置的强大动画管理系统,尽管可以通过关键帧…...
增强现实(AR)和虚拟现实(VR)的应用
增强现实(AR)和虚拟现实(VR)是近年来迅速发展的技术,广泛应用于多个行业,提供沉浸式的体验和增强的信息交互。以下是AR和VR的定义及其在不同领域的具体应用。 相关学点: 2025年大数据、通信技术…...
告别机器人味:如何让ChatGPT写出有灵魂的内容
目录 ChatGPT的一些AI味道小问题 1.提供编辑指南 2.提供样本 3.思维链大纲 4.融入自己的想法 5.去除重复增加多样性 6.删除废话 ChatGPT的一些AI味道小问题 大多数宝子们再使用ChatGPT进行写作时,发现我们的老朋友ChatGPT在各类写作上还有点“机器人味”太重…...
【Threejs】从零开始(六)--GUI调试开发3D效果
请先完成前置步骤再进行下面操作:【Threejs】从零开始(一)--创建threejs应用-CSDN博客 一.GUI界面概述 GUI(Graphical User Interface)指的是图形化用户界面,广泛用在各种程序的上位机,能够通过…...
Cocos Creator 试玩广告开发
之前主要是使用Unity,这次刚好项目是试玩游戏的开发,所以临时学了Cocos来开发。所以这篇文章,更加关注从Unity转到Cocos开发的经历以及试玩的基本开发。 首先,我是没有使用过Cocos的,也没有接触过Ts语言,对于Ts的开发开…...
快速解决oracle 11g中exp无法导出空表的问题
在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…...
selenium 报错 invalid argument: invalid locator
环境: Python3.12.2 selenium4.0 报错信息: invalid argument: invalid locator 错误分析: selenium语法错误,find_element方法少写By.XPATH参数 错误语法如下: driver.find_element(//div[id"myid"]) 解决办…...
Flink2.0未来趋势中需要注意的一些问题
手机打字,篇幅不长,主要讲一下FFA中关于Flink2.0的未来趋势,直接看重点。 Flink Forward Asia 2024主会场有一场关于Flink2.0的演讲,很精彩,官方也发布了一些关于Flink2.0的展望和要解决的问题。 1.0时代和2.0时代避免…...
机械鹦鹉与真正的智能:大语言模型推理能力的迷思
编者按: 大语言模型真的具备推理能力吗?我们是否误解了"智能"的本质,将模式匹配误认为是真正的推理? 本文深入探讨了大语言模型(LLMs)是否真正具备推理能力这一前沿科学问题,作者的核…...
本地电脑使用命令行上传文件至远程服务器
将本地文件上传到远程服务器,在本地电脑中cmd使用该命令: scp C:/Users/"你的用户名"/Desktop/environment.yml ws:~/environment.yml 其中,C:/Users/“你的用户名”/Desktop/environment.yml是本地文件的路径, ~/en…...
【系统】Windows11更新解决办法,一键暂停
最近的windows更新整的我是措不及防,干啥都要关注一下更新的问题,有的时候还关不掉,我的强迫症就来了,非得关了你不可! 经过了九九八十一难的研究之后,终于找到了一个算是比较靠谱的暂停更新的方法&#x…...
34. Three.js案例-创建球体与模糊阴影
34. Three.js案例-创建球体与模糊阴影 实现效果 知识点 WebGLRenderer WebGLRenderer 是 Three.js 中用于渲染 3D 场景的核心类。它负责将场景中的对象绘制到画布上。 构造器 new THREE.WebGLRenderer(parameters)参数类型描述parametersObject可选参数对象,包…...
Qt同步读取串口
头文件 #include "InsScpi.h" #include <QObject> #include <QSerialPort>class TestSerial : public QObject {Q_OBJECT public:explicit TestSerial(QObject *parent nullptr);//打开设备bool openDevice(const QString &portName);//关闭设备…...
【磁盘】每天掌握一个Linux命令 - iostat
目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat(I/O Statistics)是Linux系统下用于监视系统输入输出设备和CPU使…...
定时器任务——若依源码分析
分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
全志A40i android7.1 调试信息打印串口由uart0改为uart3
一,概述 1. 目的 将调试信息打印串口由uart0改为uart3。 2. 版本信息 Uboot版本:2014.07; Kernel版本:Linux-3.10; 二,Uboot 1. sys_config.fex改动 使能uart3(TX:PH00 RX:PH01),并让boo…...
Redis数据倾斜问题解决
Redis 数据倾斜问题解析与解决方案 什么是 Redis 数据倾斜 Redis 数据倾斜指的是在 Redis 集群中,部分节点存储的数据量或访问量远高于其他节点,导致这些节点负载过高,影响整体性能。 数据倾斜的主要表现 部分节点内存使用率远高于其他节…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
Reasoning over Uncertain Text by Generative Large Language Models
https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829https://ojs.aaai.org/index.php/AAAI/article/view/34674/36829 1. 概述 文本中的不确定性在许多语境中传达,从日常对话到特定领域的文档(例如医学文档)(Heritage 2013;Landmark、Gulbrandsen 和 Svenevei…...
Fabric V2.5 通用溯源系统——增加图片上传与下载功能
fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...
