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

news/发布时间2024/5/16 7:53:22

目录

简介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.bcls.cn/PDqA/1894.shtml

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

相关文章

先进语言模型带来的变革与潜力

用户可以通过询问或交互方式与GPT-4这样的先进语言模型互动,开启通往知识宝库的大门,即时访问人类历史积累的知识、经验与智慧。像GPT-4这样的先进语言模型,能够将人类历史上积累的海量知识和经验整合并加以利用。通过深度学习和大规模数据训…

springboot访问webapp下的jsp页面

一,项目结构。 这是我的项目结构,jsp页面放在WEB-INF下的page目录下面。 二,file--->Project Structure,确保这两个地方都是正确的,确保Source Roots下面有webapp这个目录(正常来说,应该本来就有&#…

Unity3d Mesh篇(一)— 创建简单三角面

文章目录 前言一、Mesh组成二、使用步骤三、效果四、总结 前言 Mesh(网格)是一种常用的3D图形表示方法,它由顶点,法线,UV 坐标,和三角形等组成。您可以使用 Mesh 类的方法来创建或修改网格,也可…

【关于深度学习的一些资料】

曾梦想执剑走天涯,我是程序猿【AK】 目录 动手学深度学习Awesome Deep LearningTensorFlow Official ModelsPyTorch Image ModelsDeep Reinforcement LearningNeural Style Transfer 动手学深度学习 动手学深度学习 https://zh.d2l.ai/chapter_installation/index.…

QT-模拟电梯上下楼

QT-模拟电梯上下楼 一、演示效果二、核心程序三、下载链接 一、演示效果 二、核心程序 #include "ElevatorController.h" #include <QGridLayout> #include <QLabel> #include <QGroupBox> #include <QGridLayout> #include <QPushButto…

js设计模式:访问者模式

作用: 将操作方法封装在一个访问者对象中,而不是封装在每个被访问对象当中。 访问者对象可以通过调用被访问者的接口,用来操作被访问者。 示例: class App{accept(user){console.log(user,使用者)console.log(this,工具)user.use(this)}}class User{use(app){}}class Weixin…

kubernetes之证书更新

一、证书更新 kubernetes的证书存放在/etc/kubernetes/pki目录下,使用kubeadm alpha certs check-expiration&#xff0c;可查看证书有效时间 可以看出apiserver等证书有效期为一年&#xff0c;ca等证书有效期是10年. 二、重新编译kubeadm 部署go环境 打开Go下载 - Go语言中…

Docker基础篇(-)

docker 三个要素 镜像容器仓库 CentOS 6.8 安装 docker centos 7.0 yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager -y --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo systemctl start docker 启动Docker&…

IO进程线程day4作业

1、使用多进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;父进程回收子进程的资源 代码&#xff1a; #include<myhead.h> int main(int argc, const char *argv[]) {//定义两个文件指针FILE *fp1NULL;FILE *fp2NULL;//创…

MFC实现遍历系统进程

今天我们来枚举系统中的进程和结束系统中进程。 认识几个API 1&#xff09;CreateToolhelp32Snapshot 用于创建系统快照 HANDLE WINAPI CreateToolhelp32Snapshot( __in DWORD dwFlags, //指定快照中包含的系统内容__in DWORD th32P…

Code Composer Studio (CCS) - 全局搜索功能

Code Composer Studio [CCS] - 全局搜索功能 1. Ctrl H&#xff0c;全局搜索功能References 1. Ctrl H&#xff0c;全局搜索功能 References [1] Yongqiang Cheng, https://yongqiang.blog.csdn.net/

C++类和对象-C++对象模型和this指针->成员变量和成员函数分开存储、this指针概念、空指针访问成员函数、const修饰成员函数

#include<iostream> using namespace std; //成员变量 和 成员函数 分开储存的 class Person { public: Person() { mA 0; } //非静态成员变量占对象空间 int mA; //静态成员变量不占对象空间 static int mB; //函数也不占对象空间…

Spring最新核心高频面试题(持续更新)

1 什么是Spring框架 Spring框架是一个开源的Java应用程序开发框架&#xff0c;它提供了很多工具和功能&#xff0c;可以帮助开发者更快地构建企业级应用程序。通过使用Spring框架&#xff0c;开发者可以更加轻松地开发Java应用程序&#xff0c;并且可以更加灵活地组织和管理应…

【lesson51】信号之信号处理

文章目录 信号处理可重入函数volatileSIGCHLD信号 信号处理 信号产生之后&#xff0c;信号可能无法被立即处理&#xff0c;一般在合适的时候处理。 1.在合适的时候处理&#xff08;是什么时候&#xff1f;&#xff09; 信号相关的数据字段都是在进程PCB内部。 而进程工作的状态…

使用备份工具xtrabackup完成数据库的备份与恢复

安装备份工具xtrabackup 简介 它是开源免费的支持MySQL 数据库热备份的软件&#xff0c;它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份&#xff1b; 为mysql做增量备份&#xff1b;在mysql服务器之间做在线表迁移&#xff1b;使创建replica…

51_蓝桥杯_led流水灯

一 原理图分析 二 三八译码器工作原理 三八译码器&#xff1a;3个输入控制8路互斥的低电平有效输出。 C B A 输出 0 0 0 Y0 0 0 1 Y1 0 1 0 Y2 0 1 1 Y3 1 0 0 Y4 1 0 1 Y5 1 1 0 Y6 1 1 1 Y7 三 锁存器工作原理 锁存器&#xff1a;当使…

单例设计模式

单例设计模式是一种创建型设计模式&#xff0c;其主要目的是确保一个类只有一个实例&#xff0c;并提供全局访问点来访问该实例。这意味着无论在何处创建对象&#xff0c;都将获得相同的实例&#xff0c;确保系统中的唯一性。 结构 单例模式通常包含下面要素&#xff1a; 私…

flink多流操作(connect cogroup union broadcast)

flink多流操作 1 分流操作2 connect连接操作2.1 connect 连接&#xff08;DataStream,DataStream→ConnectedStreams)2.2 coMap&#xff08;ConnectedStreams → DataStream&#xff09;2.3 coFlatMap&#xff08;ConnectedStreams → DataStream&#xff09; 3 union操作3.1 u…

Imgui(2) | macOS 绘制 CPU 占用率曲线

Imgui(2) | macOS 绘制 CPU 占用率曲线 文章目录 Imgui(2) | macOS 绘制 CPU 占用率曲线0. 简介1. 绘制曲线 - 以正弦函数为例1.1 基于 sf::RectangleShape 的渲染 - 不好看&#xff0c;效率低1.2 基于 sf::VertexArray 的绘制 2. 获取和绘制所有 CPU 的占用率2.1 测试程序 - 用…

【机器学习笔记】11 支持向量机

支 持 向 量 机 &#xff08; Support Vector Machine,SVM &#xff09; 支 持 向 量 机 是 一 类 按 监 督 学 习 &#xff08; supervisedlearning&#xff09;方式对数据进行二元分类的广义线性分类器&#xff08;generalized linear classifier&#xff09;&#xff0c;其…
推荐文章