Linux环境搭建Jenkins(详细图文)

目录

简介Jenkins

特点

一、环境准备

1.jdk环境准备

2.maven环境准备

3.git环境准备

 二、安装部署Jenkins(采用war包方式)

1.下载Jenkins

​2.启动war包

1)将下载好的Jenkins的war包上传到服务器上

2)编辑启动脚本,方便

3)启动Jenkins的war

3.浏览器访问

4.插件安装

 5.创建管理员账号

6.登录Jenkins

三、卸载Jenkins

1.找到所有的Jenkins相关文件

2.删除找到的Jenkins文件

四、遇到的问题

问题描述:插件下载不下。报错如下图所示:

解决方法:手动下载插件更新


简介Jenkins

Jenkins 是一个流行的开源持续集成(CI)和持续交付(CD)工具,用于自动化软件开发中的构建、测试和部署过程。它可以帮助开发团队自动化构建、测试和部署他们的软件项目,从而加快开发周期并提高软件质量。

特点

  1. 持续集成:Jenkins 支持持续集成实践,可以在代码提交后自动触发构建和测试,确保团队成员的代码可以及时集成并检测潜在问题。

  2. 插件生态系统:Jenkins 拥有丰富的插件生态系统,可以轻松扩展其功能,满足各种不同项目的需求。

  3. 可视化构建流程:Jenkins 提供了直观的用户界面,可以帮助用户创建和管理复杂的构建流程,监控构建状态并查看构建日志。

  4. 分布式构建:Jenkins 支持分布式构建,可以将任务分配给多台计算机来加速构建过程。

  5. 通知与报告:Jenkins 可以通过各种渠道发送构建结果通知,同时提供详尽的构建报告和趋势分析。

一、环境准备

在部署Jenkins之前先在Linux的环境上安装部署以下环境。

1.jdk环境准备

java -version

若没有安装jdk,可以参考这篇博客安装:Linux环境下离线安装jdk1.8(内置最新的jdk安装包x64)_jdk1.8 linux 下载-CSDN博客

注意:如果你是jdk1.8版本,后续在下载Jenkins时,需要对应的版本。

2.maven环境准备

mvn -v

若没有安装maven,可以参考这篇博客安装:Linux环境安装Maven(详细图文)-CSDN博客

注意:如果你是jdk1.8版本,在下载maven时,需下载对应的版本。

3.git环境准备

git --version

 若没有安装git,可以参考这篇博客安装:Linux环境安装Git(图文详细)-CSDN博客

 二、安装部署Jenkins(采用war包方式)

1.下载Jenkins

官方下载地址:https://www.jenkins.io/zh/download/
各个版本Jenkins的war包下载地址(对应Jenkins需要的jdk版本):https://mirrors.jenkins.io/war-stable/
一般选择稳定版,由于目前使用的是jdk8环境,所以只能选择2.346及其以下版本的。选择2.346.1版本。

也可参考官网提供的Jenkins的方式进行安装部署Jenkins。

 下载Jenkins的war包

​ 2.启动war包

1)将下载好的Jenkins的war包上传到服务器上

作者是将Jenkins的war包放在/data/jenkins目录下。

2)编辑启动脚本,方便

在/data/jenkins/同目录下,编辑启动脚本

vim start.sh

#!/bin/bash## war包名称
JAR_NAME="jenkins.war"## 查找是否有运行的jenkins.war 返回pid
pid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`## 输出的日志位置 如果报文件不存在,就在jenkins目录下touch nohup.out,就ok了
LOG_PATH=/data/jenkins/nohup.out## 如果pid不存在,说明没有正在运行的jenkins.war,直接启动
if [ -z $pid ]; then## 台运行 jenkins.war --httpPort指定端口8080 ,如果端口被占用了,可指定其他端口## 因为我使用了nginx代理端口,所以使用 --prefix 指定了请求前缀为/jenkins 这个需要在nginx中配置相同前缀/jenkins,就可以外网访问jenkins了## 如果没有使用反向代理,就不需要添加 --prefix="/jenkins" 这一截nohup java -jar $JAR_NAME --httpPort=8080 --prefix="/jenkins"  > $LOG_PATH 2>&1 &## 查看启动后的pidpid=`ps -ef | grep $JAR_NAME | grep -v grep | awk '{print $2}'`echo "Service ${JAR_NAME} is started!pid=${pid}"## 动态查看启动日志tail -f ${LOG_PATH}
## 如果pid存在,说明有正在运行的jenkins.war,需要先杀掉这个进程,再重新启动jenkins.war
else## 杀掉已有进程kill -9 $pid## 重新运行jenkins.warnohup java -jar $JAR_NAME --httpPort=8080 --prefix="/jenkins"  > $LOG_PATH 2>&1 &echo "Service ${JAR_NAME} is restarted!pid=${pid}"tail -f ${LOG_PATH}
fi

 保存并退出。

设置脚本权限

chmod +x start.sh

3)启动Jenkins的war

./start.sh

3.浏览器访问

在浏览器中输入:ip+端口/jenkins 加Jenkins的后缀目的是为了方便统一管理。

输入密码之后,进行下一步。

4.插件安装

插件安装:可以安装推荐的,也可以自定义安装选择git对应的几个插件(Deploy to container Plugin、Git Parameter Plug-In、Git plugin、GIT server Plugin、GitHub Authentication plugin、GitHub API Plugin、GitHub Organization Folder Plugin、GitHub plugin等),以及Maven Integration。推荐安装的话,等待Jenkins安装完成,如果有安装不上的插件,暂时不管,后面也是我遇到的问题,按照后续思路解决即可。

 5.创建管理员账号

可以直接使用admin账号快速注册或者你可以自定义一个管理员用户,自己记住。

 安装完成,开始使用。

6.登录Jenkins

输入账号密码进行登录。

Jenkins的首页如下图所示,如果你不喜欢英文版的Jenkins,可以在Manage Jenkins插件管理中下载中文插件。

三、卸载Jenkins

1.找到所有的Jenkins相关文件

find / -name "jenkins*"

2.删除找到的Jenkins文件

从目录来看,基本上所有的Jenkins相关文件都在/root/.jenkins/ 目录所以直接删除这个目录即可。

rm -rf /root/.jenkins

四、遇到的问题

问题描述:插件下载不下。报错如下图所示:

在网上找了许多解决方法,说网络不行更换插件下载镜像源,(直接用清华镜像源https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/),试过之后,仍然是一样的问题。

解决方法:手动下载插件更新

插件下载地址:Index of /download/plugins

根据你的报错信息搜索插件:比如我的有Mina SSHD API :: Core报错,就在如下界面搜索

注意:作者在直接下载mina-sshd-api-core时不成功,需要先下载mina-sshd-api-common,再下载需要的。

进入下载不是最新版本的插件。如下图所示:

下载之后如下:

在Jenkins的Manage Jenkins界面找到Manage Plugins进入

 

下滑找到如图所示:

如果安装过程中遇到如下图所示:有很多错,需要从上错误的插件依次下载,可以点击详情查看,然后根据插件地址 下载符合我们Jenkins版本即可。

 重新上传对应下载的插件,即可安装成功。

等待安装完成,注意勾选重启Jenkins使插件生效。之后再去插件管理搜索我们的插件,可以看见已经安装成功了。

到此这个问题就解决了,如果你报错的插件比较多,再这里你就按照上述步骤进行一个一个的插件下载,就是费时间需要耐心,但是这种方式100%成功。

参考博客:

Jenkins安装插件失败问题解决方案(必定有效)_this version of the plugin exists but it is not be-CSDN博客

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

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

相关文章

微信私信短剧机器人源码

本源码仅提供参考,有能力的继续开发 接口为api调用 云端同步 https://ys.110t.cn/api/ajax.php?actyingshilist 影视搜索 https://ys.110t.cn/api/ajax.php?actsearch&name剧名 每日更新 https://ys.110t.cn/api/ajax.php?actDaily 反馈接口 https://ys.11…

Python图像处理:1.插值、频域变换与对比度增强

一、几何变换 7.图像的插值 (1)原理介绍 下面对比三种插值方法,分别是最近邻插值法、双线性插值法、卷积插值法,三种方法的前提和特点、优缺点、适用场景如下: 最近邻插值(Nearest Neighbor Interpolation)&#xf…

Kotlin dist downloading failed

现象: 在使用AndroidStudio编写Flutter项目时总是在工具的右下角提示错误信息 该问题通常在刚刚打开AndroidStudio时报出,但可以正常编译和运行flutter项目即Android项目 分析:Flutter项目组认为这是AndroidStudio工具平台本身的问题非Flut…

Spring Boot整合zxing实现二维码登录

zxing是google的一个二维码生成库,使用时需配置依赖: implementation("com.google.zxing:core:3.4.1") implementation("com.google.zxing:javase:3.4.1") zxing的基本使用 我们可以通过MultiFormatWriter().encode()方法获取一个…

CSS顶部与JS后写:网页渲染的奥秘

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

惬意上手MySQL

大家好,我又来写博客了,今天给大家介绍一下MySQL,如果你只想让MySQL作为自己的辅助开发工具,那这一篇文章就够了,如果想作为一门语言来学习,那你可以看此文章了解一些基础。 MySQL介绍 数据库可分为关系型数据库和非关…

时间序列-AR MA ARIMA

一、AR模型(自回归) AR探索趋势和周期性 预测依赖于过去的观测值和模型中的参数。模型的阶数 p pp 决定了需要考虑多少个过去时间点的观测值。 求AR模型的阶数 p和参数 ϕ i \phi_i ϕi​ ,常常会使用统计方法如最小二乘法、信息准则(如AIC、BIC&#xf…

【牛客】VL69 脉冲同步器(快到慢)

描述 sig_a 是 clka(300M)时钟域的一个单时钟脉冲信号(高电平持续一个时钟clka周期),请设计脉冲同步电路,将sig_a信号同步到时钟域 clkb(100M)中,产生sig_b单时钟脉冲信号…

SpringMVC07、整合SSM

7、整合SSM 7.1、环境要求 环境: IDEAMySQL 5.7.19Tomcat 9 Maven 3.6 要求: 需要熟练掌握MySQL数据库,Spring,JavaWeb及MyBatis知识,简单的前端知识; 7.2、数据库环境 创建一个存放书籍数据的数据库…

文本生成视频:从 Write-a-video到 Sora

2024年2月15日,OpenAI 推出了其最新的文本生成视频模型——Sora。Sora 能够根据用户的指令生成一分钟长度的高质量视频内容。这一创新的发布迅速在社会各界引发了广泛关注与深入讨论。本文将围绕本实验室发表于SIGGRAPH AISA 的 Write-a-video和 Sora 展开&#xff…

anaconda和pycharm安装(windows10 )

1、anaconda安装 anaconda是一个软件发行版。软件发行版是一个预先建立和配置好的packages的集合,可以被安装在操作系统上,并被使用。Anaconda是由Anaconda公司开发的,一个包含PyData生态中的核心软件的完全发行版,它包含了Python…

LC打怪录 数组array

数组(Array) definition: 一种线性表数据结构。它使用一组连续的内存空间,来存储一组具有相同类型的数据。 如上图所示,假设数据元素的个数为 nnn,则数组中的每一个数据元素都有自己的下标索引,下标索引从…

基于机器学习的工业用电量预测完整代码数据

视频讲解: 毕业设计:算法+系统基于机器学习的工业用电量预测完整代码数据_哔哩哔哩_bilibili 界面展示: 结果分析与展示: 代码: from sklearn import preprocessing import random from sklearn.model_selection import train_test_split from sklearn.preprocessing…

超网、IP 聚合、IP 汇总分别是什么?三者有啥区别和联系?

一、超网 超网(Supernet)是一种网络地址聚合技术,它可以将多个连续的网络地址合并成一个更大的网络地址,从而减少路由表的数量和大小。超网技术可以将多个相邻的网络地址归并成一个更大的网络地址,这个更大的网络地址…

从零开始:神经网络(1)——神经元和梯度下降

声明:本文章是根据网上资料,加上自己整理和理解而成,仅为记录自己学习的点点滴滴。可能有错误,欢迎大家指正。 一. 神经网络 1. 神经网络的发展 先了解一下神经网络发展的历程。从单层神经网络(感知器)开…

excel统计分析——嵌套设计

参考资料:生物统计学,巢式嵌套设计的方差分析 嵌套设计(nested design)也称为系统分组设计或巢式设计,是把试验空间逐级向低层次划分的试验设计方法。与裂区设计相似,先按一级因素设计试验,然后…

高度塌陷问题及解决

什么情况下产生 (when 父盒子没有定义高度&#xff0c;但是子元素有高度&#xff0c;希望用子盒子撑起父盒子的高度&#xff0c;但是子盒子添加了浮动属性之后&#xff0c;父盒子高度为0 <template><div class"father"><div class"son"&…

R统计学2 - 数据分析入门问题21-40

往期R统计学文章&#xff1a; R统计学1 - 基础操作入门问题1-20 21. 如何对矩阵按行 (列) 作计算&#xff1f; 使用函数 apply() vec 1:20 # 转换为矩阵 mat matrix (vec , ncol4) # [,1] [,2] [,3] [,4] # [1,] 1 6 11 16 # [2,] 2 7 12 17 # [3,] …

了解华为(PVID VLAN)与思科的(Native VLAN)本征VLAN的区别并学习思科网络中二层交换机的三层结构局域网VLAN配置

一、什么是二层交换机&#xff1f; 二层交换机&#xff08;Layer 2 Switch&#xff09;是一种网络设备&#xff0c;主要工作在OSI模型的数据链路层&#xff08;第二层&#xff09;&#xff0c;用于在局域网内部进行数据包的交换和转发。二层交换机通过学习MAC地址表&#xff0…

codeforcesABC

A A. Marathon time limit per test 1 second memory limit per test 256 megabytes input standard input output standard output DeepL 翻译  A.马拉松 每次测试的时间限制&#xff1a;1 秒 每次测试的内存限制&#xff1a;256 兆字节 输入&#xff1a…