hermes agent 提供四种 shell 自动化部署方案:一、基础单文件脚本,自动下载校验启动;二、增强脚本,含依赖检查、端口验证与模板注入;三、离线批量脚本,支持内网分发解压启用;四、容器化脚本,基于 podman/docker 构建运行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您需要在服务器上快速部署 Hermes Agent,但缺乏标准化的自动化流程,则可能面临配置不一致、手动操作易错、重复耗时等问题。以下是多种可直接执行的 Shell 自动化部署脚本方案:
一、基础版单文件部署脚本
该方案适用于目标主机已预装 curl、tar、systemd 且网络可访问 Hermes Agent 发布仓库的场景。脚本将自动下载指定版本二进制包、校验 SHA256、解压、安装为系统服务并启动。
1、创建脚本文件 deploy-hermes-agent.sh,内容如下:
2、使用 chmod +x deploy-hermes-agent.sh 赋予执行权限。
3、运行 ./deploy-hermes-agent.sh --version v0.8.3 --install-dir /opt/hermes-agent。
4、脚本内部将自动检测 root 权限,若非 root 用户执行将立即退出并提示需 sudo。
二、带依赖检查与环境预置的增强脚本
该方案在部署前主动验证系统依赖(如 jq、curl、unzip)、内核版本兼容性及端口占用情况,避免部署中途失败。同时支持自定义配置模板注入。
1、脚本开头调用 check_prerequisites 函数,依次检测 systemd 版本 ≥ 237、/etc/hermes-agent/conf.d 是否可写、8081 端口是否空闲。
2、若检测到缺失 jq,自动执行 apt-get install -y jq(Debian/Ubuntu)或 yum install -y jq(RHEL/CentOS)。
3、从 https://releases.hermes.dev/agent/latest.json 获取最新元数据,解析出 sha256sum 并与下载后文件比对,任一校验失败则中止部署。
4、将用户提供的 config.yaml.tpl 模板中 $HOSTNAME、$IP 替换为实际值后写入 /etc/hermes-agent/config.yaml。
三、离线批量部署脚本(适用于无外网环境)
该方案面向内网封闭环境,支持将 Hermes Agent 二进制、配置样例、service 文件打包为 tar.gz,分发至多台目标机后一键解压启用。
1、在跳板机运行 prepare-offline-bundle.sh,生成 hermes-agent-offline-v0.8.3.tar.gz,内含 bin/、conf/、systemd/ 子目录。
2、使用 scp 或内网 HTTP 分发该包至各目标节点的 /tmp 目录。
3、在每台目标机执行 offline-deploy.sh /tmp/hermes-agent-offline-v0.8.3.tar.gz,脚本将:跳过所有远程下载步骤,直接解压、设置 SELinux 上下文(如启用)、重载 systemd 配置并启动服务。
4、部署完成后输出 systemctl is-active hermes-agent 的结果,仅当显示 active 才视为成功。
四、容器化集成部署脚本(配合 Podman/Docker)
该方案不直接安装 Agent 到宿主机,而是构建轻量级部署镜像,并通过容器运行,适用于需隔离运行时或临时调试的场景。
1、脚本内置 Dockerfile 内容:基于 alpine:3.20,COPY hermes-agent binary 与 config.yaml,暴露 8081 端口,ENTRYPOINT 执行 agent 启动命令。
2、自动调用 podman build -t hermes-agent:local -f /dev/stdin,传入内联 Dockerfile。
3、执行 podman run -d --name hermes-agent-ctr --restart=always -v /etc/hermes-agent/config.yaml:/app/config.yaml:ro -p 8081:8081 hermes-agent:local。
4、脚本末尾检查容器状态,若 10 秒内未进入 running 状态,则输出 podman logs hermes-agent-ctr 前 20 行供诊断。











