配置参数

使用配置参数对 Pigsty 进行精细化定制
使用配置参数对 Pigsty 进行精细化定制

配置清单 中,您可以使用各种参数对 Pigsty 进行精细化定制。这些参数涵盖了从基础设施设置到数据库配置的各个方面。


参数列表

按照当前源码与参数参考页对账,Pigsty 的 10 个正式模块共有 373 个公开参数,用于精细控制系统的各个方面;完整列表见 参考-参数列表。原生 MySQL 8.4 试点模块的 13 个公开参数单列,不计入该合计。

模块参数组参数数说明
PGSQL9124PostgreSQL 高可用集群配置
INFRA1073软件仓库与 Victoria 可观测基础设施
NODE1173节点初始化、系统调优与运维基线
ETCD213ETCD 集群与移除保护参数
MINIO222Silo 部署、观测与移除参数
REDIS222Redis/Valkey 部署与移除参数
DOCKER18Docker 引擎参数
JUICE12JuiceFS 实例与缓存参数
VIBE118Code/Jupyter/Node.js/Claude/Codex 配置
KAFKA218Kafka 部署参数与移除保护参数

参数形式

参数 是用于描述实体的 键值对(Key)是字符串,(Value)可以是五种类型之一:布尔值、字符串、数字、数组或对象。

YAML
all:                            # <------- 顶级对象:all
  vars: 
    admin_ip: 10.10.10.10       # <------- 全局配置参数
  children:
    pg-meta:                    # <------- pg-meta 分组
      vars:
        pg_cluster: pg-meta     # <------- 集群级别参数
      hosts:
        10.10.10.10:            # <------- 主机节点 IP
          pg_seq: 1
          pg_role: primary      # <------- 实例级别参数
  

参数优先级

参数可以在不同级别设置,具有以下优先级:

级别位置描述优先级
命令行-e 命令行参数通过命令行传入最高 (5)
主机/实例<group>.hosts.<host>特定于单个主机的参数较高 (4)
分组/集群<group>.vars组/集群中主机共享的参数中等 (3)
全局all.vars所有主机共享的参数较低 (2)
默认<roles>/default/main.yml角色实现默认值最低 (1)

以下是关于参数优先级的一些示例:

  • 执行剧本时,使用命令行参数 -e grafana_clean=true 来抹除 Grafana 数据
  • 使用主机变量上的实例级别参数 pg_role 覆盖 pg 实例角色
  • 使用组变量上的集群级别参数 pg_cluster 覆盖 pg 集群名称。
  • 使用全局变量上的全局参数 node_ntp_servers 指定全局 NTP 服务器
  • 如果没有设置 pg_version,Pigsty 将使用 pgsql 角色实现的默认值(默认为 18

除了 身份参数 外,每个参数都有适当的默认值,因此无需显式设置。


身份参数

身份参数是特殊的参数,它们会作为实体的 ID 标识符,因此 没有默认值,必须 显式设置

模块身份参数
PGSQLpg_cluster, pg_seq, pg_role, …
NODEnodename, node_cluster
ETCDetcd_cluster, etcd_seq
MINIOminio_cluster, minio_seq
REDISredis_cluster, redis_node, redis_instances
INFRAinfra_seq

例外是 etcd_cluster 仍有默认值 etcd。 对象存储的 minio_cluster 已不再提供默认值,必须在每个对象存储集群的变量中显式定义; 不要放在 all.vars 中,否则会把所有主机标记为 MINIO 模块成员。