linux离线安装jenkins及使用教程
本教程采用jenkins.war的方式离线安装部署,在线下载的方式会遇到诸多问题,不宜采用
基本环境:
1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。
2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。
3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方 式,如:gradle
一、下载地址
地址:Jenkins download and deployment
下载最新的长期支持版
由于jenkins使用java开发的,所以需要安装的linux服务器装有jdk环境,并且jdk版本支持你所安装的jenkins版本
点击 Hardware and Software requirements,查看下载前的软硬件要求
点击 Java Requirements
根据所下载的长期支持的jenkin版本区间 ,判定支持的jdk版本
因为笔者下载的的是 2.440.2 版本,结合上图判定2.440.2在2.426.1之后,需要的linux服务器安装jdk版本为jdk 11、jdk 17或者jdk 21,三者任意一个都可以,所以最终我选择了jdk 21安装到linux服务器中
当然可能你所在的linux服务器已经安装了jdk 8 或者jdk 11,并且由于其他应用的原因不能再升级jdk,那只需要找到对应jdk支持的jenkins版本进行下载即可
从上图看出,如果linux服务器安装的 jdk 8 ,下载 2.346.1、2.164.1任意一个都可以
如果安装的是 jdk 17,下载2.346.1、2.361.1、2.426.1任意一个
安装的是jdk 11 则以上四个长期版本都支持。
对于历史版本的下载,点击 Past Releases 链接
找到对应的版本下载即可
二、上传jenkins.war包
笔者是安装在 /opt下,创建 jenkins文件夹,使用最高权限root用户登录linux服务器
cd /opt
sudo mkdir jenkins
ll
依次输入以上三条命令
进入新创建的jenkins文件夹
cd jenkins
笔者使用的是FinalShell工具上传jenkin.war,一款国产免费的linux服务器 连接工具,功能强大,不过有安全性问题不推荐生产环境使用,推荐使用Xshell和Xftp组合工具
进入jenkins文件夹后可以看到上传的jenkins.war包
三、启动jenkins
先约定jenkins的启动端口为9007,实际自行更改,保证端口不冲突即可
查看防火墙状态
systemctl status firewalld
防火墙开启状态,则开通 9007 端口 访问权限,并重载防火墙
-- 开通 9007 端口 访问权限
sudo firewall-cmd --permanent --add-port=9007/tcp
-- 重载防火墙
sudo firewall-cmd --reload
cd /opt/jenkins 键入以下命令启动
nohup java -jar jenkins.war --httpPort=9007 | tee jenkins.log 2>&1 &
命令解释如下:
1. nohup: 这是一个Unix/Linux命令,用于让程序在后台运行,即使用户注销也不会停止运行(No Hang Up)。使用 nohup 可以确保即使SSH会话关闭,Jenkins服务仍然持续运行
2. java -jar jenkins.war --httpPort=9007: 这是启动Jenkins服务的命令,其中 -jar 参数表示要执行包含在WAR文件中的主类(在这种情况下是Jenkins应用),--httpPort=9007 是指明Jenkins服务器监听的HTTP端口号为9007
3. | tee jenkins.log: | 是管道操作符,它将前一个命令的标准输出(stdout)传递给后续命令。tee 命令则接收这些输出,并同时完成两个任务:
将输出内容“复制”一份写入到 jenkins.log 文件中,相当于实时记录了Jenkins启动过程和运行时的日志信息。
继续将接收到的数据传递到下一个管道或者默认的标准输出(此处由于后面没有其他命令,就是当前终端),所以在终端上也能看到相同的日志输出
4. 2>&1: 这个符号组合将标准错误流(stderr)重定向到标准输出流(stdout)。这意味着不论是正常的程序输出还是错误信息,都将统一作为标准输出处理,所以不论是正常日志还是错误日志,都会经过管道并被tee命令捕捉
5. &: 最后的&符号用于将整个命令放入后台运行,使得命令执行后,控制台立刻返回到可输入状态,而无需等待该命令执行完毕
出现以上信息说明 jenkins启动成功 ,即使终端关闭也可以
初始用户名和密码 为 admin 103ed60c535f4c8daec0d81d66b9ea9d
初始admin用户密码如果忘记,则去 /root/.jenkins/secrets/initialAdminPassword 中寻找
使用 tail -f /root/.jenkins/secrets/initialAdminPassword 打开可以看到存储的初始jenkins密码
四、设置开机自启动
通过命令 nohup java -jar jenkins.war --httpPort=9007 | tee jenkins.log 2>&1 & 可以后台永久启动jenkins服务,但服务器一旦关闭重启,还是需要进入jenkins.war所在文件夹目录重新执行启动命令
4.1 创建并编辑jenkins.sh 脚本
首先 cd /opt/jenkins,创建jenkins.sh 脚本文件,随便放哪里都可以,但一般和jenkins.war处在同一个文件目录下
vim jenkins.sh
按 i 键 输入以下内容 ,红色部分为需要根据自己对应环境路径自行修改
#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的>权限
JAVA_HOME=/usr/local/jdk/jdk-21.0.2pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`if [ "$1" = "start" ];thenif [ $pid -gt 0 ];thenecho 'jenkins is running...'
else#java启动服务 配置java安装根路径,和启动war包存的根路径nohup $JAVA_HOME/bin/java -jar /opt/jenkins/jenkins.war>/opt/jenkins/jenkins.log --httpPort=9007 2>&1 &fielif [ "$1" = "stop" ];thenexec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9echo 'jenkins is stop..'
elseecho "Please input like this:"./jenkins.sh start" or "./jenkins stop""fi
按下 esc键,输入 :wq 保存退出,键入以下命令赋予脚本可执行权限
chmod +x /opt/jenkins/jenkins.sh
4.2 检测jenkins.sh 脚本
在当前jenkins目录下输入
./jenkins.sh stop
浏览器刷新访问jenkins地址,无法访问
再输入启动命令启动
./jenkins.sh start
浏览器再次刷新发现启动成功
以上说明编写的 jenkins.sh 脚本文件没有问题
4.3 创建并编辑 jenkins.service 系统服务文件
键入命令
vim /lib/systemd/system/jenkins.service
按 i 键 输入以下命令
[Unit]
Description=Jenkins
After=network.target[Service]
Type=forking
ExecStart=/opt/jenkins/jenkins.sh start
ExecReload=
ExecStop=/opt/jenkins/jenkins.sh stop
PrivateTmp=true[Install]
WantedBy=multi-user.target
创建好服务后,执行命令刷新配置
systemctl daemon-reload
启动脚本
systemctl start jenkins.service
查看状态
systemctl status jenkins.service
设置开机自启动
systemctl enable jenkins.service
查看开机自启动的服务列表
systemctl list-units --type=service
看到已存在jenkins.service服务
输入 reboot重启验证,访问jenkins地址,开机自启动成功
五、jdk环境准备
请移步这篇文章:
linux离线安装jdk-CSDN博客
六、git环境准备
关于linux系统安装git,请参考笔者这篇博客:
linux安装git-CSDN博客
七、maven安装
maven安装linux参考博客:
linux离线安装maven-CSDN博客
八、jenkins使用
8.1 登录jenkins
浏览器打开jenkins访问地址,
http://ip:port
笔者的地址为:http://192.168.19.16:9007
输入之前记录的密码 :103ed60c535f4c8daec0d81d66b9ea9d
或者执行命令查看初始密码
tail -f /root/.jenkins/secrets/initialAdminPassword
安装插件,这里要求服务器处于联网状态,自动下载相关插件
创建新用户,再选择使用admin账户继续
这里的地址不用修改,就是jenkins的访问地址
8.2 新建管理员权限用户
继续往下点
点击用户列表,可以看到就一个admin用户,之前创建的管理员用户没成功,应该是笔者点错了没保存
点击系统管理 ,点击管理用户
create user
可以看到新建了一个用户,如果想要修改密码等信息,点击编辑按钮进入修改即可
8.3 插件下载
因为jenkins要用来构建前后端项目,所以需要下载有关maven和Node js等等
nodejs # 构建前端项目
maven integration # 构建后端项目
webhook # 自动化构建(网络钩子)
gitlab # 基础配置
git plugin # 基础git
publish over ssh # 连接远程服务器
点击系统管理->插件管理
点击Avaliable plugins,需要什么插件,搜索下载安装即可 ,有的插件需要重启jenkins才能生效,比如maven
插件装好后,需要进行全局配置
8.4 全局配置
8.4.1 maven配置
这里配置的路径是你jenkins所在linux服务器中,安装的maven里settings.xml的路径,笔者是安装在这个路径下
8.4.2 JDK安装
笔者安装的是jdk-21.0.2,JAVA_HOME路径如下,按照jenkins服务器安装的jdk路径填写,这里如果填写的不对,会有错误提示
自动安装不需要打勾
8.4.3 git 安装
笔者在安装git时,把git的安装在 /usr/local/git路径下了。
linux安装git-CSDN博客
下图为笔者在安装git时设置的安装路径
8.4.4 maven安装
按照maven的安装路径来
相关文章:

linux离线安装jenkins及使用教程
本教程采用jenkins.war的方式离线安装部署,在线下载的方式会遇到诸多问题,不宜采用 基本环境: 1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。 2.git/svn客户端,因一般代码是放在git/svn服务器上的&a…...

NXP-S32DS软件安装
文章目录 一、安装包获取二、S32DS安装三、芯片插件安装 一、安装包获取 登录NXP官网,进入软件目录https://www.nxp.com/ 下载S32DS软件和RTD驱动库,并安装S32DS软件。 单击“S32DS.3.5_b220726_win32.x86_64.exe”下载该软件 点击“License Keys”&…...

26版SPSS操作教程(初级第十五章)
前言 #由于导师最近布置了学习SPSS这款软件的任务,因此想来平台和大家一起交流下学习经验,这期推送内容接上一次第十四章的学习笔记,希望能得到一些指正和帮助~ 粉丝及官方意见说明 #针对官方爸爸的意见说的推送缺乏操作过程的数据案例文件…...

docker部署实用的运维开发手册
下载镜像 docker pull registry.cn-beijing.aliyuncs.com/wuxingge123/reference:latestdocker-compose部署 vim docker-compose.yml version: 3 services:reference:container_name: referenceimage: registry.cn-beijing.aliyuncs.com/wuxingge123/reference:latestports:…...

Oracle VM(虚拟机)性能监控工具
Oracle VM是一个独立的虚拟化环境,由 Oracle 提供支持和设计,旨在为运行虚拟机提供轻量级、安全的基于服务器的平台。Oracle VM 能够在受支持的虚拟化环境中部署操作系统和应用软件,Oracle VM 将用户和管理员与底层虚拟化技术隔离开来&#x…...

1.8 python 模块 time、random、string、hashlib、os、re、json
ython之模块 一、模块的介绍 (1)python模块,是一个python文件,以一个.py文件,包含了python对象定义和pyhton语句 (2)python对象定义和python语句 (3)模块让你能够有逻辑地…...

iOS苹果签名共享签名是什么以及如何获取?
哈喽,大家好呀,咕噜淼淼又来和大家见面啦,最近有很多朋友都来向我咨询共享签名iOS苹果IPA共享签名是什么,针对这个问题,淼淼来解答一下大家的疑惑并告诉大家iOS苹果ipa共享签名需要如何获取。 现在苹果签名在市场上的…...
python爬虫下载音乐
本文使用创作助手。 你可以使用Python的requests库来实现爬虫下载音乐。以下是一个简单的示例代码: import requestsdef download_music(url, file_path):response requests.get(url)with open(file_path, wb) as file:file.write(response.content)print(f"…...

HarmonyOS实战开发-一次开发,多端部署-视频应用
介绍 随着智能设备类型的不断丰富,用户可以在不同的设备上享受同样的服务,但由于设备形态不尽相同,开发者往往需要针对具体设备修改或重构代码,以实现功能完整性和界面美观性的统一。OpenHarmony为开发者提供了“一次开发&#x…...

关于v114之后的chromedriver及存放路径
使用selenium调用浏览器时,我一直调用谷歌浏览器,可浏览器升级后,就会再次遇到以前遇到过的各种问题,诸如:1、怎么关闭浏览器更新;2、去哪儿下载chromedriver;3、114版本之后的驱动去哪儿下载&a…...

http模块 服务器端如何响应(获取)静态资源?
一、静态资源与动态资源介绍: (1)静态资源 内容长时间不改变的资源。eg:图片、视频、css js html文件、字体文件... (2)动态资源 内容经常更新的资源。eg:百度首页、淘宝搜索列表... 二、服…...

基于PHP的校园招聘管理系统
有需要请加文章底部Q哦 可远程调试 基于PHP的校园招聘管理系统 一 介绍 此校园招聘管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为个人用户,企业和管理员三种。 技术栈:phpmysqlbootstrapphpstudyvscode 二…...

LLMs 可能在 2 年内彻底改变金融行业
在艾伦图灵研究所(The Alan Turing Institute)最新的一项研究中,我们看到了大型语言模型(Large Language Models,LLMs)的一种可能性。它有望通过检测欺诈行为、生成财务洞察以及自动化客户服务,…...
nodejs 中 yarn的安装和使用
Yarn是一个快速、可靠、易于使用的包管理工具,它是Facebook、Google、Tencent等公司使用的默认JavaScript包管理工具。Yarn可以帮助开发者在项目中管理依赖,确保不同环境之间的依赖一致性,并且加速依赖的下载和安装。 安装Yarn Yarn支持多种操作系统,包括macOS、Linux和W…...

软件工程学习笔记14——案例解析篇
案例解析篇 一、大型开源项目对软件工程的应用1、开发迭代过程 二、大厂是怎样应用软件工程的1、软件项目开发团队组成(1)软件开发团队规模小(2)没有专职测试(3)DevOps 文化 2、开发工具的使用3、项目开发流…...

【文件操作API的使用】
1.概念 这对聪明的你们来说简直就是,对吗。 那什么是文件操作符,文件操作又有哪些步骤呢? 文件操作符通常用于指代在计算机编程中用于处理文件的特殊符号或标识符。在很多编程语言中,文件操作符被用于打开、关闭、读取和写入文件…...
C++ 让类只在堆或栈上分配
1. 让类只在栈上或堆上分配内存 在C中,类的对象建立分为两种: 一种是静态建立,如A a; 另一种是动态建立,如A* ptrnew A;这两种方式是有区别的。 1、静态建立类对象:是由编译器为对象在栈空间…...
SpringMVC源码分析(九)--返回值解析器
1.返回值解析器介绍 返回值解析器用于解析Hanlder执行方法后的返回结果,例如将方法上标注有@ResponseBody注解的返回值解析成JSON、将方法返回的字符串作为视图名等 SpringMVC中默认的返回值解析器见RequestMappingHandlerAdapter#getDefaultReturnValueHandlers private L…...
京西商城——创建订单和获取订单接口
在之前的写过的接口中,我先后用了基于View和APIView来编写视图类 基于APIView类的时候相对于View会有很多便捷,但其实drf还在APIView的基础上又封装了一个 GenericAPIView 类,会大大减少了在编写视图时的重复代码和在修改代码时的工作量。 G…...

大话设计模式之模板方法模式
模板方法模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...

idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...

《基于Apache Flink的流处理》笔记
思维导图 1-3 章 4-7章 8-11 章 参考资料 源码: https://github.com/streaming-with-flink 博客 https://flink.apache.org/bloghttps://www.ververica.com/blog 聚会及会议 https://flink-forward.orghttps://www.meetup.com/topics/apache-flink https://n…...

成都鼎讯硬核科技!雷达目标与干扰模拟器,以卓越性能制胜电磁频谱战
在现代战争中,电磁频谱已成为继陆、海、空、天之后的 “第五维战场”,雷达作为电磁频谱领域的关键装备,其干扰与抗干扰能力的较量,直接影响着战争的胜负走向。由成都鼎讯科技匠心打造的雷达目标与干扰模拟器,凭借数字射…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...
Pydantic + Function Calling的结合
1、Pydantic Pydantic 是一个 Python 库,用于数据验证和设置管理,通过 Python 类型注解强制执行数据类型。它广泛用于 API 开发(如 FastAPI)、配置管理和数据解析,核心功能包括: 数据验证:通过…...

【iOS】 Block再学习
iOS Block再学习 文章目录 iOS Block再学习前言Block的三种类型__ NSGlobalBlock____ NSMallocBlock____ NSStackBlock__小结 Block底层分析Block的结构捕获自由变量捕获全局(静态)变量捕获静态变量__block修饰符forwarding指针 Block的copy时机block作为函数返回值将block赋给…...
比较数据迁移后MySQL数据库和ClickHouse数据仓库中的表
设计一个MySQL数据库和Clickhouse数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...