如何在 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);//关闭设备…...
云原生核心技术 (7/12): K8s 核心概念白话解读(上):Pod 和 Deployment 究竟是什么?
大家好,欢迎来到《云原生核心技术》系列的第七篇! 在上一篇,我们成功地使用 Minikube 或 kind 在自己的电脑上搭建起了一个迷你但功能完备的 Kubernetes 集群。现在,我们就像一个拥有了一块崭新数字土地的农场主,是时…...
Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
【配置 YOLOX 用于按目录分类的图片数据集】
现在的图标点选越来越多,如何一步解决,采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集(每个目录代表一个类别,目录下是该类别的所有图片),你需要进行以下配置步骤&#x…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...
