pig do
pig do 将常见 Pigsty 管理 Playbook 暴露为明确的 CLI 操作。它使用选定的 Pigsty 主目录与
Inventory,构造对应的 Playbook 命令,并通过 PIG 的旧命令结构化结果适配器返回操作结果。
这些命令会修改远程系统。执行前应检查选中的集群、节点、实例和 Inventory。
该命令族不提供通用 --plan 模式。
命令总览
| 命令 | 用途 | 必需参数 |
|---|---|---|
pgsql-add |
添加 PostgreSQL 集群或实例 | 集群,可选 IP |
pgsql-rm |
移除 PostgreSQL 集群或实例 | 集群,可选 IP |
pgsql-db |
创建或更新数据库声明 | 集群、数据库 |
pgsql-user |
创建或更新用户声明 | 集群、用户 |
pgsql-ext |
通过 Pigsty 安装扩展 | 集群,可选扩展 |
pgsql-hba |
刷新 PostgreSQL HBA 规则 | 集群 |
pgsql-svc |
刷新 PostgreSQL 服务定义 | 集群 |
pgmon-add / pgmon-rm |
添加或移除远程监控目标 | 集群 |
node-add / node-rm |
添加或移除选中节点 | 一个或多个 selector |
node-repo |
在选中节点配置仓库模块 | 可选 selector 与模块 |
node-pkg |
在选中节点安装或更新软件包 | selector,可选软件包 |
repo-build |
重建 Pigsty 基础设施仓库 | 无 |
redis-add / redis-rm |
添加或移除 Redis 集群、节点或实例 | selector,可选端口 |
使用 pig do COMMAND --help 查看单项操作的别名与精确示例。
PostgreSQL 操作
pgsql-rm --uninstall 会把移除范围扩大到软件包。应将其视为独立的破坏性决策,
确认选中主机已经不再需要这些软件包。
参数明确为 PostgreSQL 集群名的命令会在运行 Ansible 前完成校验。PIG 接受
^[A-Za-z0-9][A-Za-z0-9-]*$:它沿用 Pigsty 的字母数字与连字符契约,并额外要求首字符为字母或数字,
防止形似选项的值进入 Ansible limit。root 与 Ansible 内置组 all、ungrouped 均为保留值。
pgsql-user 接受匹配 ^[a-z_][[email protected]]{0,62}$ 的 Pigsty 用户名,并保留 postgres。
pgsql-db 接受以字母或下划线开头、后续仅包含字母、数字、_、@、.、- 的有界 ASCII 名称;
这样可避免 Inventory 查询与生成路径产生歧义,同时不强制数据库名使用小写。以 selector 为参数的命令仍保留更宽的 selector 语法。
节点与仓库操作
Selector 可以是集群名、主机名、IP 地址,或 Pigsty Playbook 支持的其它选择形式。 它的实际含义来自当前 Inventory。
仓库模块来自已安装的 Pigsty 版本,例如 local、infra、pgsql、node 与 extra。
安装软件包前,应确认目标节点能够访问所需仓库。
Redis 操作
与 PostgreSQL 移除相同,redis-rm --uninstall 会把变化范围扩大到服务移除之外。
配置与输出
pig do 使用 PIG 全局选项:
| 选项 | 用途 |
|---|---|
-H, --home |
选择 Pigsty 主目录 |
-i, --inventory |
选择 Pigsty Inventory |
-o, --output |
选择文本、JSON、YAML 或格式化 JSON 包装 |
--log-level、--log-path |
配置 PIG 诊断日志 |
结构化模式报告请求的操作与捕获到的执行结果。底层 Ansible 与 Playbook 行为仍由已安装的 Pigsty 版本决定。
操作边界
pig do 是 Pigsty 管理 Playbook 的便利层,不会替代 Inventory 审阅、备份、变更窗口和变更后服务验证。
完整 Playbook 变量与生命周期语义以已安装 Pigsty 版本文档为准。