linux离线安装jenkins及使用教程

这篇具有很好参考价值的文章主要介绍了linux离线安装jenkins及使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本教程采用jenkins.war的方式离线安装部署,在线下载的方式会遇到诸多问题,不宜采用

基本环境:

  1.jdk环境,Jenkins是java语言开发的,因需要jdk环境。

  2.git/svn客户端,因一般代码是放在git/svn服务器上的,我们需要拉取代码。

  3.maven客户端,因一般java程序是由maven工程,需要maven打包,当然也有其他打包方式,如:gradle

一、下载地址

地址:Jenkins download and deployment

下载最新的长期支持版

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

由于jenkins使用java开发的,所以需要安装的linux服务器装有jdk环境,并且jdk版本支持你所安装的jenkins版本

点击 Hardware and Software requirements,查看下载前的软硬件要求

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击 Java Requirements

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

根据所下载的长期支持的jenkin版本区间 ,判定支持的jdk版本

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

因为笔者下载的的是 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 链接

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

找到对应的版本下载即可 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 二、上传jenkins.war包

笔者是安装在 /opt下,创建 jenkins文件夹,使用最高权限root用户登录linux服务器

cd /opt

sudo mkdir jenkins
ll

依次输入以上三条命令 

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

进入新创建的jenkins文件夹 

cd  jenkins 

笔者使用的是FinalShell工具上传jenkin.war,一款国产免费的linux服务器 连接工具,功能强大,不过有安全性问题不推荐生产环境使用,推荐使用Xshell和Xftp组合工具

进入jenkins文件夹后可以看到上传的jenkins.war包

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

三、启动jenkins

先约定jenkins的启动端口为9007,实际自行更改,保证端口不冲突即可 

查看防火墙状态

systemctl status firewalld

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

防火墙开启状态,则开通 9007 端口 访问权限,并重载防火墙

-- 开通 9007 端口 访问权限

sudo firewall-cmd --permanent --add-port=9007/tcp

-- 重载防火墙

sudo firewall-cmd --reload

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

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. &: 最后的&符号用于将整个命令放入后台运行,使得命令执行后,控制台立刻返回到可输入状态,而无需等待该命令执行完毕

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

出现以上信息说明 jenkins启动成功 ,即使终端关闭也可以

初始用户名和密码 为 admin    103ed60c535f4c8daec0d81d66b9ea9d

初始admin用户密码如果忘记,则去  /root/.jenkins/secrets/initialAdminPassword 中寻找

使用  tail -f  /root/.jenkins/secrets/initialAdminPassword  打开可以看到存储的初始jenkins密码

linux离线环境安装jekenis,系统安装部署搭建,linux,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 键 输入以下内容 ,红色部分为需要根据自己对应环境路径自行修改

jenkins的主目录默认为 /root/.jenkins,你也可以在如下命令中加入红色部分改变jenkins的默认主目录,一般情况下不需要改,用默认的就可以

nohup $JAVA_HOME/bin/java -DJENKINS_HOME=/usr/local/jenkins -jar /opt/jenkins/jenkins.war>/opt/jenkins/jenkins.log --httpPort=9007  2>&1 &

#!/bin/bash
#主要目的用于开机启动服务,不然 启动jenkins.war包没有java -jar的>权限
JAVA_HOME=/usr/local/jdk/jdk-21.0.2


pid=`ps -ef | grep jenkins.war | grep -v 'grep'| awk '{print $2}'| wc -l`
  if [ "$1" = "start" ];then
  if [ $pid -gt 0 ];then
  echo '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 &
  fi
  elif [ "$1" = "stop" ];then
  exec ps -ef | grep jenkins | grep -v grep | awk '{print $2}'| xargs kill -9
  echo 'jenkins is stop..'
else
  echo "Please input like this:"./jenkins.sh start" or "./jenkins stop""
  fi

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

按下 esc键,输入 :wq 保存退出,键入以下命令赋予脚本可执行权限

chmod +x /opt/jenkins/jenkins.sh

4.2 检测jenkins.sh 脚本

在当前jenkins目录下输入

./jenkins.sh stop 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

浏览器刷新访问jenkins地址,无法访问

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

再输入启动命令启动

 ./jenkins.sh start

浏览器再次刷新发现启动成功 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

以上说明编写的 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 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

设置开机自启动

systemctl enable jenkins.service 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

查看开机自启动的服务列表

systemctl list-units --type=service

看到已存在jenkins.service服务 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

输入 reboot重启验证,访问jenkins地址,开机自启动成功

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

五、jdk环境准备

请移步这篇文章:

linux离线安装jdk-CSDN博客

六、git环境准备 

关于linux系统安装git,请参考笔者这篇博客:

linux安装git-CSDN博客

七、maven安装

maven安装linux参考博客:

linux离线安装maven-CSDN博客

八、nodejs安装

nodejs安装参考笔者这篇文章

linux离线安装NodeJs-CSDN博客

九、nginx安装

nginx安装参考笔者这篇博客

linux系统离线安装nginx-CSDN博客

十、jenkins使用

10.1 登录jenkins

 浏览器打开jenkins访问地址,

http://ip:port

笔者的地址为:http://192.168.19.16:9007

输入之前记录的密码 :103ed60c535f4c8daec0d81d66b9ea9d

或者执行命令查看初始密码

tail -f /root/.jenkins/secrets/initialAdminPassword

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

安装插件,这里要求服务器处于联网状态,自动下载相关插件

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维  

创建新用户,这里如果选择额使用admin账户继续,那么就不需要填写创建第一个管理员用户的信息了,因为不会创建,唯一的初始用户只有admin 

但如果选择保存并完成,那么admin账户会消失,唯一的初始管理员用户会是你创建的这个用户

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

这里的地址不用修改,就是jenkins的访问地址

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.2 新建管理员权限用户 

继续往下点

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击用户列表,可以看到就一个admin用户,之前创建的管理员用户没成功,应该是笔者点了使用admin账户继续导致

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击系统管理 ,点击管理用户

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 create user

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 可以看到新建了一个用户,如果想要修改密码等信息,点击编辑按钮进入修改即可

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.3 插件下载

jenkins要用来构建前后端项目

nodejs              # 构建前端项目
maven integration   # 构建后端项目
webhook             # 自动化构建(网络钩子)

gitLab Plugin  #gitLab插件
git plugin          # 基础git
publish over ssh    # 连接远程服务器

Git Parameter # git参数化构建插件

Localization: Chinese(Simplified) #汉化插件

Generic Webhook Trigger  #webhook钩子自动构建

 点击系统管理->插件管理
linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击Avaliable plugins,需要什么插件,搜索下载安装即可 ,有的插件需要重启jenkins才能生效,比如maven

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

插件装好后,需要进行全局配置

10.4 全局配置 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.4.1 maven配置

这里配置的路径是你jenkins所在linux服务器中,安装的maven里settings.xml的路径,笔者是安装在这个路径下

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.4.2 JDK安装

笔者安装的是jdk-21.0.2,JAVA_HOME路径如下,按照jenkins服务器安装的jdk路径填写,这里如果填写的不对,会有错误提示

自动安装不需要打勾

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.4.3 git 安装

笔者在安装git时,把git的安装在 /usr/local/git路径下了。

linux安装git-CSDN博客

下图为笔者在安装git时设置的安装路径

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

但是实际的git执行路径需要到服务器上执行which git寻找

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 10.4.4 maven安装

按照maven的安装路径来

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.4.5 nodejs安装 

一样的,按照linux服务器安装的nodejs路径填写

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

以上设置完后,点击应用

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.5 系统配置 

点击进入系统配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

新增三个环境变量分别填写如下信息,应用即可

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.6 后端任务构建

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 输入项目名称,选择构建maven项目,点击确定

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击DashBoard 回到主界面,可以看到新建的后端构建任务

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维10.6.1  编辑后端任务构建配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击配置 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 这里按需填写,主要是构建的天数和构建记录的保存个数

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 这个参数化设置可以不勾选设置(一般是不设置的,这里只是为了说明),默认分支选择main分支(旧版的gitLab默认分支是master),git

参数名称也可以设置成其他的比如branch

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

这里填写上项目的gitLab拉取地址后,报错无法连接

是因为下面的凭据没有填写 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击Credentials的添加按钮,填写上拥有项目拉取权限的用户名和密码,点击添加

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维 发现不报错了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

下面的这里,如果之前的参数化设置勾选并设置了参数名称version,这里就写${version},参数名称是branch,这里就是${branch},否则填写上拉取的指定分支 */main 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

clean package -Dmaven.test.skip=true

这句话意思是清理旧文件,跳过测试,直接打包

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维 点击保存

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

9.8 构建后端任务

点击DashBoard返回到主界面,点击构建

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点进去查看构建进程 

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 可以看到已经构建成功了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

我们去jenkins所在服务器的 /root/.jenkins/workspace/redis-demo/target 文件夹下查看 到构建后的jar包

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.6.2 部署到远程服务器

以上的步骤只是jenkins完成了代码拉取,自动打包构建的过程,实际场景中我们还需要把打包好后的jar包发送到远程服务器,并执行启动命令 启动服务

10.6.2.1 添加远程服务器ssh

点击系统管理,点击系统配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

拖到最底部,点击新增SSH server 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

这里的192.168.19.16就是笔者要发送到的远程linux服务器地址,采用root用户登录,指向的文件夹路径为根路径 /  下面

勾选使用密码授权登录方式,输入root用户登录密码

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

连接远程linux服务器的默认端口号是22不用修改,超时时间设置为300秒 (自行决定)

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

笔者这里只配置了一个ssh服务器,如果有多个服务器,则都在这里添加上,方便后面部署各种项目用到不同服务器

10.6.2.2 添加构建后操作

配置构建任务的构建后操作,即把jar包发送到远程服务器的指定路径下,并启动

点击当前任务

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击配置 

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

拖到底部,点击增加构建后操作步骤 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

配置一台远程服务器的信息

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

说明:

 Name:这里是之前在系统管理->系统配置里添加的远程服务器,是下拉选择的,需要远程部署的服务器

source files:这是相对路径,构建的时候可以看到Jenkins把从git上拉取的代码打包放到

/root/.jenkins/workspace/redis-demo/target/ 路径下了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

当前相对路径的根路径其实就是我们新建的 /root/.jenkins/workspace/redis-demo/下

在工作空间上看到

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

所以jar包的相对路径就是 target/redis-demo-0.0.1.jar

Remove prefix:这个没什么好说的,移除前缀,就是jenkins把主目录工作空间下的jar包发送到远程服务器指定路径下时只发送jar包,如果不把target/去除,那就会在指定路径下创建target文件夹,然后再发送jar包到target下,看下图

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

这显然不符合要求了,所以需要移除 target/ 

Remote directory:远程服务器的指定路径,笔者让jenkins把jar包发送到远程服务器的 /opt/softs 指定路径下,前提是要有这个路径,先去远程服务器创建好

cd /opt

sudo mkdir softs

 笔者专门为微服务写了一个执行脚本放在远程服务器 /opt/softs 路径下,和jar包放在一起

cd /opt/softs

vim redisDemo.sh

填入如下命令

#!/bin/bash

#定义微服务相关参数
SERVICE_NAME="redis-demo"
JAR_FILE="/opt/softs/redis-demo-0.0.1.jar"
LOG_FILE="redisDemo.log"
JAVA_OPTS="-Xmx2048m -Xms64m" # 可根据实际需求调整JVM内存设置
RUNNING_USER="root" # 运行微服务的用户,确保该用户存在并有适当权限

# 检查是否已设置JAVA_HOME环境变量
if [ -z "$JAVA_HOME" ]; then
    echo "java 环境变量未设置"
    exit 1
fi

# 启动微服务
function start_service {
    echo "Starting $SERVICE_NAME..."
    if [ "$(id -u)" != "$RUNNING_USER" ]; then
        sudo -u $RUNNING_USER sh -c \
            "nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $JAR_FILE > $LOG_FILE 2>&1 & echo \$! > /var/run/$SERVICE_NAME.pid"
    else
        nohup $JAVA_HOME/bin/java $JAVA_OPTS -jar $JAR_FILE > $LOG_FILE 2>&1 &
        echo $! > /var/run/$SERVICE_NAME.pid
    fi
    echo "$SERVICE_NAME started with PID `cat /var/run/$SERVICE_NAME.pid`."
}

# 停止微服务
function stop_service {
    echo "Stopping $SERVICE_NAME..."
    if [ ! -f "/var/run/$SERVICE_NAME.pid" ]; then
        echo "$SERVICE_NAME is not running."
        return 1
    fi

    local pid=$(cat /var/run/$SERVICE_NAME.pid)
    kill -15 $pid || kill -9 $pid
    rm -f /var/run/$SERVICE_NAME.pid
    echo "$SERVICE_NAME stopped."
}

# 检查服务是否正在运行
is_service_running() {
    if [ -f "/var/run/$SERVICE_NAME.pid" ] && kill -0 $(cat /var/run/$SERVICE_NAME.pid) &> /dev/null; then
        return 0
    else
        return 1
    fi
}

# 重启微服务
function restart_service {
    if is_service_running; then
        stop_service
    fi
    start_service
}

# 判断传入的操作类型
case "$1" in
    start)
        start_service
        ;;
    stop)
        stop_service
        ;;
    restart)
        restart_service
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}"
        exit 1
esac

exit 0

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

Exec command:这个是最重要的执行启动服务的sh脚本了

source /etc/profile
cd /opt/softs
chmod 755 redisDemo.sh
sh /opt/softs/redisDemo.sh restart

依次是 刷新环境变量

执行脚本授权

执行脚本启动命令

10.6.2.3 构建后端任务并发布远程服务器启动

保存后去点击构建

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

笔者的jar包,端口设置的是 8888

去远程服务器的 /opt/softs 文件夹下查看

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

查看端口 8888 是否启动

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

至此后端项目构建成功了

浏览器访问下后端get类型接口成功了(注意服务的端口8888,linux要开放)

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

服务器日志 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.7 前端任务构建 

10.7.1 新建前端任务

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击确定,点击Dashboard(笔者是已经构建成功后的截图),可以看到新建的前端项目任务

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 10.7.2 编辑前端任务构建配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

然后是配置从git拉取前端代码 ,分支选择的是main分支,自行决定代码用于什么环境,就配哪个环境的分支

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

构建环境,这里红框部分必须勾选,配上之前的node环境变量,如果不设置,下面的执行npm相关命令会不成功

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 点击增加构建步骤

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

cd /root/.jenkins/workspace/web-project
/opt/nodejs/node-v16.20.2/bin/node /opt/nodejs/node-v16.20.2/bin/npm install
/opt/nodejs/node-v16.20.2/bin/node /opt/nodejs/node-v16.20.2/bin/npm run build
tar -czvf dist.tar.gz -C ./dist . 

这里解释下命令

第一行是进入当前jenkins工作目录的当前构建任务文件夹下

第二行是执行npm install,路径根据服务器上解压的node路径来,要写绝对路径

第三行是把从git拉过来的前端代码文件,执行打包构建命令,笔者的前端是一个最基础的vue3项目,如果不做配置,打包后的文件都放在了一个叫dist文件中,本地打包的截图

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

第四行是压缩命令,遍历dist文件夹下的子目录并压缩成名为dist.tar.gz的压缩包,

注意,如果是 tar -czvf dist.tar.gz ./dist 这个命令,则压缩的是一整个dist文件夹,而不是dist文件下的子内容

最后是构建后操作

这里服务器和后端是用的同一台,如果前端需要部署在其他远程服务器上,则参照10.6.2.1配置ssh服务器,在这里就可以下拉选择了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维 Source files:前端任务的工作空间目录在 /root/.jenkins/workspace/web-project 下,压缩后的压缩包就在这个目录下

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 这里和后端不一样的地方是,后端打jar包后还有个target文件夹,多一层,这里没有

Remove prefix:这里不需要填写需要移除的前缀了

Remote directory:这里是要把压缩包发送到服务器上的nginx安装路径下,根据自己的nginx安装路径来配置

Exec command

cd /usr/local/nginx/html/
tar -zxvf dist.tar.gz -C /usr/local/nginx/html/
rm -rf dist.tar.gz

主要是解压命令

以上文件编辑好后,点击保存

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 10.7.3 构建前端任务,发布远程服务器

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

查看控制台输出,构建成功

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

去远程服务器 nginx路径看下,发布远程服务器成功了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

10.7.4 nginx前端访问

笔者之前安装的nginx端口改成了8081,8081端口放开防火墙限制

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

这里能直接访问,和配置文件里的默认配置有关

cd /usr/local/nginx/conf

vim nginx.conf 

看下nginx的配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

root html,Nginx会在其安装路径下寻找一个名为html的目录 ,就找到了 /usr/local/nginx/html下,如果是放在其他地方,root后面可以修改成你的前端文件所在路径

index  index.html index.htm,这个是前端界面入口文件,一般前端打包后默认的就是这个,当然这个是可以修改的,不一定非得叫index.html,这里贴一段解释

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

再看location /

在Nginx的配置文件中,location /指令表示对web服务器根路径的匹配。也就是说,任何对服务器的请求都会匹配到这个location块。这通常用于设置网站的根访问路径。

server {
    listen 80;
    server_name example.com;

    location / {
        # 这里可以配置处理根路径请求的相关指令
    }

    location /images {
        # 这里配置处理/images路径的相关指令
    }

    location /api {
        # 这里配置处理/api路径的相关指令
    }
}

http://192.168.19.16:8081请求会匹配到 location /,

http://192.168.19.16:8081/api/... 会匹配到location /api

主要是做请求转发,这里也可以用来代理后端地址的,其后端同时代理,一般按如下配置

server {
    listen 8081;
    server_name example.com;

    # 前端代理
    location / {
        root /path/to/frontend;  # 指定前端项目的根路径
        index index.html;  # 指定默认的首页文件
        try_files $uri $uri/ /index.html;  # 配置SPA应用的路由
    }

    # 后端API代理
    location /api {
        proxy_pass http://backend-api-server;  # 指定后端API服务器地址
    }
}

十一、前后端任务构建远程部署整合

笔者做了个测试把这两个前后端构建任务结合起来部署运行

以下是nginx配置

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

 可以看到调用的后端服务端口是8888

http://192.168.19.16:8081/api/redisTest请求会被替换成

http://192.168.19.16:8888/api/redisTest

微服务环境下这里会配置成gateway网关地址,请求到达后端时,会根据请求路径分发到具体不同的服务中去

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

笔者的后端服务用到了redis,需要linux服务器安装redis,具体参考笔者的这篇redis教程

linux离线安装redis-CSDN博客

如果不想装redis,自己把后端代码redis相关调用去掉即可

前后端代码已上传gitee

前端:buxingzhe/web-project

后端:buxingzhe/redis-project

十二、拓展--webhook网络钩子自动构建 

之前的构建都是手动触发的,当我们提交完代码到gitLab后,需要自己去jenkins点击对应的构建任务重新构建发布

有没有当我们提交代码后就能自动触发构建任务,远程发布的方法?

当然是有的,虽然自动构建的功能实际使用的不多,主要是频繁构建影响使用,但是当团队有这个需求时还是很好用的,下面展示如何配置gitLab的webhook触发jenkins自动构建

首先在jenkins上配置任务的触发器,注意这个url,gitLab要用到

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

设置好后点击保存应用 

然后使用项目的创建者账户登录gitLab,比如笔者的redis-demo后端项目,是由boss账户创建的,则登录boss账户

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击admin area->setting->network

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

勾选允许本地网络发送请求 ,因为笔者的jenkins和gitLab部署在同一台服务器

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

接着点击后端项目

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击manage access 

 linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

点击setting webhooks,add new webhook 

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

填写url,这里的url是jenkins构建触发器时显示的url

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

保存

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

提交代码,看下jenkins是否自动构建,可以看到已经触发自动构建了

linux离线环境安装jekenis,系统安装部署搭建,linux,jenkins,运维

前端项目也是一样的步骤,这里不再叙述 

十三、总结收尾

通过这篇如此细致而又略显啰嗦的教程,基本掌握了前后端搭建自动化部署的原理和实操方法,掌握了开发环境搭建的完整步骤,笔者在工作之余花费了很大精力在这篇博客上,如果能给刷到这篇文章的朋友提供帮助,请点赞支持我吧!文章来源地址https://www.toymoban.com/news/detail-860793.html

到了这里,关于linux离线安装jenkins及使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jenkins安装教程】以及该jenkins实例似乎已离线 解决办法

    【Jenkins安装教程】 网址:https://www.jenkins.io/zh/ 输入浏览器网址 https://www.jenkins.io/zh/ 点击下载 版本选择 点击以前发行版本,选择适合自己JAVA的版本 这下面就是他们支持的Java版本,找到适合的版本后直接下拉 选择刚才找到的版本点击进去,选择war包下载 运行 上传服务器后

    2024年02月08日
    浏览(37)
  • Ubuntu环境下使用APT安装Jenkins(详细教程)

    目录 1、安装JDK         1.1、使用APT查找已安装的JDK          1.2、若没有JDK11,则需要安装 2、使用war包或者APT两种安装方式         2.1、war包安装(推荐,方法简单,配置使用JDK)         2.2、APT安装 3、配置Jenkins         3.1、初始化Jenkins         3.2、系统配置

    2024年02月08日
    浏览(25)
  • Linux系统安装部署Jenkins详细教程(图文讲解)

    前言:最近需要使用Jenkins部署项目,所以想出一篇关于如何使用Linux系统安装部署Jenkins的相关教程,整体部署过程还是挺顺利的,特此分享一下!  博主的其他部署教程: 1、Jenkins部署前后端分离项目:Jenkins部署前后端分离项目最全图文教程(手把手教学) 2、Docker部署前后

    2024年02月15日
    浏览(49)
  • Linux CentOS-7 系统 离线安装部署Zabbix--->自定义监控--->短信报警 详细教程

    在内网环境,我们无法连接外网,这个时候想要使用zabbix,就要进行离线安装了 安装部署zabbix有三种方法: 一是使用 源码安装 ,二是使用 RPM包安装 ,三是使用 容器部署 ,这里讲的是RPM包安装 可以自己线上下载包,也可以用我已经准备好的RPM安装包 链接:https://pan.baidu

    2024年02月04日
    浏览(38)
  • Linux如何在Ubuntu系统服务器上安装 Jenkins?【详细教程】

    1. 更新 Ubuntu 软件包列表 ``` sudo apt-get update ``` 2. 安装 Java 运行环境 ``` sudo apt-get install openjdk-8-jdk ``` 3. 导入 Jenkins GPG 密钥 ``` wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - ``` 4. 添加 Jenkins 软件包仓库 ``` sudo sh -c \\\'echo deb https://pkg.jenkins.io/debian-stable binary/ /

    2023年04月09日
    浏览(45)
  • Linux离线安装Jenkins、Maven、Gitlab、Git,部署Java项目

    《Linux安装java》 把Maven上传到Linux服务器/data/目录下进行解压 配置环境变量 找到export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL在下面追加 保存后使环境变量生效并校验是否maven是否安装成功 修改默认依赖仓库位置 找到localRepository/path/to/local/repo/localRepository, 在注释外面追加

    2024年02月07日
    浏览(35)
  • Linux操作系统下Docker和Docker Compose的安装教程(包含x86和arm64平台离线一键安装资源包)

    本文章将详细介绍Linux下Docker和Docker Compose的安装教程。 目录3为x86和arm64平台Docker离线安装资源包,包含Docker Compose、一键安装脚本使用教程。 相关文章参考: Docker常用基础命令 Docker批量清理删除镜像和容器常用命令 版本如下 名称 版本 CentOS 7.6+ openEuler等其他操作系统可以使

    2024年02月06日
    浏览(32)
  • linux离线环境安装redis

    先检查gcc版本,使用gcc --version进行检查,版本在5以下的,安装redis要安装redis6以下的版本 如果没有gcc命令,要先安装gcc命令。因为是离线环境,yum命令什么的用不了。为了安装gcc,进行了几种尝试。 1、下载rpm包,使用rpm命令安装,最终因为缺少依赖放弃了 2、下载Centos7镜像

    2024年02月10日
    浏览(32)
  • Linux环境下安装部署单机RabbitMQ(离线)

    本文档适用于在Linux系统下部署单体RabbitMQ,是在无网的情况下部署的。涉及的任何操作都是通过手动下载安装包然后上传到服务器上进行安装,因此也遇到一些问题,并在此文档中记录。 实际操作环境:Kylin V10,实际操作的Linux系统是银河麒麟。根据我安装的过程,觉得适用

    2024年02月03日
    浏览(37)
  • 【Linux操作系统安装配置GO环境的详细教程】

    Go官方环境地址 官方建议放在 /home/go 下,创建三个目录:bin(编译后可的执行文件的存放路径)、pkg(编译包时,生成的.a文件的存放路径)、src(源码路径,一般我们的工程就创建在src下面) 编辑文件 文件最下方添加如下的配置: 出现的问题:bash: /usr/local/jdk/bin/java: /lib/l

    2023年04月15日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包