文档管理中心
您当前浏览的HarmonyOS 5.0.1(API 13)文档归档不再维护,推荐您使用最新版本。详细请参考文档维护策略变更

多实例部署

说明

从 1.1.0 开始支持多实例部署。

环境准备

1、准备 mysql 数据库服务;

2、准备至少一个 sftp 存储服务,ohpm-repo 最大支持连接3个 sftp 服务;

3、安装 node.js 16.x 及以上版本。

注意
  • 确保 sftp 服务端口能够被外部机器访问。
  • sftp 服务的读写用户应该指定相同的存储根目录。

安装ohpm-repo工具 1.1.0

  1. 解压ohpm-repo工具包。

  2. 进入 bin 目录,执行安装脚本 setup.bat(windows) 或者 setup.sh(linux/macos)。
  3. 安装完成后,检查是否安装成功。
    收起
    自动换行
    深色代码主题
    复制
    1. ohpm-repo -v //显示版本号,安装成功
说明

若您想在其他目录使用 ohpm-repo,请将 bin 目录路径配置到系统环境变量 path 中。

多实例配置

  1. 由于多实例部署模式下,数据存储和文件存储必须使用 mysql 和 sftp,且密码不支持明文配置,故在部署前需要先加密 mysql 和 sftp的密码,并将密文写入到第2步的配置文件中。
    收起
    自动换行
    深色代码主题
    复制
    1. ohpm-repo encrypt_password --crypto_path D:\repo-server\meta
    说明

    --crypto_path 参数用于指定加密组件,如果您是第一次执行该命令,可以指定一个空目录,在加密后会生成新的加密组件。

  1. 进入 conf 目录,修改配置文件 config.yaml。数据存储 db 模块必须选择 ohpm-repo-plugin-mysqlDB 插件,文件存储 store 模块必须选择 ohpm-repo-plugin-sftp 插件。
    • 设置数据存储 db 模块。

      收起
      自动换行
      深色代码主题
      复制
      1. db:
      2. plugin_name: ohpm-repo-plugin-mysqlDB
      3. plugin_config:
      4. host: "localhost" # 数据库主机地址
      5. port: 3306 # 数据库端口
      6. username: "root" # 数据库的用户名
      7. password: "encrypted_password" # 数据库的用户密码(必须是使用 'ohpm-repo encrypt_password' 加密后的密码)
      8. database: "repo" # 数据库名
    • 设置文件存储 store 模块,sftp配置最多只能设置3个。

      收起
      自动换行
      深色代码主题
      复制
      1. store:
      2. plugin_name : ohpm-repo-plugin-sftp
      3. plugin_config:
      4. location: # 必须用yaml数组形式写法
      5. -
      6. name: test_one_sftp # sftp服务名,名字不能与其他sftp配置重复
      7. host: "192.168.1.1" # sftp服务主机地址
      8. port: 22 # sftp服务端口
      9. read_username: "read" # 有读权限的用户名
      10. read_password: "encrypted_password" # 有读权限的用户密码(必须是使用 'ohpm-repo encrypt_password' 加密后的密码)
      11. write_username: "write" # 有写权限的用户名
      12. write_password: "encrypted_password" # 有写权限的用户密码(必须是使用 'ohpm-repo encrypt_password' 加密后的密码)
      13. path: /source22 # 相对sftp根目录的文件路径
      14. -
      15. name: test_two_sftp # sftp服务名,名字不能与其他sftp配置重复
      16. host: "192.168.1.2" # sftp服务主机地址
      17. port: 22 # sftp服务端口
      18. read_username: "read" # 有读权限的用户名
      19. read_password: "encrypted_password" # 有读权限的用户密码(必须是使用 'ohpm-repo encrypt_password' 加密后的密码)
      20. write_username: "write" # 有写权限的用户名
      21. write_password: "encrypted_password" # 有写权限的用户密码(必须是使用 'ohpm-repo encrypt_password' 加密后的密码)
      22. path: /source24 # 相对sftp根目录的文件路径
      23. server: http://localhost:8088 # 本地仓库下载链接地址的域名, 不配置默认取listen的值
    说明
    • ohpm-repo数据的存储路径为: /sftp服务的存储根目录 + sftp配置的path路径。
    • 在进行多实例部署之前需要启动一次ohpm-repo,将 config.yaml 配置和 meta 加密组件写入 <deploy_root> 部署根目录中。

部署首个节点

进入 bin 目录,命令行启动ohpm-repo。

收起
自动换行
深色代码主题
复制
  1. ohpm-repo start --deploy_root D:\repo-server\ohpm-repo-tmp --config D:\repo-server\config.yaml --crypto_path D:\repo-server\meta
说明
  • --deploy_root:指定部署根目录,用于存储ohpm-repo启动时生成的文件。
  • --config:指定启动时使用的配置文件。
  • --crypto_path:指定加密组件,该值必须与多实例配置第1步的参数相同,否则将解密出错。

启动成功日志信息如下:

打包和部署

为帮助您更方便地完成多实例部署,为您提供打包、部署命令。

打包

在完成了多实例配置并首次启动过ohpm-repo服务实例的机器上,执行 ohpm-repo pack <deploy_root>。

收起
自动换行
深色代码主题
复制
  1. ohpm-repo pack D:\repo-server\ohpm-repo-tmp
说明

该命令用来打包备份ohpm-repo的 <deploy_root>/conf, <deploy_root>/meta 目录,并在命令行工作目录下生成压缩包。

打包成功日志信息如下:

部署

将 pack 命令的产物拷贝到其他机器中。

安装私仓工具后,使用 ohpm-repo deploy <file_path> --deploy_root <deploy_root> 命令部署新的实例;

收起
自动换行
深色代码主题
复制
  1. 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启动时生成的文件。

部署成功日志信息如下:

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

收起
自动换行
深色代码主题
复制
  1. ohpm-repo start

配置自动重启(可选)

为ohpm-repo实例配置系统重启时自动重启的功能。

说明

在进行该配置前需要将 ohpm-repo 工具 bin 目录配置到环境变量path中。

Linux

  1. 在ohpm-repo工具的 bin 目录下创建自动运行脚本 run-repo.sh:
    收起
    自动换行
    深色代码主题
    复制
    1. touch run-repo.sh
  2. 写入下面内容,保存并关闭文件:
    说明

    当 mysql 或 sftp 服务与 ohpm-repo 部署在同一服务器上时,请将 mysql 和 sftp 的启动命令放在 ohpm-repo start 命令之前。

    收起
    自动换行
    深色代码主题
    复制
    1. #!/bin/bash
    2. ohpm-repo start
  3. 将该脚本设置为可执行文件:
    收起
    自动换行
    深色代码主题
    复制
    1. chmod +x run-repo.sh
  4. 使用 linux 的定时任务工具 crontab 重启自动执行脚本。编辑当前用户的 crontab 配置:
    收起
    自动换行
    深色代码主题
    复制
    1. crontab -e
  5. 当前用户的 crontab 配置写入下面内容,保存并关闭文件:
    收起
    自动换行
    深色代码主题
    复制
    1. @reboot /bin/sh run-repo.sh >/dev/null 2>&1

    其中 run-repo.sh 表示要执行的脚本路径;>/dev/null 2>&1 表示将输出重定向到空设备,即不输出任何信息。

现在,每次系统启动时,都会自动执行 run-repo.sh 脚本中的命令。

Windows

  1. 新建 run-repo.bat 文件,写入下面内容:
    说明
    当 mysql 或 sftp 服务与 ohpm-repo 部署在同一服务器上时,请将 mysql 和 sftp 的启动命令放在 ohpm-repo start 命令之前。
    收起
    自动换行
    深色代码主题
    复制
    1. @echo off
    2. call ohpm-repo start
    3. exit
  2. 按下 win+R,输入 shell:startup,回车:弹出启动文件框;将 run-repo.bat 文件剪切到启动文件夹下即可。

现在,每次系统启动时,都会自动执行 run-repo.bat 脚本中的命令。

在 指南 中进行搜索
请输入您想要搜索的关键词