linux 环境运行 jenkins.war包,有可能会出现字体问题,jdk版本:11 jenkins 版本:2.420

jenkins的目录:

/usr/jenkins

启动命令

 java -Djava.awt.headless=true sudo timedatectl set-timezone Asia/Shanghai
-Xmx1024m -jar jenkins.war --httpPort=8090

任意目录启动:

nohup java -Djava.awt.headless=true -Xms1024m -Xmx1024m -jar /usr/jenkins/jenkins.war --httpPort=8090 >/usr/jenkins/log_jenkins.log 2>&1 &

服务器设置北京时间

sudo timedatectl set-timezone Asia/Shanghai

测试时间是否正确

date

jdk下载地址:

【免费】linux环境-jdk11-jdk-11.0.8-linux-x64-bin.tar资源-CSDN文库

jenkins的下载地址:

【免费】linux环境-jenkins2.420.war资源-CSDN文库

产生的秘钥

a2a528c111204ba0b7eb643672540c8c

安装字体 

sudo yum install fontconfig
sudo yum install xorg-x11-fonts-type1
 

可以尝试安装一些基本的字体库,以确保系统有可用的字体。可以使用以下命令来安装常见的字体包:

sudo yum install fontconfig fontconfig-devel

在某些情况下,字体配置文件可能缺失或损坏。可以尝试生成新的字体缓存。运行以下命令:
fc-cache -f -v

启动命令

java -Djava.awt.headless=true -Xmx1024m -jar jenkins.war --httpPort=8090

访问地址:

http://192.168.116.156:8090/

安装插件

安装部署项目

配置maven

配置git

配置git 的账号(注意 注意 注意,保存后刷新就出来下面的界面了)

配置git的账号

配置jdk

配置远程服务器

开始构建项目

配置历史清理的规则

 配置git地址

Pre Steps 打包之前删除上次的部署的代码,

Build 是  构建包文件名/pom.xml

配置 Post Steps   这里配置 远程服务器的名字,

配置 服务器二

运行脚本

#!/bin/bash

# 定义远程服务器信息
REMOTE_USER="root"
REMOTE_PASSWORD="vagrant"
REMOTE_HOST="192.168.116.155"

# 定义远程服务器上的变量
REMOTE_JAR_PATH="/home/java/app/ruo-admin.jar"
REMOTE_JAR_SOURCE="$WORKSPACE/ruoyi-web/ruoyi-admin/target/ruoyi-admin.jar"
REMOTE_LOG_FILE="/home/java/app/logs/ruo-admin.log"
REMOTE_PID_FILE="/home/java/app/pid/ruo-admin.pid"
REMOTE_DUMP_FILE="/home/java/app/dump/ruo-admin"


# 通过 sshpass 执行远程命令来删除旧的 JAR 文件
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "bash -c '
if [ -f \"$REMOTE_JAR_PATH\" ]; then
    echo \"Removing old JAR file...\"
    rm -f \"$REMOTE_JAR_PATH\" || { echo \"Failed to remove old JAR file\"; exit 1; }
else
    echo \"No old JAR file found, skipping removal.\"
fi
'"

# 通过 scp 将新的 JAR 文件拷贝到远程服务器
echo "Copying new JAR file..."
sshpass -p "$REMOTE_PASSWORD" scp "$REMOTE_JAR_SOURCE" "$REMOTE_USER@$REMOTE_HOST:$REMOTE_JAR_PATH" || { echo "Failed to copy new JAR file"; exit 1; }

# 在远程服务器上执行剩下的命令,启动新的进程
sshpass -p "$REMOTE_PASSWORD" ssh "$REMOTE_USER@$REMOTE_HOST" "bash -c '
cd /home/java/app/ || { echo \"Failed to change directory\"; exit 1; }

# 阻止 Jenkins 杀死项目进程
export BUILD_ID=dontKillMe

# 停止旧进程(如果有 PID 文件)
if [ -f \"$REMOTE_PID_FILE\" ]; then
    OLD_PID=\$(cat \"$REMOTE_PID_FILE\")
    if ps -p \"\$OLD_PID\" > /dev/null; then
        echo \"Stopping old process with PID \$OLD_PID...\"
        kill \"\$OLD_PID\" || { echo \"Failed to stop old process\"; exit 1; }
        rm \"$REMOTE_PID_FILE\" || { echo \"Failed to remove PID file\"; exit 1; }
    else
        echo \"Old process with PID \$OLD_PID not found.\"
    fi
else
    echo \"No PID file found, skipping old process stop.\"
fi

# 启动新进程
echo \"Starting new process...\"
nohup /usr/java/jdk-11.0.8/bin/java -Dfile.encoding=UTF-8 -Xms256m -Xmx512m -XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=\"$REMOTE_DUMP_FILE\" -jar ruo-admin.jar >\"$REMOTE_LOG_FILE\" 2>&1 &
NEW_PID=\$!
echo \"\$NEW_PID\" > \"$REMOTE_PID_FILE\"

echo \"New process started with PID \$NEW_PID.\"
'"

运行失败

使用 sshpass -p 需要 在目标服务器 安装 sshpass

sudo yum install sshpass

安装完成后,可以通过以下命令确认 sshpass 是否成功安装:

sshpass -V

如果 sshpass 安装失败 

如果 epel-release 包未找到,你可以手动安装 EPEL 仓库。以下是步骤:

# 下载 EPEL RPM 文件
sudo yum install -y https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

 安装后再次尝试:

sudo yum install -y sshpass

更改软件源

如果以上步骤仍然无效,可以尝试更换你的 yum 源为阿里云、清华大学等国内镜像。

使用阿里云的 YUM 源

运行以下命令,备份现有的 yum repo 文件并使用阿里云源:

# 备份现有 repo 文件
sudo cp /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/bak/

# 使用阿里云的 CentOS 7 源
sudo bash -c 'cat > /etc/yum.repos.d/CentOS-Base.repo << EOF
[base]
name=CentOS-$releasever - Base
baseurl=http://mirrors.aliyun.com/centos/7/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS7
enabled=1

[updates]
name=CentOS-$releasever - Updates
baseurl=http://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS7
enabled=1

[epel]
name=EPEL for CentOS
baseurl=http://mirrors.aliyun.com/epel/7/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/epel/RPM-GPG-KEY-EPEL-7
enabled=1
EOF'

尝试安装 sshpass

在更新了 repo 后,再次清理缓存并安装 sshpass

sudo yum clean all
sudo yum makecache
sudo yum install -y sshpass

 安装成功

继续运行  又出现新的 错误

问题出在 SSH 连接时的主机密钥验证失败。这通常是因为目标主机的 SSH 密钥未被验证或记录。要解决这个问题,请按照以下步骤进行操作:

在 Jenkins 服务器上,运行以下命令

#  ssh user@远程服务器ip


ssh user@192.168.116.155

 运行后弹出如下信息  输入 yes

[root@localhost ~]# ssh user@192.168.116.155
The authenticity of host '192.168.116.155 (192.168.116.155)' can't be established.
ECDSA key fingerprint is SHA256:ESG6zOwTENvgNUzbTHyYjBJG5DbftIbWpT4fxtQw9NY.
ECDSA key fingerprint is MD5:fc:98:53:d1:46:55:57:db:50:8a:a2:aa:11:7b:2d:85.
Are you sure you want to continue connecting (yes/no)?

然后 输入目标服务器的密码

最后表示成功

jenkins 重新部署

提示新问题  是 目标路径不存在

没有app目录

新建 app 目录

再次 重新部署 

提示部署成功,但是 目标服务器没启动,但是jar包已经传输过去了

 错误 原因是 脚本里面 的 pid 目录没找到  ,目标服务器 新建 pid 、logs、dump 等 目录

部署成功

远程服务器 启动成功

调用接口 又报错   192.168.116.155:9090/captchaImage

原来是linux 没对应的字体,需要安装字体

安装字体

sudo yum install -y fontconfig
sudo yum install -y liberation-fonts

然后重新部署 删除远程服务器的jar包

启动成功

测试接口  成功

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【C++笔试强训】如何成为算法糕手Day7

学习编程就得循环渐进&#xff0c;扎实基础&#xff0c;勿在浮沙筑高台 循环渐进Forward-CSDN博客 目录 循环渐进Forward-CSDN博客 字符串中找出连续最长的数字串 思路&#xff1a; 岛屿数量 思路&#xff1a; 深度优先遍历DFS 广度优先遍历 BFS 并查集 拼三角 思路…

学成在线——关于nacos配置优先级的坑

出错&#xff1a; 本地要起两个微服务&#xff0c;一个是content-api&#xff0c;另一个是gateway网关服务。 发现通过网关服务请求content微服务时&#xff0c;怎么请求都请求不到。 配置如下&#xff1a; content-api-dev.yaml的配置&#xff1a; server:servlet:context-p…

【华为】配置BGP协议

边界网关协议BGP是一种实现自治系统AS之间的路由可达&#xff0c;并选择最佳路由的距离矢量路由协议。BGP在不同自治系统之间进行路由转发&#xff0c;分为EBGP&#xff08;外部边界网关协议&#xff09;和IBGP&#xff08;内部边界网关协议&#xff09;两种情况。 [A]in g0/0/…

HTML(七)表格

在HTML中&#xff0c;表格的标准形式如下&#xff1a; <table></table> 使用上面的语言&#xff0c;就已经生成了一个表格&#xff0c;只不过这个表格什么都没有 那么&#xff0c;该如何让表格存在东西呢&#xff1f; 首先&#xff0c;我们需要使用到<tr> …

C++ 匿名对象(没有名字的对象,类似于临时对象)

个人主页&#xff1a;Jason_from_China-CSDN博客 所属栏目&#xff1a;C系统性学习_Jason_from_China的博客-CSDN博客 所属栏目&#xff1a;C知识点的补充_Jason_from_China的博客-CSDN博客 概念概述 用类型(实参)定义出来的对象叫做匿名对象&#xff0c;相比之前我们定义的类型…

【Windows】【DevOps】Windows Server 2022 安装ansible,基于powershell实现远程自动化运维部署 入门到放弃!

目标服务器安装openssh server参考 【Windows】【DevOps】Windows Server 2022 在线/离线 安装openssh实现ssh远程登陆powershell、scp文件拷贝-CSDN博客 注意&#xff1a;Ansible不支持Windows操作系统部署 根据官方说明&#xff1a; Windows Frequently Asked Questions —…

如何使用IntelliJ IDEA生成UML图

&#x1f3dd;️ 博主介绍 大家好&#xff0c;我是一个搬砖的农民工&#xff0c;很高兴认识大家 &#x1f60a; ~ &#x1f468;‍&#x1f393; 个人介绍&#xff1a;本人是一名后端Java开发工程师&#xff0c;坐标北京 ~ &#x1f389; 感谢关注 &#x1f4d6; 一起学习 &…

WPF 为button动态设置不同的模板

有时候需要动态的设置一些按钮的状态模板。使一个button显示不同的内容&#xff0c;比如Button未点击安装显示&#xff1a; 安装后显示&#xff1a; 可以通过设置button的content&#xff0c;通过content来设置不同的模板来实现功能&#xff0c;以下是代码&#xff1a; MainWi…

QD1-P5 HTML 段落标签(p)换行标签(br)

本节视频 www.bilibili.com/video/BV1n64y1U7oj?p5 ‍ 本节学习 HTML 标签&#xff1a; p标签 段落br标签 换行 ‍ 一、p 标签-段落 1.1 使用 p 标签划分段落 <p>段落文本</p>示例 <!DOCTYPE html> <html><head><meta charset"…

79 NAT-NAT444端口块静态映射

NAT444&#xff08;Network Address Translation 444&#xff09;是一种网络地址转换技术&#xff0c;用于将私有IP地址转换为公有IP地址&#xff0c;实现私有网络与公有网络之间的通信。 端口块静态映射是NAT444中的一种映射方式&#xff0c;它将一组端口范围映射到一个公有I…

【D3.js in Action 3 精译_034】4.1 D3 中的坐标轴的创建(中一)

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可…

MPA-SVM多变量回归预测|海洋捕食者优化算法-支持向量机|Matalb

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、算法介绍&#xff1a; 四、完整程序下载&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于Matlab平台编译&am…

Node.js概述

1. Node.js简介 Node.js是一个基于Chrome V8引擎的JavaScript运行环境。 地址&#xff1a;Node.js 中文网 1.1 Node.js中的JavaScript运行环境 &#xff08;1&#xff09;浏览器是JavaScript的前端运行环境 &#xff08;2&#xff09;Node.js是JavaScript的后端运行环境 …

2.使用 Label Studio 标注文本

使用 Label Studio 标注文本 文章目录 使用 Label Studio 标注文本前言Label Studio的简单使用1.创建项目2.添加本地存储3.选择标注模板4.添加数据5.标注6.添加关系 总结 前言 Label Studio是一个开源的功能强大的标注平台&#xff0c;可以标注视频&#xff0c;图片&#xff0…

Ubuntu终端配置

选择shell shell有很多&#xff0c;默认的是bash&#xff0c;一般就够用里&#xff0c;想要花里胡哨点就用zsh&#xff0c;还有最近比较火的fish 如果在刚开始安装完Ubuntu没有改shell&#xff0c;后面就不要改了。 安装的软件会设置环境变量&#xff0c;这些环境变量都是写入…

RocketMq详解:三、RocketMq通用生产和消费方法改造

文章目录 1.背景2.通用方法改造2.1添加maven依赖2.2 RocketMq基础配置2.3 配置类2.5 消息传输的对象和结果2.4 消息生产者2.5 消息消费者2.6 功能测试 1.背景 在第二章&#xff1a;《RocketMq详解&#xff1a;二、SpringBoot集成RocketMq》中我们已经实现了消费基本生产和消费…

动态规划-多状态问题——740.删除获得点数

1.题目解析 题目来源&#xff1a;740.删除并获得点数——力扣 测试用例 2.算法原理 首先将原数组根据每个数映射为下标&#xff0c;相加后存储在以该数本身为下标的新数组中 1.状态表示 这里与路径问题不同的是每个位置都不止一个状态&#xff0c;因此开辟两个dp表&#xff0…

Unity URP shader ———魔系符文宝石是如何练成的

各位同学大家好 我已经很久没有没有写教程了&#xff0c;最近项目比较忙。各种加班各种带小孩儿&#xff0c;不过&#xff0c;老师一有机会也在给尽可能服务大家&#xff0c;今天来一个硬菜&#xff1a;移动端高效魔系符文如何制作&#xff0c;国庆起来&#xff0c;老师抽了点…

六西格玛设计DFSS方法论在消费级无人机设计中的应用——张驰咨询

本文基于六西格玛设计方法论&#xff0c;对消费级无人机的设计流程进行系统化研究&#xff0c;探讨如何通过六西格玛设计的理念、工具和方法提升无人机产品的设计质量和市场竞争力。文章从市场定位、客户需求分析出发&#xff0c;深入到关键KPI指标的制定&#xff0c;并逐步阐述…

vulnhub-Web Developer 1靶机

vulnhub&#xff1a;Web Developer: 1 ~ VulnHub 导入靶机&#xff0c;放在kali同网段&#xff0c;扫描 靶机在192.168.114.129&#xff0c;扫描端口 有网站服务&#xff0c;访问 没什么东西&#xff0c;扫目录 真不少&#xff0c;访问一下&#xff0c;也只是一些普通的Wordpr…