oeDeploy 用户指南

1 工具介绍

1.1 oeDeploy简介

oeDeploy(简称oedp)作为应用快速安装部署平台,将提供如下能力:

  1. 插件库:实现应用快速安装的基础,应用提供部署的基本能力就可按照基本规范进行oedp 插件化改造,oedp本身对插件的能力进行解析和调度执行

  2. 应用碎片化部署能力自动ansible化改造:针对不具备自动化安装的应用,指定安装步骤进行配置,oedp工具解析,自动转换成ansible playbook配置

  3. 应用一键安装能力集成:支持具备一键脚本安装部署/ansible自动化安装部署的快速插件集成

  4. 分发能力:oedp支持应用部署在对应host上的的一键分发

  5. ansible集成: 目前oedp的一些基础能力基于ansible进行改造

1.2 工具组成

oedp工具由以下三部分组成:

1.3 获取与安装

用户可以自主获取 oedp 工具,支持x86_64和aarch64架构。

获取 oedp 工具后,使用 yum/dnf 进行安装:yum install -y oedp-xxx.rpm

1.4 命令列表

1.5 工具文件路径

2 用户部署指南

下面以自动化部署kubernetes-1.31.1为例,讲解部署流程:

2.1 获取部署插件

执行以下命令,获取并解压插件包,确保当前目录下出现了目录kubernetes-1.31.1/

2.2 查看插件详细信息

执行info命令以查看插件详细信息:

2.3 配置节点信息

修改项目配置文件,根据实际情况配置节点信息:

注意:

2.4 执行部署

执行以下命令以开始自动化部署:

执行以下命令以卸载k8s:

3 插件开发指南

3.1 oedp 插件介绍

oedp 插件(plugin)是 oedp 工具中提供自动化部署能力的组件,通过将复杂的部署流程 ansible 化来实现自动化部署。插件中可能会集成多种部署操作(action),例如安装、卸载、环境清理等,每一个部署操作都会对应一个 ansible playbook。插件的所有可配置项都应当集中配置,以降低使用者的学习成本和开发者的维护成本。

3.2 目录结构

插件开发者在开发插件时应当遵循以下目录结构:

文件或者目录名介绍
config.yaml包含主机相关的配置,如ip、密码、密钥、端口号等,还包含了应用的一些部署相关的配置,支持jinja2语言
main.yamloedp识别应用部署流程的主配置文件
workspace应用的部署能力库

其中,plugin_name有以下约束:

下面以kubernetes-1.31.1部署插件为例,简单介绍yaml文件的内容:

3.2.1 main.yaml

main.yaml主要用于记录插件的关键信息,包括:名称(name)、版本(version)、介绍(description)、操作(action)等,当用户执行oedp info命令时,oedp工具会读取并解析该文件,然后向用户展示其详细信息。

action项中,应当是一个字典(key-value map),每一个 key 将作为操作的名称,对应的 value 中记录了该操作的详情。

操作详情是一个字典,其中的description项是该操作的说明,用于在执行oedp info命令时向用户展示,而tasks项中则记录该操作的具体步骤,为一个列表,执行该操作时,将按顺序执行每一项步骤。

在步骤中,开发者应当指定该步骤需要执行的playbook的路径,如果有需要,也可以在vars中指定变量文件的路径。所有路径都是相对workspace的相对路径。此外,可以指定scope,即该步骤需要执行的主机组,默认为all

上述插件中,workspace/中的目录结构为:

3.2.2 config.yaml

config.yaml是插件中的用户配置文件,主要包含对主机组的配置和一些其他的全局配置,遵循 ansible 的 inventory 文件配置规则,在执行 ansible playbook 时可直接作为 inventory 传入。

插件开发者在开发插件时应注意,要将所有的配置项集中在该文件中进行配置。

3.3 插件打包

如果要发布插件供用户使用,需要将插件打包成{plugin_name}.tar.gz的格式,压缩包的名称和包内目录的名称要对应,且解压后应当仅生成一个目录,例如: