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

news2024/10/23 13:22:28

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.coloradmin.cn/o/2211551.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于opencv答题卡识别判卷

我们是一个深度学习领域的独立工作室。团队成员有&#xff1a;中科大硕士、纽约大学硕士、浙江大学硕士、华东理工博士等&#xff0c;曾在腾讯、百度、德勤等担任算法工程师/产品经理。全网20多万粉丝&#xff0c;拥有2篇国家级人工智能发明专利。 社区特色&#xff1a;深度实…

Excel使用技巧:数据-》分列:处理log数据,把有用的信息提取出来;查找Ctrl+F,替换Ctrl+H;通配符

Excel的正确用法&#xff1a; Excel是个数据库&#xff0c;不要随意合并单元格。 数据输入的时候一定要按照行列输入&#xff0c;中间不要留空&#xff0c;不然就没有关联。 数据-》分列&#xff1a;处理log数据&#xff0c;把有用的信息提取出来。 按照向导一步一步操作。…

D36【python 接口自动化学习】- python基础之函数

day36 函数的定义 学习日期&#xff1a;20241013 学习目标&#xff1a;输入输出与文件操作&#xfe63;-49 函数定义&#xff1a;如何优雅地反复引用同一段代码&#xff1f; 学习笔记&#xff1a; 函数的用途 定义函数 调用函数 # 定义函数 def foo():print(foo)print(foo …

数据传送指令

文章目录 MOVXCHGPUSH和POPIN和OUTXLATLEA LDS LESLEALDSLES LAHF SAHFPUSHF POPF总结 MOV MOV dst, src ; dst <-- src可以进行8位或16位数据的传送源操作数可为立即数、寄存器、存储器操作数目的操作数不可为立即数&#xff0c;CS、IP寄存器两操作数必有一个寄…

Hi3244 应用指导

Hi3244 是一款DIP8封装高性能、多模式工作的原边控制功率开关。Hi3244内高精度的恒流、恒压控制机制结合完备的保护功能&#xff0c;使其适用于小功率离线式电源应用中。在恒压输出模式中&#xff0c;Hi3244 采用多模式工作方式&#xff0c;即调幅控制&#xff08;AM&#xff0…

LLM - 配置 ModelScope SWIFT 环境与 Qwen2-VL 模型推理 教程 (1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/142827217 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 SWIFT …

AI 工具大比拼:ChatGPT 与豆包的魅力与未来展望

&#x1f9d1; 博主简介&#xff1a;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编程&#xff0c;…

C++的类和动态内存分配(深拷贝与浅拷贝)并实现自己的string类

首先&#xff0c;我们先写一个并不完美的类&#xff1a; #include<iostream> #include<cstring> using namespace std;class Mystring{private:char *p;int len;static int num;friend ostream& operator<<(ostream& os, const Mystring& c);pu…

QT开发--多线程

第十四章 多线程 QThread 是 Qt 中实现多线程编程的核心类&#xff0c;提供跨平台线程管理。 使用 QThread 有两种方法&#xff1a; 1、 继承 QThread&#xff1a;重写 run() 方法&#xff0c;实现线程的具体操作。Qt4.8 之前较常用。 2、 使用 QObject 和 moveToThread()&…

2024-10-13 NO.1 Quest3 激活教程

文章目录 1 下载 Occlus 助手2 打开 quest 热点3 Quest3 连接 wifi4 详细文档5 参考教程 1 下载 Occlus 助手 ​ 网址&#xff1a;https://ochelper.xlemon.cn/home.html。 2 打开 quest 热点 ​ 下载 Occlus 助手后&#xff0c;双击 exe 文件打开。 ​ 过程中按照程序提示执…

各类排序详解

前言 本篇博客将为大家介绍各类排序算法&#xff0c;大家知道&#xff0c;在我们生活中&#xff0c;排序其实是一件很重要的事&#xff0c;我们在网上购物&#xff0c;需要根据不同的需求进行排序&#xff0c;异或是我们在高考完报志愿时&#xff0c;需要看看院校的排名&#…

【动手学深度学习】6.2 图像卷积(个人向笔记)

1. 互相关运算 严格来说&#xff0c;卷积层是一个错误的叫法&#xff0c;因为它本质上是互相关运算而不是卷积运算。我们暂时忽略通道看看二维图像数据和隐藏表示。那么输出大小可以表示为 我们自己实现一个二维互相关运算 2. 卷积层 卷积层中有两个参数&#xff1a;卷积核权…

Medieval Kingdom UI 中世纪王国AAA级UI游戏界面

这款中世纪王国风格的大型素材包包含大量绘图、图标、用户界面(UI)元素、完整的世界地图和文明图标。它将助您打造一款游戏,或为您的3D游戏增添亮点。您还可以为对话制作国王的动画,为4K游戏创建独特的面板和窗口。提供两种独特皮肤:经典(冷色调)和白金(暖色调)。 素…

国家基本药物目录数据库查询3种方法(2018、2012、2009年版)

国家基本药物目录是一份由国家卫生健康委员会等相关部门制定的药品清单&#xff0c;旨在满足国家公共卫生需求&#xff0c;保障基本医疗服务。该目录包括了多种药品&#xff0c;覆盖了不同的疾病治疗领域&#xff0c;如抗生素、心血管药物、神经系统药物、抗肿瘤药物、维生素和…

STM32 -- USB CDC 虚拟串口通信

本篇操作: 通过CubeMX Keil&#xff0c;配置STM32作为USB设备端&#xff0c;与电脑上位机进行通信&#xff08;CDC&#xff09;&#xff1b;通用带USB功能的 STM32 芯片 &#xff08;如F1、F4等&#xff0c;系统时钟配置不同&#xff0c;代码通用&#xff09;。 目录 一、 S…

[论文精读]Active and Semi-Supervised Graph Neural Networks for Graph Classification

论文网址&#xff1a;Active and Semi-Supervised Graph Neural Networks for Graph Classification | IEEE Journals & Magazine | IEEE Xplore英文是纯手打的&#xff01;论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误&#xff0c;若…

大数据-168 Elasticsearch 单机云服务器部署运行 详细流程

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

PyQt: QMessageBox Duplication

在使用 PyQt 的 QMessageBox 时&#xff0c;如果你遇到 消息框重复显示 或 QMessageBox 重复实例化 的问题&#xff0c;通常是因为消息框没有正确管理或关闭&#xff0c;或者消息框的创建和显示逻辑中存在重复调用。以下是一些常见原因和解决方案。 1、问题背景 在 PyQt 中使用…

无心剑七绝《泊院雕楼》

七绝泊院雕楼 清歌咏尽桂花香 泊院雕楼醉夕阳 逸兴无端飞万里 幽情宛转忆潇湘 2024年10月13日 平水韵七阳平韵 这首七绝《泊院雕楼》以清新脱俗的语言&#xff0c;描绘了一幅宁静致远的画面。 首句“清歌咏尽桂花香”&#xff0c;以“清歌”起兴&#xff0c;形象地描绘了桂花香…

C++——类和对象(三)

一.赋值运算符 1.运算符重载 (1) 运算符重载是具有特殊名字的函数&#xff0c;他的名字是由operator和后面要定义的运算符共同构成。和其他函数一样&#xff0c;它也具有其返回类型和参数列表以及函数体。 (2) 重载运算符函数的参数个数和该运算符作用的运算对象数量一样多。…