清单
每个 pigsty 部署都有一个对应的配置 清单。
它可以存储在 YAML 格式的本地配置文件中,或从 CMDB 或任何 ansible 兼容格式动态生成。
Pigsty 默认使用一个单一的 YAML 配置文件,即 pigsty.yml,位于 pigsty 主目录中。
pigsty/
configure 脚本将根据您的环境和输入生成具有良好默认值的 pigsty.yml 文件脚手架,
但它是 可选的:您始终可以直接编辑 pigsty.yml 文件,如教程所示。
结构
清单由两部分组成:全局变量 和多个 组。您可以在 all.children 中定义新集群。
并使用全局变量描述基础设施:all.vars。它可能看起来像这样:
在 conf/ 下有大量示例,在 configure 期间也可以用作模板。
集群
每个 ansible 组可能代表一个集群,可以是节点集群、PostgreSQL 集群、Redis 集群、Etcd 集群或 Minio 集群等…
集群定义由两部分组成:hosts 和 vars。
您可以在 <cls>.hosts 中定义集群成员,并在 <cls>.vars 中使用参数描述集群。
这是一个 3 节点 HA PG 集群的示例:
集群级别的 vars 将覆盖全局变量,主机级别的 vars 将覆盖集群变量和全局变量。
参数
参数是定义部署中所有实体的键值对。 键是字符串名称,值可以是五种类型之一:布尔值、字符串、数字、数组或对象。
参数可以在不同级别设置,具有以下优先级:
| 级别 | 位置 | 描述 | 优先级 |
|---|---|---|---|
| CLI 参数 | 命令行 | 通过 -e CLI 参数 |
最高 (5) |
| 主机变量 | <group>.hosts.<host> |
特定于单个主机的参数 | 高 (4) |
| 组变量 | <group>.vars |
组/集群中主机共享的参数 | 中等 (3) |
| 全局变量 | all.vars |
所有主机共享的参数 | 低 (2) |
| 默认值 | <roles>/default/main.yml |
角色实现默认值 | 最低 (1) |
以下是关于参数优先级的一些示例:
- 使用 Playbook CLI 参数
-e pg_version=16覆盖 PostgreSQL 主版本 - 使用主机变量上的实例级别参数
pg_role覆盖 pg 实例角色 - 使用组变量上的集群级别参数
pg_cluster覆盖 pg 集群名称。 - 使用全局变量上的全局参数
node_ntp_servers指定全局 NTP 服务器 - 如果没有设置
pg_version,pigsty 将使用角色实现的默认值(默认为18)
除了强制性的 身份参数 外,每个参数都有一个适当的默认值;它们用作标识符,必须明确设置。
例如上述片段中的 pg_cluster、pg_role 和 pg_seq。
可用参数根据模块而异:
参考
Pigsty 有 290+ 个参数,查看模块参数了解详细信息。
| 模块 | 部分 | 描述 | 数量 |
|---|---|---|---|
INFRA |
META |
Pigsty 元数据 | 4 |
INFRA |
CA |
自签名 CA | 3 |
INFRA |
INFRA_ID |
基础设施门户和身份 | 2 |
INFRA |
REPO |
本地软件仓库 | 9 |
INFRA |
INFRA_PACKAGE |
基础设施包 | 2 |
INFRA |
NGINX |
Nginx Web 服务器 | 7 |
INFRA |
DNS |
DNSMASQ 名称服务器 | 3 |
INFRA |
PROMETHEUS |
Prometheus 堆栈 | 18 |
INFRA |
GRAFANA |
Grafana 堆栈 | 6 |
INFRA |
LOKI |
Loki 日志服务 | 4 |
NODE |
NODE_ID |
节点身份参数 | 5 |
NODE |
NODE_DNS |
节点域名和解析器 | 6 |
NODE |
NODE_PACKAGE |
节点仓库和包 | 5 |
NODE |
NODE_TUNE |
节点调优和内核功能 | 10 |
NODE |
NODE_ADMIN |
管理员用户和凭据 | 7 |
NODE |
NODE_TIME |
节点时区、NTP、Crontabs | 5 |
NODE |
NODE_VIP |
节点 Keepalived L2 VIP | 8 |
NODE |
HAPROXY |
HAProxy 负载均衡器 | 10 |
NODE |
NODE_EXPORTER |
节点监控代理 | 3 |
NODE |
PROMTAIL |
Promtail 日志代理 | 4 |
DOCKER |
DOCKER |
Docker 守护进程 | 4 |
ETCD |
ETCD |
ETCD DCS 集群 | 10 |
MINIO |
MINIO |
MINIO S3 对象存储 | 15 |
REDIS |
REDIS |
Redis 键值 NoSQL 缓存 | 20 |
PGSQL |
PG_ID |
PG 身份参数 | 11 |
PGSQL |
PG_BUSINESS |
PG 业务对象定义 | 12 |
PGSQL |
PG_INSTALL |
安装 PG 包和扩展 | 10 |
PGSQL |
PG_BOOTSTRAP |
使用 Patroni 初始化 HA PG 集群 | 35 |
PGSQL |
PG_PROVISION |
创建数据库内对象 | 9 |
PGSQL |
PG_BACKUP |
使用 pgBackRest 设置备份仓库 | 5 |
PGSQL |
PG_ACCESS |
暴露服务、绑定 VIP、DNS | 16 |
PGSQL |
PG_MONITOR |
收集 Postgres 的指标和日志 | 18 |
PGSQL |
PG_EXPORTER |
移除 Postgres 集群 | 4 |