关于 oceanbase-deploy
oceanbase-deploy 是使用 OBD 部署和运维 OceanBase 的技能,引导 Agent 选择产品形态与执行方式,并处理主机检查、软件包获取、集群配置和运维流程。
主要功能
- 01指导基于 OBD 的部署与运维
- 02检查主机和现有集群状态
- 03解析部署软件包依赖
- 04设置集群路径与资源配置默认值
- 05处理生命周期、升级和故障恢复
适用场景
- 01为新建 OceanBase 集群准备主机
- 02执行操作前检查现有部署
- 03获取所需的完整组件软件包依赖
- 04规划集群升级或故障恢复
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ oceanbase/ oceanbase-skills --skill oceanbase-deploy安装后在 Claude Code 中输入/oceanbase-deploy确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
LICENSEcluster-management/references/component-changes.mdcomponent-reinstall.mdconfig-deployment.mdconfig-server.mdconfiguration-changes.mdenvironment-initialization.mdlifecycle.mdmaximum-utilization.mdmirror-management.mdmonitoring.mdnetwork-access.mdocp-ce.mdocp.mdupgrade.mdcluster-management/references/deployment-templates/commercial-distributed.mdcommunity.mdcluster-management/scripts/obd-edit-config-pty.pyobd-administration/references/controller-maintenance.mdcontroller-uninstall.mdcredential-storage.mddeployment-tools.mdhost-tools.mdinstallation.mdmirror-and-repositories.mdoffline-repository.mdruntime-environment.mdtool-lifecycle.mdtrace-evidence.mdweb-api.md详细介绍
使用 obd 部署和运维 OceanBase
使用此入口确定产品形态、执行模式和所属技能。不要将说明、配置审查或诊断请求转化为部署操作。
社区版与商业版的分布式能力一致性
将 oceanbase-ce 和 oceanbase 视为同一 OBD 管理的分布式产品系列中的不同制品标识。除非已安装的公开帮助信息、架构定义、插件或与版本匹配的官方文档明确证明存在差异,否则对两者采用相同的分布式配置结构、部署前检查、环境初始化、部署、生命周期、租户、组件、监控、升级、故障恢复和验收工作流。示例恰好使用了 oceanbase-ce,并不能证明该 OBD 功能仅限社区版。
仅将已证实的差异分开处理:确切的组件/软件包名称及依赖闭包、制品分发渠道和授权、所选产品实际提供的兼容模式或许可功能,以及确切的源/目标软件包兼容性。不要仅凭产品标签设置版本限制。
软件包获取顺序(强制)
对 OceanBase 公共仓库中的所有软件包(包括 OBD、数据库和代理组件、配套库、客户端、测试工具和诊断工具),在进行任何在线查询或请求之前,都必须遵循此规则。先选择有效的制品来源,然后再选择下载方式。
对于每个确切的软件包候选项,按以下顺序使用有效的制品来源:(1)https://mirrors.oceanbase.com 下的实际软件包目录;然后(2)https://mirrors.aliyun.com/oceanbase 下的实际软件包目录。第一个实际的 OceanBase 软件包请求必须指向来源 1。在转到来源 2 之前,必须在同一来源进行三次有效的获取尝试;两个来源都用尽后,如果该软件包系列提供 EL 后缀,则从目标操作系统后缀依次转到 EL8 和 EL7。通用连通性测试不能替代或先于对来源 1 的首次请求。
软件包管理器的 .repo 文件仅是仓库配置,不是软件包来源或软件包下载。应统计提供软件包字节的有效 base URL 或最终候选 URL,而不是提供 .repo 文件的主机。在使用仓库定义或统计软件包管理器尝试次数之前,先解析并记录该有效 URL,并确认它属于当前来源。Rocky BaseOS/AppStream 等操作系统依赖项仓库属于独立渠道:更改此类仓库既不计作 OceanBase 来源尝试,也不会改变此顺序,且不得将其隐藏在与 OceanBase 获取操作相同的不透明命令中。
在当前来源内,使用适用的控制端本地机制,例如受版本支持的 OBD/工具路径、直接使用 curl 或 wget,或使用操作系统软件包管理器。obd mirror 用于导入或索引已在本地的制品,绝不可将其用作网络下载器。首次发出软件包网络请求之前,请阅读详细的固定软件包来源工作流。
**OBD 引导安装:**控制端软件包为 ob-deploy;社区版和商业版 OceanBase 部署使用的都是公共 community 树中的同一个 OBD 软件包。若 OBD 不存在,且没有经验证的控制端本地 RPM,则从 https://mirrors.oceanbase.com/community/ 开始,默认使用 curl 或 wget 在所选控制端下载确切的 RPM,并使用操作系统软件包管理器安装该本地 RPM。请求执行依赖 OBD 的部署,即授权执行这一经验证的首次安装,以及使用 -y 等软件包管理器常见的非交互式确认选项;无需为运行安装命令另行征求许可。此例外不授权替换、升级、降级 OBD,也不授权使用未经验证的软件包候选项或进行大范围仓库更改。不要仅仅为了引导安装 OBD,就默认添加持久化的 OceanBase .repo。只有在已证明其有效软件包 URL 遵循当前来源顺序时,才能使用仓库定义。
**其他软件包:**默认在线模式下,由已安装的 OBD/仓库或所属工具工作流解析并获取经验证的软件包。直接从控制端本地下载或通过获准的中继成功获取后,应遵循制品实际的使用路径:使用 obd mirror clone 导入 OBD 组件 RPM,并隔离完整的本地依赖闭包;对客户端、测试工具、诊断工具、镜像和非 RPM 制品,使用经版本验证的本地注册或安装路径;仅在使用操作系统依赖项的机器上安装这些依赖项。不要将每个已下载的软件包都变成每个集群节点上的软件包管理器安装。
默认控制器、SSH 和现有状态发现
对于所有基于 OBD 的集群部署模式,包括配置文件、交互式、自动部署、演示和性能测试路径,除非用户明确选择了单独的控制器,否则应将控制器放在集群部署主机上。在选择或安装 OBD 之前,按用户提供的原始顺序探测目标主机。复用拥有预期注册部署的目标主机,或其他明确无误的现有目标主机控制器。只有在确认所有目标主机均可访问,且均不存在 OBD 可执行文件、软件包归属信息或控制器元数据后,才在第一台目标主机上安装 OBD;安装时应接受软件包管理器的非交互式确认,且不得询问用户是否选择或批准安装命令。绝不可默认在自动化运行器上安装或运行 OBD。
对每台部署机器使用用户提供的 SSH 登录用户;如果未指定登录用户,则使用 root。如果未提供身份验证材料,则使用无密码 SSH。登录后,后续所有操作都应保持使用该登录会话用户身份:检查和准备主机、安装和运行 OBD、拥有控制器元数据和文件,以及从控制器连接到其他每个节点上的同一登录用户。不得推导或切换到第二个 OBD 执行用户。如果控制器到节点的无密码身份验证失败,但运行器已验证可访问确切的目标,则直接将控制器登录用户的公钥追加到同一登录用户的 authorized_keys,保留现有条目和权限,并验证 BatchMode 访问时不会再次提示。仅对必须使用特权的命令进行范围严格限定的提权;提权不得更改 OBD/控制器所有者。绝不可复制私钥、替换 authorized_keys、更改密码或 sshd_config、绕过主机密钥不匹配,或使用隧道。只有在不存在已获批准的路径来修改确切目标,或其身份仍有歧义时,才请求访问权限。
不要询问用户集群是否已部署。应通过只读检查候选控制器的注册信息,以及每台目标主机上的相关软件包/服务状态、进程、监听端口、部署路径和可连接时的数据库身份来确定。注册信息缺失或进程已停止,单独来看都不能证明部署不存在。只有在访问失败,或完成检查后仍存在真实的身份或所有权歧义时,才询问用户。遵循详细的控制器、SSH 和集群发现约定。
默认新部署目录
对于新部署,如果用户未指定部署或存储路径,则应在每台目标主机上分别为已确定的登录会话用户选择默认路径。选择该用户实际能够读取、写入并遍历安全父目录,且可用空间最大的持久挂载文件系统,然后在其下创建一个专用于该部署的新基础目录。根据已安装架构的许可,将组件主目录、数据、redo、日志及其他由部署管理的子目录放在该基础目录下。只要存在更大的可写持久文件系统,就不要默认使用用户主目录;也不要在未检查主机的情况下,假定路径为 /data/1 之类的位置。用户明确指定的路径优先;现有注册路径不可更改,除非用户请求受支持的路径迁移工作流。遵循详细的默认部署目录选择说明。
新建集群的默认规格
部署新的 OceanBase 集群时,如果用户未指定资源值、资源上限或非最大规格配置,则默认采用最大利用率工作流,无需询问用户选择规格。对于分布式最大化部署,默认执行路径为 obd cluster autodeploy;不要要求用户指定此命令,也不要仅仅因为单独执行 deploy 和 start 更便于检查,就用这两个命令替代它。用户明确指定的值或上限优先。此默认设置仅会最大化已解析的目标主机资源;不会添加用户未要求的主机、组件、租户或拓扑。
对于使用多个用户提供的 Observer 主机进行的新建分布式部署,如果未显式指定 Zone 映射,则按确定性的主机顺序将每台不同的主机分配到一个不同的新 Zone。不要询问用户是否采用默认部署方式。保留显式指定的 Zone 映射,不要推断额外主机或副本,也不要声称共享同一物理故障域的逻辑 Zone 能提供高可用性。
部署软件包闭包
在任何部署、添加组件、升级或重新安装的首次软件包查找或获取之前,请阅读共用的部署软件包闭包。根据最终请求的组件图构建完整的软件包集,其中包括已选的 *-libs、JRE、客户端库、镜像以及有条件的实用工具依赖项;不要下载显而易见的主组件 RPM 后就停止。部署集群前,还要证明控制器端有兼容的 SQL 客户端;如果没有,则将 obclient 和匹配的 libobclient 加入预部署闭包。在线模式下,须证明闭包中的每个条目均可解析;本地软件包/离线模式下,在选择软件包前,须将完整闭包放置到所选远程控制器上并验证,同时还要放置并验证所有必需的节点本地镜像。
商业软件包边界与平台回退
上述强制公共源顺序仅适用于 OceanBase 公共/社区仓库中发布的制品。对于商业数据库/组件以及独立/集中式制品,先检查所选控制器的 OBD 本地仓库中是否有完整且精确匹配的闭包。如果缺少任何必需软件包,则停止操作并请用户提供准确文件或现有的可访问路径。绝不探测社区镜像、登录门户、联系支持人员或自动下载这些制品。请阅读详细的商业软件包获取工作流。
保持来源渠道与平台回退相互独立。对于每个由 OBD 管理的类 RPM 制品,无论是公共制品还是商业制品,都按顺序尝试精确匹配目标操作系统的后缀、EL8、EL7,同时保留组件/版本/发行版/架构信息,并证明运行时兼容性。对于商业制品或独立/集中式制品,此顺序用于确定要向用户索取的准确文件,并不授权下载这些文件。版本中性 ob-deploy 软件包是明确的例外:它始终遵循上述公共 community 路径。
默认数据库引导密码
部署新的 OceanBase 集群时,除非用户已经指定初始数据库 root/sys 密码,否则不要询问用户选择该密码。如果没有提供覆盖值,则将引导密码字段留空缺省,并使用已安装 OBD 工作流中经验证的随机密码生成路径;不要由 Agent 生成该值,也不要用空值替代。保护生成的密码,并在不打印该密码的情况下验证身份验证。渲染部署 YAML 前,请阅读集群工作流中的数据库引导密码默认设置。
路由请求
| 技能 | 适用场景 |
|---|---|
| cluster-management | 部署或运维社区版或商业版分布式 OceanBase 集群及由 OBD 管理的组件;管理配置、升级、生命周期、监控、OCP、Config Server 和网络访问。 |
| obd-administration | 安装或更新 OBD 控制器;管理镜像/仓库、存储的凭据、动态工具、OBD Web/API、顶层主机命令、跟踪证据、运行时环境或遥测。 |
| tenant-management | 创建、检查、优化、备份、恢复、删除或管理物理主租户/备租户。 |
| testing-and-benchmark | 通过 obd test 运行 Sysbench、TPC-H、TPC-C 或 mysqltest。 |
| obdiag-diagnostics | 通过 obd obdiag 执行需安装组件的诊断信息采集、分析、检查、场景诊断或根因分析。 |
将请求路由到一个子技能后,继续使用该子技能,并且只查阅其路由表选定的参考资料。不要加载同级技能,也不要将父技能重新读作操作清单,除非请求确实涉及多个领域,或新证据使原路由变得模糊。共享的软件包来源和安全摘要会继续显示在可直接调用的子技能中;其中链接的共享参考资料是权威的详细操作流程。
先确认产品和功能
在提出可执行命令或配置之前,请阅读产品和功能解析。通过上述通用运维模式支持社区版和商业版分布式部署,同时先确认实际的组件键、软件包、仓库、制品,以及任何已证实的功能差异,再生成配置。
请勿:
- 当请求或制品表明是商业版部署时,默认使用社区版组件或公共镜像;
- 将源代码树中的功能视为已安装的 OBD 软件包也提供该功能的证明;
- 将 OCP CE、企业版 OCP 或 obshell Dashboard 互相替代;
- 仅因仓库中存在所有所需软件包,就推断它们兼容。
保留用户指定的执行模式
- **解释、规划、审查或审计:**保持只读。除非用户扩大范围,否则只检查用户提供的文件和已有的本地证据。
- **诊断:**从最小的相关只读证据集着手。高开销的信息采集或工具安装属于单独操作。
- **实施:**执行前展示已确认的目标、变更、影响和验收计划。按风险级别要求,在规定节点取得授权。
在进行任何实时控制器/主机/部署查询、SSH/SQL/API/网络访问、下载、写入或其他对外可见的操作之前,请阅读共享的操作约定。可以直接选择子技能,因此路由表中的每个子技能也必须链接到此约定,并保留其核心安全边界。
明确完成条件和故障处理方式
命令退出、任务验收、进程状态、控制平面状态和数据平面可用性是不同的结果。
- 在宣布操作完成之前,请阅读完成条件。
- 发生失败、超时、中断或状态混杂时,请在重试或清理之前阅读故障恢复与证据。
- 在执行任何清理、移除、重置、修剪、删除、卸载或删除操作之前,请阅读清理与所有权边界,并列出准确的已移除和保留对象。
切勿将 redeploy、destroy、--force、元数据删除、仓库清理、删除租户或其他大范围变更用作通用修复手段。
快速入门边界
不要将无条件的 obd demo 或 obd perf 命令作为默认快速入门。对于快速本地部署,请使用集群技能,并采用经过审核的配置工作流。如果用户明确选择其中任一快捷命令,请先检查其固定部署名称、生成的组件、路径、端口、现有进程、隐式强制或清理行为以及恢复边界。
敏感值
不要在可复用示例、聊天输出、存在受保护输入方式时的进程参数或报告中放入密码、通行密钥、访问密钥、令牌、私钥或包含凭据的 URI。请对机密进行脱敏,同时保留复现故障所需的非敏感证据。