# oedp命令行设计 & 使用说明

oedp

选项选项简写功能说明
--version-v查询版本号

oedp info

查看项目的详细信息,默认为当前路径。

选项简写是否必需功能说明
--project [path]-pN项目路径,默认为当前路径

oedp run [action]

执行项目某个方法,默认为当前路径;[action]为插件可使用的方法,可通过 oedp info命令查询。

选项简写是否必需功能说明
--project [path]-pN项目路径,默认为当前路径
--debug-dN以debug模式运行

oedp list

列举插件源中可用的插件。

oedp init [plugin]

插件初始化到指定路径,[plugin]可以是插件压缩包路径、插件下载地址、插件名称。

  • [plugin]如果为本地的插件压缩包(以tar.gz结尾),则直接初始化到指定路径。
  • [plugin]如果为插件下载地址(以tar.gz结尾),则先下载到缓存路径/var/oedp/plugin/,再初始化到指定路径。
  • [plugin]如果为插件名称,从已经配置的插件源中查找,下载到缓存路径后初始化到指定路径。
选项简写是否必需功能说明
--project [path]-pN项目路径,若不存在则创建
--dir [path]-dN项目的父路径,若不存在则创建。如果未指定项目路径与父路径,则父路径默认取当前目录
--force-fN强制覆盖路径,请谨慎使用;如果路径存在,会先删除该路径中的所有文件,再初始化

示例:假设当前路径为家目录~,如下5个命令执行后,都是初始化了一个目录为~/kubernetes-1.31.1的 oeDeploy 插件。

bash
oedp init kubernetes-1.31.1
oedp init kubernetes-1.31.1.tar.gz
oedp init https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/plugins/kubernetes-1.31.1.tar.gz
oedp init kubernetes-1.31.1 -p ~/kubernetes-1.31.1
oedp init kubernetes-1.31.1 -d ~

oedp repo

插件源管理。

  • 支持本地插件源、远端插件源。
  • 插件源不可重名。
选项功能说明
list查询所有已配置的插件源
update更新插件索引缓存
set [name] [url]增加/修改插件源地址
del [name]删除插件源
enable [name]使能插件源
disable [name]去使能插件源

插件源配置文件 /etc/oedp/config/repo/repo.conf示例。

ini
[openEuler]
url = https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/plugins/
enabled = true

[local]
url = file:///root/.oedp/plugins/
enabled = false

# oedp工具相关文件与路径

路径说明
/etc/oedp/config/配置文件路径
/etc/oedp/config/repo/cache/插件源索引文件缓存路径,每个已经生效的插件源都会生成一个<name>.yaml文件
/etc/oedp/config/repo/repo.conf插件源配置文件
/usr/lib/oedp/src/源码路径
/var/oedp/log/日志文件路径
/var/oedp/plugin/插件缓存路径

# oeDeploy 插件源

插件源格式说明

oeDeploy 支持从可访问的插件源自动获取安装部署插件,并初始化到本地。

插件源的根目录下必须有一个索引文件 index.yaml,其描述了当前插件源中所有可访问插件的具体信息,包括下载地址。

oeDeploy 提供了脚本 tools/make_repo_index/make_repo_index.py,用于自动生成 index.yaml

index.yaml示例如下:

yaml
---
apiversion: v1
plugins:
- kubernetes-1.31.1:
  - name: kubernetes-1.31.1
    version: 1.0.0-1
    updated: "2025-03-05T10:31:02.608017752+08:00"
    description: oeDeploy plugin for kubernetes deployment
    icon: https://gitee.com/openeuler/oeDeploy/blob/master/oedp/build/static/oeDeploy.png
    type: app
    sha256sum: 683995d14bbf425f18d1086858f210fc704b1d14edb274382d0e518a5d2a92c1
    size: 1061949301
    urls:
    - https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/plugins/kubernetes-1.31.1.tar.gz
  - name: kubernetes-1.31.1
    version: 1.0.0-2
    ...
- pytorch:
  - name: pytorch
    version: 1.0.0-1
    updated: "2025-03-05T10:31:02.608017752+08:00"
    description: oeDeploy plugin for pytorch deployment
    icon: https://gitee.com/openeuler/oeDeploy/blob/master/oedp/build/static/oeDeploy.png
    type: app
    sha256sum: 3fe0cb97e01ac9af2c1c8d12d12753f82988ab0e39b5878f359829574102c79d
    size: 2373
    urls:
    - https://repo.oepkgs.net/openEuler/rpm/openEuler-24.03-LTS/contrib/oedp/plugins/pytorch.tar.gz
  ...
...

首层字段含义:

字段含义
plugins含有多个插件名称(默认字母序排序),一个插件名称中可能包含多个不同版本的插件(默认根据版本号倒序排序)
apiversion索引文件格式的版本号。保留字段,暂不生效。默认值 v1

插件字段含义:

字段含义获取方式
name插件名称。允许插件名称中带有版本号,表示软件本身的版本,而非插件的版本。与插件压缩包同名(不带.tar.gz)
version插件版本号,并非所部署软件的版本号。读取main.yaml
updated插件更新的时间,格式为%Y-%m-%dT%H:%M:%S%z。允许为空。插件压缩包最后修改时间
description插件介绍。允许为空。读取main.yaml
icon插件图标地址,用于Web端显示。允许为空。读取main.yaml
type插件类型。保留字段,暂不生效。默认值 app读取main.yaml
sha256sum插件文件sha256数值,用于下载时的完整性校验。sha256计算
size插件文件大小,单位Bytes。压缩包实际大小
urls插件下载地址,可以有多个。所有url地址都必须在当前插件源目录的范围内。前缀与相对路径的拼接结果

插件源构建方式

执行如下命令,一键生成索引文件 index.yaml

bash
python3 make_repo_index.py [plugins_dir] [url_prefix] [output_dir]
  • plugins_dir表示当前 Linux 环境下的插件源根目录,脚本会自动识别目录下(包括所有子目录)所有符合条件的 oeDeploy 插件(后缀为.tar.gz的压缩包)。 oeDeploy 插件合法性的判断标准是:.tar.gz文件中根目录下包含main.yamlconfig.yaml两个文件和workspace目录。 nameversionupdateddescriptionicontype信息都从main.yaml中读取,如果未读取到,则字段可以缺失。

  • url_prefix表示每个插件源的 url 索引前缀,即对外暴露的插件源根目录。

  • output_dir表示索引文件 index.yaml输出的目录。

例如,当前 Linux 环境上 /root/build_workspace/storages/plugins目录中有多个 oeDeploy 插件,同时映射到 http://x.x.x.x:8080/plugins,作为文件服务器对外暴露。

执行如下命令,可以在 /root/build_workspace/storages/plugins目录下生成一个 index.yaml,其中每个插件的 urls字段是其在文件服务器上的真实访问地址,可以直接下载。

bash
python3 make_repo_index.py /root/build_workspace/storages/plugins http://x.x.x.x:8080/plugins /root/build_workspace/storages/plugins