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)是一种行为设计模式,它定义了一个算法的框架,将特定步骤的实现延迟到子类中。模板方法模式通过在父类中定义算法的骨架,而将具体步骤的实现留给子类来完成,从而使子类…...
新model开发记录
模型使用 -- 用blender导出为 fbx ,修改渲染方式(点击模型->Materials->Extract Materials(将材质从fbx中 单独提取出来了)->Materials 选择 Shader -> SimpleURPToonLitExample 点开脸的材质,勾选第一条) 解决角色…...
ARMday1
1.总结keil5下载代码和编译代码需要注意的事项 答:下载代码时,确保stlink的驱动有效、魔术棒中硬件型号的连接 编译代码时,先将配置魔术棒里Debug中的Setting,将Flash中Reset and Run勾选上,并去除pack中的Enab…...
【C++风云录】创造视觉奇迹:探索C++图形编程的魅力与可能性
图形与界面:从SFML到Allegro,探索C图形编程的世界 前言 随着计算机图形技术和界面设计的快速发展,图形编程在软件开发中变得越来越重要。C作为一种功能强大的编程语言,为开发人员提供了丰富的图形编程工具和库。本文将介绍几个流…...
常见的Nginx+Redis+MQ+DB架构设计
三高,复杂的架构 SQRS CAP 缓存,限流 【Redis,缓存】 cache-aside 缓存cache:数据源的副本 store 1. Read/Write Through Pattern 读写穿透模式 redis:放当前在线用户,热点数据...
vue+elementUI搭建动态表头的表格
前提:以下代码是vue2项目结合elementUi完成的 数据结构 后端传来的数据是两个list,一个表头的list,一个表格内容的list // 表头 headTableAtts: [{ columnLabel: 姓名, columnName: name },{ columnLabel: 年龄, columnName: age },{ colu…...
【ENSP】交换机和交换机之间实现静态路由
1.概念 三层交换机只能在Vlanif逻辑口配置iP地址 2.实现方法 交换机允许对应vlan通行,配置vlanif的ip地址,做静态路由 3.静态路由配置方法 ip route-static 目的网段 子网掩码 下一跳设备 LSW1三层交换机配置 u t m sys vlan batch 10 20 …...
2024.2.18力扣每日一题——N叉树的前序遍历
2024.2.18 题目来源我的题解方法一 深度优先遍历(递归方式)方法二 迭代方式(栈实现) 题目来源 力扣每日一题;题序:589 我的题解 方法一 深度优先遍历(递归方式) 与二叉树的前序遍…...
Taro活动列表中,对某一个活动添加分享按钮
采用data-留下分享链接的拼接参数 1.在item文件中写按钮 openType“share” <ButtonclassName{classes.rowRightShareButton}openType"share"data-share-transfer-id{lastGiftingTransferId}data-share-picture-url{shareUrl}data-share-title{shareTitle}onClic…...
深入理解计算机系统 家庭作业 2.65
/* 异或运算可以把同为1时变成0。 */ #include <stdio.h> #include <stdlib.h> int odd_ones(unsigned x); int main(void) { int x0xF00000016; printf("x的奇数位:%d",odd_ones(x)); return 0; } int odd_ones(unsigned x) { char…...
Java字节码
Java Agent概述 Java Agent是一种特殊类型的软件组件,它允许在Java虚拟机(JVM)运行时修改应用程序的字节码。这种技术通常用于性能监控、日志记录、系统调试等。Java Agent主要分为两类: 1. 启动时加载的Agent(Pre-Ma…...
广水做网站/中国2022年重大新闻
要带本科毕设嘛,所以对这个要多少了解一下,然后就搜索了一下,之前搜索过一次,没发现什么啊,这次一搜索发现不错的东西,特此记录,主要是转载。以下内容转载自CVPR 2019轨迹预测竞赛冠军方法总结赛…...
网站 个人 公司 区别/查关键词热度的网站
9月6日匆匆返回学校参加阿里和华为的面试和笔试。阿里直接一面杯具,华为杯具的提交错文件,肯定0分了。还得墙面。 这份题目是9月7日下午最后一批的上机题,应该是两天来笔试中难度最大的,第一天和第二天上午的题都比较简单…...
wordpress表格css样式表/网络营销公司是做什么的
Python编码问题一直困扰了我许久,之前有过一些总结,但并不系统,比较凌乱。当然python2.x编码问题本身,便是剪不断理还乱。本篇将系统介绍python2.x编程中会遇到的一些编码问题,并给出解决方案。基于对编码问题的摸索了…...
亚马逊网站建设的意义/总排行榜总点击榜总收藏榜
【http://msdn.microsoft.com/zh-cn/library/bb861909.aspx】 在 Microsoft SharePoint Foundation 中,修改 web.config 设置的一种方法是使用 Microsoft.SharePoint.Administration 命名空间的 SPWebConfigModification 类,这使得您能够动态地对实体进行…...
wordpress破解汉化版/重庆seowhy整站优化
Jetty的首页地址是http://www.mortbay.org/jetty/,点击Downloads进入下载介绍页面,由于Jetty7之后,托管服务有Eclipse接替,所以jetty6.1之前(包含6.1)继续由Codehaus提供下载服务,在该页面的下方有如下信息:…...
上海2023年建管平台放假时间/湖南seo优化
整理了一些常用的SuSE Linux Gnome桌面快捷键,希望对大家有用!快捷键ctrlshiftf (窗口全屏)ctrlshiftn (新建konsole窗口)ctrlshift (调整窗口字体大)ctrlshift- (调整窗口字体小)ctrlshift0 (调整窗口字体正常)ctrlaltf1 (终端1)ctrlaltf2 (终端2)ctrla…...