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 &
    ## 查看启动后的pid
    pid=`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.war
    nohup 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博客

相关推荐
开开心心_Every7 分钟前
Win10/Win11版本一键切换工具
linux·运维·服务器·edge·pdf·web3·共识算法
啟明起鸣9 分钟前
【Nginx 网关开发】从源码分析 Nginx 的多进程启动原理
运维·nginx
怣5020 分钟前
Linux创意命令组合:让终端变得有趣又高效
linux·运维·服务器
啟明起鸣26 分钟前
【Nginx 网关开发】上手 Nginx,简简单单启动一个静态 html 页面
运维·c语言·前端·nginx·html
Tinyundg38 分钟前
Linux系统分区
linux·运维·服务器
要做一个小太阳41 分钟前
华为Atlas 900 A3 SuperPoD 超节点网络架构
运维·服务器·网络·华为·架构
江畔何人初1 小时前
service发现
linux·运维·云原生
life码农1 小时前
Linux系统清空文件内容的几种方法
linux·运维·chrome
zbguolei1 小时前
虚拟机安装Ubuntu后无法登录
linux·运维·ubuntu
UP_Continue1 小时前
Linux--基础IO
linux·运维·服务器