剧本列表
Pigsty 预置剧本总览与导航
Pigsty 提供了一系列 Ansible 剧本用于自动化部署与管理各个模块,本页面提供了所有剧本的导航与汇总。
模块导航
| 模块 | 剧本数量 | 说明 |
|---|---|---|
| INFRA | 3 | 基础设施模块剧本 |
| NODE | 2 | 节点管理模块剧本 |
| ETCD | 2 | ETCD 集群管理剧本 |
| PGSQL | 7 | PostgreSQL 集群管理剧本 |
| REDIS | 2 | Redis 集群管理剧本 |
| MINIO | 2 | MinIO 对象存储管理剧本 |
| FERRET | 1 | FerretDB 管理剧本 |
| DOCKER | 1 | Docker 管理剧本 |
剧本汇总
以下表格列出了 Pigsty 中所有可用的预置剧本:
| 剧本 | 模块 | 功能 |
|---|---|---|
deploy.yml | INFRA | 在当前节点上一次性完整安装 Pigsty |
infra.yml | INFRA | 在 infra 节点上初始化 pigsty 基础设施 |
infra-rm.yml | INFRA | 从 infra 节点移除基础设施组件 |
node.yml | NODE | 纳管节点,调整节点到期望状态 |
node-rm.yml | NODE | 从 Pigsty 中移除纳管节点 |
etcd.yml | ETCD | 安装与配置 Etcd 集群 |
etcd-rm.yml | ETCD | 移除 Etcd 集群或成员 |
pgsql.yml | PGSQL | 初始化 PostgreSQL 集群或添加新的从库 |
pgsql-rm.yml | PGSQL | 移除 PostgreSQL 集群,或移除某个实例 |
pgsql-user.yml | PGSQL | 在现有的 PostgreSQL 集群中添加新的业务用户 |
pgsql-db.yml | PGSQL | 在现有的 PostgreSQL 集群中添加新的业务数据库 |
pgsql-monitor.yml | PGSQL | 将远程 PostgreSQL 实例纳入监控中 |
pgsql-migration.yml | PGSQL | 为现有的 PostgreSQL 集群生成迁移手册和脚本 |
pgsql-pitr.yml | PGSQL | 执行 PostgreSQL 时间点恢复 (PITR) |
redis.yml | REDIS | 初始化 Redis 集群/节点/实例 |
redis-rm.yml | REDIS | 移除 Redis 集群/节点/实例 |
minio.yml | MINIO | 安装 MinIO 集群 |
minio-rm.yml | MINIO | 移除 MinIO 集群 |
mongo.yml | FERRET | 在节点上安装 FerretDB |
docker.yml | DOCKER | 安装 Docker Daemon 与 Docker Compose |
剧本使用注意事项
保护机制
多个模块提供了防误删保险,通过 *_safeguard 参数控制:
- PGSQL:
pg_safeguard参数用于防止误删 PostgreSQL 集群 - ETCD:
etcd_safeguard参数用于防止误删 Etcd 集群 - MINIO:
minio_safeguard参数用于防止误删 MinIO 集群
默认情况下,这些 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_clean、vlogs_clean、vtraces_clean、grafana_clean、nginx_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