多实例部署
- ohpm-repo私仓不允许在Linux或macOS系统中使用root用户启动,请使用普通用户安装运行。
- 只有db存储为mysql且store存储为sftp或者custom时,才支持多实例方式部署。本章节多实例部署以db存储为mysql,store存储为sftp为例。
环境准备
- 准备mysql数据库服务;
- 准备至少一个sftp存储服务,ohpm-repo最大支持连接3个sftp服务;
- 安装Node.js18.x版本。
- 确保sftp服务端口能够被外部机器访问。
- sftp服务的读写用户应该指定相同的存储根目录。
安装ohpm-repo工具
-
解压ohpm-repo工具包。
-
请将ohpm-repo工具包解压目录中bin目录的路径配置到系统环境变量path中,执行如下查询命令:
ohpm-repo -v终端输出版本号(如:2.0.0),则表示安装包解压无问题。如有报错,请参考FAQ解决。
针对Linux和Mac系统,建议使用bash作为命令行界面。
-
进入ohpm-repo解压目录的conf目录中,修改配置文件config.yaml:
-
检查listen配置,默认配置为localhost:8088 ,表示仅支持监听本机地址;如果希望其他机器通过ip/域名访问,则建议修改listen配置为ohpm-repo部署机器的ip地址:
listen: <部署ohpm-repo机器的ip>:8088 -
检查deploy_root配置:如果选择不配置,会存储在默认地址中。禁止该路径配置为ohpm-repo解压根目录。
-
数据存储db模块使用mysql:
db:type: mysqlconfig:host: "localhost"port: 3306username: "tctAdmin"password: "password"database: "repo" -
文件存储store模块使用sftp,sftp配置最多只能设置3个:
store:type: sftpconfig:location:-name: test_one_sftphost: "localhost"port: 22read_username: "read"read_password: "password"write_username: "write"write_password: "password"path: /source22-name: test_two_sftphost: "localhost"port: 24read_username: "read"read_password: "password"write_username: "write"write_password: "password"path: /source24#server: http://localhost:80881、ohpm-repo文件的存储路径为: <sftp服务器配置的存储根目录> +<store配置的path路径>,其中path只支持相对路径,必须以/开头。例如sftp服务器存储根目录为/user/sftp/data,store中path配置的路径为/source,故最终ohpm-repo文件存储路径为/user/sftp/data/source。
2、多实例部署ohpm-repo时,必须配置反向代理服务器,转发客户端请求到部署的多个ohpm-repo实例服务器中,故store.config.server必须手动配置为反向代理服务器的域名/ip地址,且需要配置use_reverse_proxy值为true。
-
-
进入ohpm-repo解压目录的bin目录下,执行安装命令:
ohpm-repo install不配置参数--config,则默认使用ohpm-repo解压目录中conf目录内自带的配置文件config.yaml。
安装成功日志信息如下:

-
安装成功后,必须根据给出的提示信息刷新环境变量,针对Windows系统和Linux/Mac系统,有不同处理方式:
- Windows系统: 关闭当前窗口,重新开启一个窗口。
- Linux系统或Mac系统: 在命令行中执行刷新命令:当shell为bash时执行source ~/.bashrc 或者 .~/.bashrc ;当shell为zsh时,执行source ~/.zshrc 或者 . ~/.zshrc 。
部署首个节点
进入ohpm-repo解压目录的bin目录中,命令行启动ohpm-repo。
ohpm-repo start
启动成功日志信息如下:

打包和部署
为帮助更方便地完成多实例部署,已提供打包和部署命令。
打包
在完成了多实例配置并首次启动过ohpm-repo服务实例的机器上,执行ohpm-repo pack <deploy_root>。
ohpm-repo pack D:\ohpm-repo
该命令用来打包备份ohpm-repo的<deploy_root>/conf,<deploy_root>/meta目录,并在命令行工作目录下生成压缩包。
打包成功日志信息如下:
部署
将pack命令的产物拷贝到其他机器中。在解压ohpm-repo压缩包后,使用ohpm-repo deploy <file_path>命令部署新的实例。
ohpm-repo deploy D:\ohpm-repo\bin\pack_1695805599689.zip --deploy_root D:\new-ohpm-repo\ohpm-repo-deploy
- <file_path>: 参数指定备份压缩包地址。
- --deploy_root: 指定部署根目录,用于存储ohpm-repo启动时生成的文件,默认使用 <现有用户home目录>/ohpm-repo。
部署成功日志信息如下:

部署成功后可执行ohpm-repo start启动ohpm-repo。

配置自动重启(可选)
为ohpm-repo实例配置系统重启时自动重启的功能。
在进行该配置前需要将ohpm-repo工具bin目录配置到系统环境变量path中。
Linux
-
在ohpm-repo工具的bin目录下创建自动运行脚本run-repo.sh:
touch run-repo.sh -
写入下面内容,保存并关闭文件:
当mysql或sftp服务与ohpm-repo部署在同一服务器上时,请将mysql和sftp的启动命令放在ohpm-repo start命令之前。
#!/bin/bashohpm-repo start -
将该脚本设置为可执行文件:
chmod +x run-repo.sh -
使用linux的定时任务工具crontab重启自动执行脚本。编辑当前用户的crontab配置:
crontab -e -
当前用户的crontab配置写入下面内容,保存并关闭文件:
@reboot /bin/sh run-repo.sh >/dev/null 2>&1
其中run-repo.sh表示要执行的脚本路径;>/dev/null 2>&1表示将输出重定向到空设备,即不输出任何信息。
现在,每次系统启动时,都会自动执行run-repo.sh脚本中的命令。
Windows
-
新建run-repo.bat文件,写入下面内容:
当mysql或sftp服务与ohpm-repo部署在同一服务器上时,请将mysql和sftp的启动命令放在ohpm-repo start命令之前。
@echo offcall ohpm-repo startexit -
按下win+R,输入shell:startup,回车:弹出启动文件框;将run-repo.bat文件剪切到启动文件夹下即可。
现在,每次系统启动时,都会自动执行run-repo.bat脚本中的命令。