剧本

Pigsty 内置的 Ansible 剧本

Pigsty 使用幂等的 Ansible 剧本实现管理控制。执行剧本需要将 ansible-playbook 添加到系统 PATH 中,用户需要先 安装 Ansible 才能执行剧本。

可用剧本

模块剧本功能
INFRAinstall.yml一键式安装 Pigsty
INFRAinfra.yml在基础设施节点上初始化 Pigsty 基础设施
INFRAinfra-rm.yml从基础设施节点移除基础设施组件
INFRAcache.yml从目标节点制作离线安装包
INFRAcert.yml使用 Pigsty 自签名 CA 签发证书
NODEnode.yml初始化节点,将节点配置到预期状态
NODEnode-rm.yml从 Pigsty 中移除节点
PGSQLpgsql.yml初始化高可用 PostgreSQL 集群,或添加新从库
PGSQLpgsql-rm.yml移除 PostgreSQL 集群,或移除从库
PGSQLpgsql-db.yml向现有 PostgreSQL 集群添加新业务数据库
PGSQLpgsql-user.yml向现有 PostgreSQL 集群添加新业务用户
PGSQLpgsql-pitr.yml在现有 PostgreSQL 集群上执行时间点恢复(PITR)
PGSQLpgsql-monitor.yml使用本地导出器监控远程 PostgreSQL 实例
PGSQLpgsql-migration.yml为现有 PostgreSQL 生成迁移手册和脚本
PGSQLslim.yml以最小化组件安装 Pigsty
REDISredis.yml初始化 Redis 集群/节点/实例
REDISredis-rm.yml移除 Redis 集群/节点/实例
ETCDetcd.yml初始化 ETCD 集群,或添加新成员
ETCDetcd-rm.yml移除 ETCD 集群,或移除现有成员
MINIOminio.yml初始化 MinIO 集群
MINIOminio-rm.yml移除 MinIO 集群
DOCKERdocker.yml在节点上安装 Docker
DOCKERapp.yml使用 Docker Compose 安装应用
FERRETmongo.yml在节点上安装 Mongo/FerretDB

部署策略

install.yml 剧本会按照以下分组顺序协调各个专用剧本,完成完整部署:

  • infrainfra.yml(-l infra)
  • nodesnode.yml
  • etcdetcd.yml(-l etcd)
  • miniominio.yml(-l minio)
  • pgsqlpgsql.yml

循环依赖说明:NODE 和 INFRA 之间存在弱循环依赖:要将 NODE 注册到 INFRA,INFRA 必须已经存在;而 INFRA 模块又依赖 NODE 才能工作。 解决方法是先初始化 infra 节点,然后再添加其他节点。如果希望一次性完成所有部署,使用 install.yml 即可。


安全须知

大多数剧本都是幂等的,这意味着某些部署剧本在未开启保护选项的情况下,可能会擦除现有数据库并创建新数据库。 使用 pgsqlminioinfra 剧本时请特别小心。请仔细阅读文档,谨慎操作。

最佳实践

  1. 执行前仔细阅读剧本文档
  2. 发现异常时立即按 Ctrl-C 停止
  3. 先在非生产环境中进行测试
  4. 使用 -l 参数限定执行主机,避免影响非目标主机
  5. 使用 -t 参数指定特定标签,仅执行部分任务

预演模式

使用 --check --diff 选项可以预览将要进行的更改,而不实际执行:

# 预览将要进行的更改,但不实际执行
./pgsql.yml -l pg-test --check --diff

# 结合标签检查特定任务
./pgsql.yml -l pg-test -t pg_config --check --diff

最后修改 2025-12-19: update param docs (185bd5d)