剧本列表

Pigsty 预置剧本总览与导航

Pigsty 提供了一系列 Ansible 剧本用于自动化部署与管理各个模块,本页面提供了所有剧本的导航与汇总。


模块导航

模块剧本数量说明
INFRA3基础设施模块剧本
NODE2节点管理模块剧本
ETCD2ETCD 集群管理剧本
PGSQL7PostgreSQL 集群管理剧本
REDIS2Redis 集群管理剧本
MINIO2MinIO 对象存储管理剧本
FERRET1FerretDB 管理剧本
DOCKER1Docker 管理剧本

剧本汇总

以下表格列出了 Pigsty 中所有可用的预置剧本:

剧本模块功能
deploy.ymlINFRA在当前节点上一次性完整安装 Pigsty
infra.ymlINFRA在 infra 节点上初始化 pigsty 基础设施
infra-rm.ymlINFRA从 infra 节点移除基础设施组件
node.ymlNODE纳管节点,调整节点到期望状态
node-rm.ymlNODE从 Pigsty 中移除纳管节点
etcd.ymlETCD安装与配置 Etcd 集群
etcd-rm.ymlETCD移除 Etcd 集群或成员
pgsql.ymlPGSQL初始化 PostgreSQL 集群或添加新的从库
pgsql-rm.ymlPGSQL移除 PostgreSQL 集群,或移除某个实例
pgsql-user.ymlPGSQL在现有的 PostgreSQL 集群中添加新的业务用户
pgsql-db.ymlPGSQL在现有的 PostgreSQL 集群中添加新的业务数据库
pgsql-monitor.ymlPGSQL将远程 PostgreSQL 实例纳入监控中
pgsql-migration.ymlPGSQL为现有的 PostgreSQL 集群生成迁移手册和脚本
pgsql-pitr.ymlPGSQL执行 PostgreSQL 时间点恢复 (PITR)
redis.ymlREDIS初始化 Redis 集群/节点/实例
redis-rm.ymlREDIS移除 Redis 集群/节点/实例
minio.ymlMINIO安装 MinIO 集群
minio-rm.ymlMINIO移除 MinIO 集群
mongo.ymlFERRET在节点上安装 FerretDB
docker.ymlDOCKER安装 Docker Daemon 与 Docker Compose

剧本使用注意事项

保护机制

多个模块提供了防误删保险,通过 *_safeguard 参数控制:

默认情况下,这些 safeguard 参数均未启用(未定义)。建议在生产环境中为已初始化的集群显式设置为 true

当保护开关设置为 true 时,对应的 *-rm.yml 剧本会立即中止执行,防止误删。可以通过命令行参数强制覆盖:

./pgsql-rm.yml -l pg-test -e pg_safeguard=false
./etcd-rm.yml -e etcd_safeguard=false
./minio-rm.yml -l minio -e minio_safeguard=false

限制执行范围

执行剧本时建议使用 -l 参数限制命令执行的对象范围:

./pgsql.yml -l pg-meta            # 限制在集群 pg-meta 上执行
./node.yml -l 10.10.10.10         # 限制在特定节点上执行
./redis.yml -l redis-test         # 限制在 redis-test 集群上执行

幂等性

大部分剧本都是幂等的,可以重复执行。但需要注意:

  • infra.yml 默认不会清除数据,可安全重复执行。所有 clean 参数(vmetrics_cleanvlogs_cleanvtraces_cleangrafana_cleannginx_clean)默认均为 false
  • 如需清除基础设施数据重建,需显式设置对应的 clean 参数为 true
  • 重复执行 *-rm.yml 删除剧本需格外小心,确保在正确的目标上执行

任务标签

可以使用 -t 参数只执行特定的任务子集:

./pgsql.yml -l pg-test -t pg_service    # 只刷新集群 pg-test 的服务
./node.yml -t haproxy                   # 只在节点上设置 haproxy
./etcd.yml -t etcd_launch               # 只重启 etcd 服务

常用命令速查

INFRA 模块

./infra.yml                      # 初始化基础设施
./infra-rm.yml                   # 移除基础设施
./install.yml                    # 一次性安装 Pigsty

NODE 模块

./node.yml -l <cls|ip>           # 添加节点
./node-rm.yml -l <cls|ip>        # 移除节点
bin/node-add <cls|ip>            # 添加节点 (包装脚本)
bin/node-rm <cls|ip>             # 移除节点 (包装脚本)

ETCD 模块

./etcd.yml                       # 初始化 etcd 集群
./etcd-rm.yml                    # 移除 etcd 集群
bin/etcd-add <ip>                # 添加 etcd 成员 (包装脚本)
bin/etcd-rm <ip>                 # 移除 etcd 成员 (包装脚本)

PGSQL 模块

./pgsql.yml -l <cls>             # 初始化 PostgreSQL 集群
./pgsql-rm.yml -l <cls>          # 移除 PostgreSQL 集群
./pgsql-user.yml -l <cls> -e username=<user>   # 创建业务用户
./pgsql-db.yml -l <cls> -e dbname=<db>         # 创建业务数据库
./pgsql-monitor.yml -e clsname=<cls>           # 监控远程集群
./pgsql-migration.yml -e@files/migration/<cls>.yml  # 生成迁移手册
./pgsql-pitr.yml -l <cls> -e '{"pg_pitr": {}}'      # 执行 PITR 恢复

bin/pgsql-add <cls>              # 初始化集群 (包装脚本)
bin/pgsql-rm <cls>               # 移除集群 (包装脚本)
bin/pgsql-user <cls> <user>      # 创建用户 (包装脚本)
bin/pgsql-db <cls> <db>          # 创建数据库 (包装脚本)
bin/pgsql-svc <cls>              # 刷新服务 (包装脚本)
bin/pgsql-hba <cls>              # 重载 HBA (包装脚本)
bin/pgmon-add <cls>              # 监控远程集群 (包装脚本)

REDIS 模块

./redis.yml -l <cls>             # 初始化 Redis 集群
./redis-rm.yml -l <cls>          # 移除 Redis 集群

MINIO 模块

./minio.yml -l <cls>             # 初始化 MinIO 集群
./minio-rm.yml -l <cls>          # 移除 MinIO 集群

FERRET 模块

./mongo.yml -l ferret            # 安装 FerretDB

DOCKER 模块

./docker.yml -l <host>           # 安装 Docker

最后修改 2025-12-29: update config template docs (1193a39)