hermes迁移手册,将hermes迁移到不同服务器~

0 阅读4分钟

部署环境

服务器系统:Linux
配置目录:/opt/hermes
源码目录:/opt/hermes/hermes-agent

因为我家里有一个物理服务器,之前是联想的Thinkpad,是很早以前的版本,但是内存非常够,所以我就有些时候会将它作为 本地有主力服务模拟服务器。
我还有两台云服务器,需要的时候就会让端口映射到云服务器上面,后台终端一直用tmux做终端管理,所以就可以一直挂着。

端口映射命令:

# 博客脱敏版(直接复制,把大写占位符换成你的真实值)
ssh -p YOUR_SSH_PORT -N -R 0.0.0.0:YOUR_REMOTE_PORT:127.0.0.1:YOUR_LOCAL_PORT root@YOUR_SERVER_IP
占位符填什么示例
YOUR_SSH_PORT远程 SSH 端口22(默认的22端口的话,就不用填,直接删掉也可以的)
YOUR_REMOTE_PORT远程服务器对外暴露的端口1213
YOUR_LOCAL_PORT本地机器服务的端口144
YOUR_SERVER_IP远程服务器公网 IPxxx.xxx.xxx.xxx

之前hermes非常火,所以我尝试在我的云服务器上,用一键部署命令安装了一次,但一台成功了,一台没成功。我原本想安装rocket,但rocket也没安装成功,所以非常悲伤,但是我在这个物理服务器上部署了一下就一马成功了,于是我有些时候经常去那里。但是我现在就是想把这个物理服务器上的部署到云服务器上去。于是我就查了一下方案,我一开始就问了在我物理服务器上面的Hermes自己,因为我觉得他自己肯定最了解自己嘛。

其实主要就是要将那个.hermes文件夹给打包好,然后传送到服务器的对应目录上\

注意前面有一个.,说明这个是隐藏文件夹,加入说你是用命令行查看的话,得用ls -al,这个命令才能够显示隐藏文件夹,要不然显示的只是普通的文件夹~

image.png

这个基本上装在哪个用户上就在哪个用户目录下,root装的话就在/root/目录下面。
接下来就是将这个打包然后传送到云服务器上面\

完整迁移步骤

1. 本地数据备份(迁移前先执行)

关闭所有正在运行的Hermes进程后,打包所有配置、技能、记忆、会话记录:

tar zcvf hermes-backup.tar.gz ~/.hermes

该压缩包包含所有自定义配置、历史会话、专属技能、记忆数据,完整保留当前使用的所有个性化内容

2. 备份包传输到云服务器

# 替换为实际服务器IP,端口和想要的目录
scp -P YOUR_SSH_PORT hermes-backup.tar.gz USER@xxx.xxx.xxx.xxx:/opt/

3. 服务器端数据准备

cd /opt
mkdir hermes
# 解压备份包到目标目录,自动剥离路径前缀
tar zxvf hermes-backup.tar.gz -C hermes --strip-components 2

安装步骤

  1. 进入源码目录
cd /opt/hermes/hermes-agent
  1. 全局安装Python包
pip install . --force-reinstall
  1. 配置全局环境变量(指定配置目录)
echo "export HERMES_HOME=/opt/hermes" >> /etc/profile && source /etc/profile
  1. 软链接到全局bin路径(解决conda环境下命令找不到的问题)因为我当时conda的base环境忘记退了,要是没有的话好像是不用的
ln -s /root/miniconda3/bin/hermes /usr/local/bin/

验证安装

执行以下命令,输出版本号即为成功:

hermes --version

image.png

image.png 输入hermes就直接启动了
原来的api接口都不用重新配,都是同样的~
而且因为记忆全都搬迁过来了,所以还是之前一样调教好的hermes。


常见问题解决

  1. 任意目录执行hermes提示 command not found → 重新执行软链接命令即可
  2. 配置不生效/找不到配置 → 确认echo $HERMES_HOME输出为/opt/hermes,否则重新执行环境变量配置命令

常用启动方式

  1. 交互式聊天
hermes

直接启动 image.png

  1. 启动网关服务(对接聊天平台/API)
# 前台启动
hermes gateway run
# 安装为后台服务+开机自启
hermes gateway install && hermes gateway start
  1. 查看服务状态
hermes gateway status

踩坑记录

  1. 安装完执行hermes --version正常,切换目录/新建会话后提示command not found → 原因:conda环境的bin路径默认不在系统全局PATH中,执行软链接命令即可解决:ln -s /root/miniconda3/bin/hermes /usr/local/bin/
  2. 配置文件不生效,默认读取~/.hermes路径的配置 → 原因:未配置全局HERMES_HOME环境变量,执行echo "export HERMES_HOME=/opt/hermes" >> /etc/profile && source /etc/profile即可

多终端运行提示

使用tmux实现多终端会话隔离,无需担心进程退出问题,启动方式:

  1. 新建tmux会话跑网关服务:tmux new -s hermes-gateway → 进入会话后执行hermes gateway run,按Ctrl+B D后台挂起
  2. 新建tmux会话跑交互任务:tmux new -s hermes-task → 随时可以切回会话查看进度
  3. 查看所有tmux会话:tmux ls
  4. 恢复指定会话:tmux a -t 会话名 无需额外使用nohup,tmux会自动保留会话进程,SSH断开也不会丢失运行状态~