当前位置: 首页 > news >正文

Jenkins安装部署(以及常见报错解决方案),jdk版本控制器sdkman

目录

零、环境介绍

一、Jenkins安装

1、插件安装以及更换插件源

 2、修改jenkins时区

二、sdkman安装(可选)

1、sdkman常用方法

2、sdkman常用方法演示

2.1、查看可用的jdk

2.2、下载jdk并切换版本

三、jenkins报错解决

1、下载sdkman后systemctl启动失败

2、 其他可能的报错

2.1、端口占用问题

2.2、用户名问题

2.3、版本兼容性问题

2.4、 防火墙问题

2.5、权限问题


零、环境介绍

Operating SystemopenEuler 22.03 (LTS-SP2)
KernelLinux 5.10.0-153.12.0.92.oe2203sp2.x86_64
ip address192.168.240.11
JDK versionjdk-17
jenkins version2.479.3-1.1

安装之前先调整防火墙:

jenkins官网给的防火墙策略:

YOURPORT=8080
PERM="--permanent"
SERV="$PERM --service=jenkins"firewall-cmd $PERM --new-service=jenkins
firewall-cmd $SERV --set-short="Jenkins ports"
firewall-cmd $SERV --set-description="Jenkins port exceptions"
firewall-cmd $SERV --add-port=$YOURPORT/tcp
firewall-cmd $PERM --add-service=jenkins
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload

嫌麻烦直接关掉防火墙也行:

sudo systemctl stop firewalld
sudo systemctl disable firewalld

一、Jenkins安装

按照官网的参考文档安装即可

Jenkins安装参考文档

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-2023.key
sudo yum upgrade
# Add required dependencies for the jenkins package
sudo yum install fontconfig java-17-openjdk
sudo yum install jenkins
sudo systemctl daemon-reload
sudo systemctl start jenkins
sudo systemctl enable jenkins
sudo systemctl status jenkins

顺利安装完成的话,执行systemctl status jenkins显示以下结果:

查看jenkins版本

 

 在浏览器输入:http://192.168.240.11:8080

 管理员密码在红色的提示文件当中,填入你自己的密码

cat /var/lib/jenkins/secrets/initialAdminPassword

 安装推荐的插件,如果嫌慢也可以离线导入。

等待安装完成。

1、插件安装以及更换插件源

依次点击Dashboard--> 系统管理--> 插件管理

在底部填写国内的jenkins插件源

https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json

 提交后重启jenkins,会提示有可更新的插件,将这些插件更新,最后显示No updates available

 2、修改jenkins时区

 依次点击Dashboard -->系统管理--> Script Console

 填入以下内容,底部运行结果显示Result: Asia/Shanghai

 System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 'Asia/Shanghai')

 

二、sdkman安装(可选)

sdk官方下载网址

yum install -y tar
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version

查看sdk版本,检验是否下载完毕:

1、sdkman常用方法

sdkman官方使用指南

  • 查看SKDMAN版本号: sdk version
  • 列出可用的SDK列表: sdk list
  • 安装特定的SDK: sdk install <sdk-name> <version>,例如,安装Java 8: sdk install java 8.0.292.hs-adpt
  • 切换SDK版本: sdk use <sdk-name> <version>,例如,切换到Java 9: sdk use java 9.0.7-zulu
  • 设置默认的SDK版本: sdk default <sdk-name> <version>,例如,设置Java 8为默认版本: sdk default java 8.0.292.hs-adpt
  • 卸载SDK: sdk uninstall <sdk-name> <version>,例如,卸载Java 9: sdk uninstall java 9.0.7-zulu
  • 更新SDKMAN: sdk upgrade
  • 清除旧版本的SDK: sdk flush archives sdk flush temp

以上为SDKMAN的基本使用命令,如果想要更多指令,可以输入sdk help来查看全部的指令内容。

2、sdkman常用方法演示

2.1、查看可用的jdk

sdk list java

下载java 17.0.14-zulu

下载之前,先看看Java二进制文件所在路径

which java

 [root@openEuler-1 ~]# which java
/usr/bin/java

 之所以查看这个路径,是因为安装了sdkman,并且切换jdk版本后,默认的java二进制文件路径会变更为/root/.sdkman/candidates/java/current/bin/java,稍后验证。

2.2、下载jdk并切换版本

sdk install  java 17.0.14-zulu

查看jdk版本

java -version

[root@openEuler-1 ~]# java -version
openjdk version "17.0.14" 2025-01-21 LTS
OpenJDK Runtime Environment Zulu17.56+15-CA (build 17.0.14+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.56+15-CA (build 17.0.14+7-LTS, mixed mode, sharing)

初次下载会自动切换,现在我的机器jdk版本由17.0.11变为17.0.14

三、jenkins报错解决

1、下载sdkman后systemctl启动失败

我们刚才切换了jdk版本后,虽然jdk版本由17.0.11变为17.0.14,但是同为jdk-17,应该不会出错

尝试重启Jenkins,发现的确没有出错。

但是,有时编译安装jdk后,再下载sdkman,可能会有如下报错:

关键提示:Unit jenkins.service not found

 意思是jenkins服务单元没有找到,原因是因为systemctl启动时调用的jenkins.service文件在/usr/lib/systemd/system目录下,无法调用/etc/init.d/下的jenkins。所以如果遇到服务方式无法启动jenkins,则需要修改jenkins.service来进行适配:

vim /usr/lib/systemd/system/jenkins.service

添加或者去掉注释修改以下内容:

Environment="JAVA_HOME=/root/.sdkman/candidates/java/current/bin/java"

 添加的内容其实就是,sdkman给我们修改的java二进制文件路径

重载并重启jenkins发现错误解决了:

systemctl daemon-reload
systemctl start jenkins
systemctl status jenkins

2、 其他可能的报错

2.1、端口占用问题


查看/etc/sysconfig/jenkins的JENKINS_PORT="8080”或者/usr/lib/systemd/system/jenkins.service的Environment="JENKINS_PORT=8080"

grep -i jenkins_port= /usr/lib/systemd/system/jenkins.service
ps -aux | grep 8080



vim /usr/lib/systemd/system/jenkins.service

把/usr/lib/systemd/system/jenkins.service的Environment="JENKINS_PORT=8080"改为你当前linux空闲的端口,然后重启jenkins

systemctl daemon-reload
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service

2.2、用户名问题

 查看/etc/sysconfig/jenkins或者/usr/lib/systemd/system/jenkins.service的JENKINS_USER="root",如果不是root,而是jenkins或者其它,要改成root。或者相反操作。

vim /usr/lib/systemd/system/jenkins.service
User=root
Group=root
systemctl daemon-reload
systemctl start jenkins.service
systemctl stop jenkins.service
systemctl status jenkins.service

2.3、版本兼容性问题

检查当前的jdk版本是否对应jenkins版本,不符合兼容性就切换jdk到对应版本。如何选择jdk版本或者jenkins版本参考jenkins官方文档:

Java Support Policy

2.4、 防火墙问题

文章开头已经讲过了,如果开始放行的是8080端口,你后面又改为了其他端口,自己配置对应的防火墙策略即可。

2.5、权限问题

如果使用jenkins用户和jenkins组的身份来启动jenkins服务,有可能因为jenkins用户的权限低而不能读取有关文件而导致启动失败,我们给jenkins用户提权即可。

echo "jenkins ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers
sudo chown -R jenkins:jenkins /var/lib/jenkins
sudo chown jenkins:jenkins /usr/share/java/jenkins.war

不同版本的路径可能不同,可以使用find找出。

相关文章:

Jenkins安装部署(以及常见报错解决方案),jdk版本控制器sdkman

目录 零、环境介绍 一、Jenkins安装 1、插件安装以及更换插件源 2、修改jenkins时区 二、sdkman安装&#xff08;可选&#xff09; 1、sdkman常用方法 2、sdkman常用方法演示 2.1、查看可用的jdk 2.2、下载jdk并切换版本 三、jenkins报错解决 1、下载sdkman后systemc…...

利用JSON数据类型优化关系型数据库设计

利用JSON数据类型优化关系型数据库设计 前言 在关系型数据库中&#xff0c;传统的结构化存储方式要求预先定义好所有的列及其数据类型。 然而&#xff0c;随着业务的发展&#xff0c;这种设计可能会显得不够灵活&#xff0c;尤其是在需要扩展单个列的描述功能时。 JSON数据…...

Nxopen 直齿轮参数化设计

NXUG1953 Visualstudio 2019 参考论文&#xff1a; A Method for Determining the AGMA Tooth Form Factor from Equations for the Generated Tooth Root Fillet //FullGear// Mandatory UF Includes #include <uf.h> #include <uf_object_types.h>// Internal I…...

线程配置经验

工作时&#xff0c;时常会遇到&#xff0c;线程相关的问题与解法&#xff0c;本人会持续对开发过程中遇到的关于线程相关的问题及解决记录更新记录在此篇博客中。 目录 一、线程基本知识 1. 线程和进程 二、问题与解法 1. 避免乘法级别数量线程并行 1&#xff09;使用线程池…...

火语言RPA--KimiAiFree服务

&#x1f6a9;【组件功能】&#xff1a;KimiAiFree服务支持联网搜索、支持智能体对话、支持长文档解读、支持图像OCR。 配置预览 配置说明 服务地址 支持T或# 自行搭建或第三方提供的KimiAiFree服务地址。 RefreshToken 支持T或# 与KimiAiFree服务交互时用到的token。从ki…...

P6120 [USACO17JAN] Hoof, Paper, Scissor S

难度&#xff1a;普及/提高−&#xff1b; 题意&#xff1a; ​ 石头、剪刀、布游戏&#xff0c;先给出 n n n 轮已经知道的其中一人的对局情况&#xff0c;例如样例&#xff1a; 5 P - 布 P - 布 H - 石头 P - 布 S - 剪刀另外一人&#xff0c;只允许修改一次机会的情况下…...

Android Studio打包APK

1.导出APK安装包 如果是首次打包&#xff0c;Create new 单击蓝色对话框右边文件夹&#x1f4c2;图标 &#xff0c;选择密钥保存路径&#xff0c;然后在下方File name对话框中填写您想要名称&#xff0c;再点击OK回到密钥创建对话框。 在此对话框中填写密码&#xff08;Passwo…...

08 比特币通用技术介绍

比特币分层 比特币区块结构 存储结构 区块是比特币存储交易的结构&#xff0c;一个区块总是指向其父节点。 一个区块包含三个字段&#xff1a;区块头、区块交易数量、交易列表。交易数量受到区块大小限制&#xff0c;输入、输出数量和脚本都会占用区块空间&#xff0c;矿工往…...

拟合损失函数

文章目录 拟合损失函数一、线性拟合1.1 介绍1.2 代码可视化1.2.1 生成示例数据1.2.2 损失函数1.2.3 绘制三维图像1.2.4 绘制等高线1.2.5 损失函数关于斜率的函数 二、 多变量拟合2.1 介绍2.2 代码可视化2.2.1 生成示例数据2.2.2 损失函数2.2.3 绘制等高线 三、 多项式拟合3.1 介…...

二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2

XCTF 的 apk 逆向-2 题目 wp&#xff0c;这是一道反编译对抗题。 题目背景 AndroidManifest.xml 在开发时是文本 xml&#xff0c;在编译时会被 aapt 编译打包成为 binary xml。具体的格式可以参考稀土掘金 MindMac 做的类图&#xff08;2014&#xff09;&#xff0c;下面的博…...

在线免费快速无痕去除照片海报中的文字logo

上期和大家分享了用photoshop快速无痕去除照片海报中的文字logo的方法&#xff0c;有的同学觉得安装PS太麻烦&#xff0c;有那下载安装时间早都日落西山了&#xff0c;问有没有合适的在线方法可以快速去除&#xff1b;达芬奇上网也尝试了几个网站&#xff0c;今天分享一个对国人…...

引领未来科技潮流:Web3 前沿发展趋势

随着技术不断发展&#xff0c;我们正站在一个全新的互联网时代的门槛上&#xff0c;Web3的出现正在重新定义互联网的构架和运作方式。Web3&#xff0c;作为互联网的下一代发展趋势&#xff0c;其核心思想是去中心化、开放与用户主权。与现有的Web2.0相比&#xff0c;Web3更加注…...

【番外篇】鸿蒙扫雷天纪:运混沌灵智勘破雷劫天局

大家好啊&#xff0c;我是小象٩(๑ω๑)۶ 我的博客&#xff1a;Xiao Xiangζั͡ޓއއ 很高兴见到大家&#xff0c;希望能够和大家一起交流学习&#xff0c;共同进步。 这一节课我们不学习新的知识&#xff0c;我们来做一个扫雷小游戏 目录 扫雷小游戏概述一、扫雷游戏分析…...

08.OSPF 特殊区域及其他特性

OSPF 特殊区域及其他特性 一. 前言OSPF的四个特殊区域Stub末梢区域Totally Stub完全末梢区域NSSATotally NSSA完全的NSSA二.Stub 区域和 Totally Stub 区域(1)网络规模变大引发的问题(2)传输区域和末端区域(3)Stub 区域(4)Totally Stub 区域三.NSSA 区域和 Totally NSS…...

人工智能在医疗领域的应用有哪些?

人工智能在医疗领域的应用十分广泛&#xff0c;涵盖了诊断、治疗、药物研发等多个环节&#xff0c;以下是一些主要的应用&#xff1a; 医疗影像诊断 疾病识别&#xff1a;通过分析 X 光、CT、MRI 等影像&#xff0c;人工智能算法能够识别出肿瘤、结节、骨折等病变&#xff0c;…...

c#使用Confluent.Kafka实现生产者发送消息至kafka(远程连接kafka发送消息超时的解决 Local:Message timed out)

水一篇&#xff1a; 参考&#xff1a;c#使用Confluent.Kafka实现生产者发送消息至kafka&#xff08;远程连接kafka发送消息超时的解决 Local&#xff1a;Message timed out&#xff09; - 寒冰之光 - 博客园 该死的Kafka&#xff0c;远程连接Kafka超时以及解决办法 - 博客王大…...

【2025年数学建模美赛F题】(顶刊论文绘图)模型代码+论文

全球网络犯罪与网络安全政策的多维度分析及效能评估 摘要1 Introduction1.1 Problem Background1.2Restatement of the Problem1.3 Literature Review1.4 Our Work 2 Assumptions and Justifications数据完整性与可靠性假设&#xff1a;法律政策独立性假设&#xff1a;人口统计…...

DeepSeek 的背景介绍

在全球人工智能大模型蓬勃发展的浪潮中&#xff0c;DeepSeek 宛如一颗耀眼的新星&#xff0c;迅速崛起并吸引了众多关注的目光。它的出现不仅为人工智能领域注入了新的活力&#xff0c;也在一定程度上改变了行业的竞争格局。 一、创立背景与资金支持 DeepSeek&#xff0c;中文…...

Meta 计划 2025 年投资 650 亿美元推动 AI 发展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

信息学奥赛一本通 2110:【例5.1】素数环

【题目链接】 ybt 2110&#xff1a;【例5.1】素数环 【题目考点】 1. 深搜回溯 2. 质数 【解题思路】 1~n的数字构成一个环&#xff0c;要求相邻数字加和必须是质数。 该题最终输出的是一个序列&#xff0c;只不过逻辑上序列最后一个数字的下一个数字就是序列的第一个数字…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

Nuxt.js 中的路由配置详解

Nuxt.js 通过其内置的路由系统简化了应用的路由配置&#xff0c;使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

Rapidio门铃消息FIFO溢出机制

关于RapidIO门铃消息FIFO的溢出机制及其与中断抖动的关系&#xff0c;以下是深入解析&#xff1a; 门铃FIFO溢出的本质 在RapidIO系统中&#xff0c;门铃消息FIFO是硬件控制器内部的缓冲区&#xff0c;用于临时存储接收到的门铃消息&#xff08;Doorbell Message&#xff09;。…...

#Uniapp篇:chrome调试unapp适配

chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器&#xff1a;Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

力扣热题100 k个一组反转链表题解

题目: 代码: func reverseKGroup(head *ListNode, k int) *ListNode {cur : headfor i : 0; i < k; i {if cur nil {return head}cur cur.Next}newHead : reverse(head, cur)head.Next reverseKGroup(cur, k)return newHead }func reverse(start, end *ListNode) *ListN…...

NPOI Excel用OLE对象的形式插入文件附件以及插入图片

static void Main(string[] args) {XlsWithObjData();Console.WriteLine("输出完成"); }static void XlsWithObjData() {// 创建工作簿和单元格,只有HSSFWorkbook,XSSFWorkbook不可以HSSFWorkbook workbook new HSSFWorkbook();HSSFSheet sheet (HSSFSheet)workboo…...