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找出。

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

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

相关文章

大数据挖掘--两个角度理解相似度计算理论

文章目录 0 相似度计算可以转换成什么问题1 集合相似度的应用1.1 集合相似度1.1文档相似度1.2 协同过滤用户-用户协同过滤物品-物品协同过滤 1.2 文档的shingling--将文档表示成集合1.2.1 k-shingling1.2.2 基于停用词的 shingling 1.3 最小哈希签名1.4 局部敏感哈希算法&#…

关于贪心学习的文笔记录

贪心&#xff0c;顾名思义就是越贪越好&#xff0c;越多越有易&#xff0c;他给我的感觉是&#xff0c;通常是求最大或最小问题&#xff0c;相比于动态规划贪心让人更加琢磨不透&#xff0c;不易看出方法&#xff0c;为此在这记录我所见过的题型和思维方法&#xff0c;以便回头…

c语言练习题【数据类型、递归、双向链表快速排序】

练习1&#xff1a;数据类型 请写出以下几个数据的数据类型 整数 a a 的地址 存放a的数组 b 存放a的地址的数组 b的地址 c的地址 指向 printf 函数的指针 d 存放 d的数组 整数 a 的类型 数据类型是 int a 的地址 数据类型是 int*&#xff08;指向 int 类型的指针&#xff09; …

联想拯救者Y9000P IRX8 2023 (82WK) 原厂Win11 家庭中文版系统 带一键还原功能 安装教程

安装完重建winre一键还原功能&#xff0c;和电脑出厂时的系统状态一模一样。自动机型专用软件&#xff0c;全部驱动&#xff0c;主题壁纸&#xff0c;自动激活&#xff0c;oem信息等。将电脑系统完全恢复到出厂时状态。 支持机型 (MTM) : 82WK 系统版本&#xff1a;Windows 1…

搜索与图论复习2最短路

单源最短路---所有边权是正数(Dijkstra算法O(n^2)--稠密图(邻接矩阵)和堆优化的Dijkstra算法O(mlogn)--稀疏图(邻接表)) 或存在负边权(Bellman-ford贝尔曼福特算法O(nm)和SPFA一般O(m) 最坏O(nm) ) 多源最短路---Floyd算法O(n^3) 一、迪杰斯特拉算法(Dijkstra)&#xff1a;1…

Unity GetLocalizedString()失效问题

问题&#xff1a; 在一个自定义类中调用GetLocalizedString()的方法&#xff0c;是无效的&#xff08;创建这个自定义类的脚本没挂载到场景中&#xff09;。 解决方法: 将自定义类的GetLocalizedString()方法换个地方&#xff0c;换到在场景中挂载的一个脚本实例&#xff08;…

【建站】专栏目录

建站专栏的想法有很多&#xff0c;想写穷鬼如何快速低成本部署前后端项目让用户能访问到&#xff0c;如何将网站收录到百度&#xff0c;bing&#xff0c;google并优化seo让搜索引擎搜索到网站&#xff0c;想写如何把网站加入google广告或者接入stripe信用卡首款平台收款&#x…

深入解析“legit”的地道用法——从俚语到正式表达:Sam Altman用来形容DeepSeek: legit invigorating(真的令人振奋)

深入解析“legit”的地道用法——从俚语到正式表达 一、引言 在社交媒体、科技圈甚至日常对话中&#xff0c;我们经常会看到或听到“legit”这个词。比如最近 Sam Altman 在 X&#xff08;原 Twitter&#xff09;上发的一条帖子中写道&#xff1a; we will obviously deliver …

Vue 图片引用方式详解:静态资源与动态路径访问

目录 前言1. 引用 public/ 目录2. assets/ 目录3. 远程服务器4. Vue Router 动态访问5. 总结6. 扩展&#xff08;图片不显示&#xff09; 前言 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 在 Vue 开发中&#x…

DeepSeek-R1 本地部署教程(超简版)

文章目录 一、DeepSeek相关网站二、DeepSeek-R1硬件要求三、本地部署DeepSeek-R11. 安装Ollama1.1 Windows1.2 Linux1.3 macOS 2. 下载和运行DeepSeek模型3. 列出本地已下载的模型 四、Ollama命令大全五、常见问题解决附&#xff1a;DeepSeek模型资源 一、DeepSeek相关网站 官…

JVM运行时数据区域-附面试题

Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域 有各自的用途&#xff0c;以及创建和销毁的时间&#xff0c;有的区域随着虚拟机进程的启动而一直存在&#xff0c;有些区域则是 依赖用户线程的启动和结束而建立和销毁。 1. 程序计…

什么是LPU?会打破全球算力市场格局吗?

在生成式AI向垂直领域纵深发展的关键节点&#xff0c;一场静默的芯片革命正在改写算力规则。Groq研发的LPU&#xff08;Language Processing Unit&#xff09;凭借其颠覆性架构&#xff0c;不仅突破了传统GPU的性能天花板&#xff0c;更通过与DeepSeek等国产大模型的深度协同&a…

如何构建ObjC语言编译环境?构建无比简洁的clang编译ObjC环境?Windows搭建Swift语言编译环境?

如何构建ObjC语言编译环境? 除了在线ObjC编译器&#xff0c;本地环境Windows/Mac/Linux均可以搭建ObjC编译环境。 Mac自然不用多说&#xff0c;ObjC是亲儿子。(WSL Ubuntu 22.04) Ubuntu可以安装gobjc/gnustep和gnustep-devel构建编译环境。 sudo apt-get install gobjc gnus…

2月3日星期一今日早报简报微语报早读

2月3日星期一&#xff0c;农历正月初六&#xff0c;早报#微语早读。 1、多个景区发布公告&#xff1a;售票数量已达上限&#xff0c;请游客合理安排行程&#xff1b; 2、2025春节档总票房破70亿&#xff0c;《哪吒之魔童闹海》破31亿&#xff1b; 3、美宣布对中国商品加征10…

DeepSeek 原理解析:与主流大模型的差异及低算力优势

在人工智能大模型蓬勃发展的浪潮中&#xff0c;DeepSeek 以其独特的技术路线和出色的性能表现脱颖而出。与主流大模型相比&#xff0c;DeepSeek 不仅在技术原理上有着显著的差异&#xff0c;还展现出了在较低算力下达到 OpenAI API 水平的卓越能力。本文将深入剖析这些独特之处…

C++ Primer 标准库vector

欢迎阅读我的 【CPrimer】专栏 专栏简介&#xff1a;本专栏主要面向C初学者&#xff0c;解释C的一些基本概念和基础语言特性&#xff0c;涉及C标准库的用法&#xff0c;面向对象特性&#xff0c;泛型特性高级用法。通过使用标准库中定义的抽象设施&#xff0c;使你更加适应高级…

【Numpy核心编程攻略:Python数据处理、分析详解与科学计算】2.6 广播机制核心算法:维度扩展的数学建模

2.6 广播机制核心算法&#xff1a;维度扩展的数学建模 目录/提纲 #mermaid-svg-IfELXmhcsdH1tW69 {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-IfELXmhcsdH1tW69 .error-icon{fill:#552222;}#mermaid-svg-IfELXm…

【Elasticsearch】硬件资源优化

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

bootstrap.yml文件未自动加载问题解决方案

在添加bootstrap.yml文件后,程序未自动扫描到,即图标是这样的: 查了一些资料,是缺少bootstrap相关依赖,虽然已经添加了spring-cloud-context依赖,但是这个依赖并未引入bootstrap依赖,可能是版本问题,需要手动引入 <dependency><groupId>org.springframework.cloud&…

C++底层学习预备:模板初阶

文章目录 1.编程范式2.函数模板2.1 函数模板概念2.2 函数模板原理2.3 函数模板实例化2.3.1 隐式实例化2.3.2 显式实例化 2.4 模板参数的匹配原则 3.类模板希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 进入STL库学习之前我们要先了解有关模板的…