PIGSTY

配置

如何配置 pigsty 清单文件?

configure 脚本将根据您的环境和输入生成具有良好默认值的 pigsty.yml 配置文件清单。 它是 可选的,您可以直接编辑 pigsty.yml,如教程所示。


用法

除非指定了 -n|--non-interactive,否则 configure 脚本是一个交互式向导。

~/pigsty/configure
./configure
    [-c|--conf <confname>   # [meta|dual|trio|full|app/supa|...]
    [-i|--ip <ip>]          # 主 IP 地址(使用 -s 跳过)
    [-v|--version <pgver>   # [17|16|15|14|13]
    [-r|--region <region>   # [default|china|europe]
    [-s|--skip]             # 跳过 IP 地址探测
    [-x|--proxy]            # 从环境变量写入代理环境
    [-n|--non-interactive]  # 非交互模式
    [-p|--port <port>]      # 指定 SSH 端口(仅在设置时使用)
选项描述
-c|--conf根据此参数从配置模板生成配置
-i|--ip用给定 IP 替换 IP 地址占位符 10.10.10.10
-v|--version指定 PostgreSQL 主版本号(13|14|15|16|17
-r|--region根据 region 设置上游仓库镜像(default|china|europe
-x|--proxy将当前代理环境写入配置 proxy_env
-s|--skip跳过交互式向导并使用默认/参数值
-n|--non-interactive非交互模式
-p|--port指定 SSH 端口(仅在设置时使用)

示例

./configure                # 如果只有一个 IP 地址,否则会要求您输入
./configure -i 10.11.12.13 # 明确告诉主 IP 地址
./configure -c rich -v 16  # 使用 conf/rich.yml 作为模板,使用 PG 16 和所有扩展
./configure -c app/supa    # 使用 app/supa 模板,运行自托管 supabase
./configure -c mssql       # 使用 babelfish 模板,运行 MSSQL 兼容的 PG 内核分支
./configure -c full -s     # 使用 4 节点沙箱配置模板,不进行 IP 替换和探测
./configure -r china       # 使用中国镜像而不是默认仓库

configure 输出示例:

./configure
[vagrant@node-1 pigsty]$ ./configure
configure pigsty v3.6.0 begin
[ OK ] region = china
[ OK ] kernel  = Linux
[ OK ] machine = x86_64
[ OK ] package = rpm,dnf
[ OK ] vendor  = rocky (Rocky Linux)
[ OK ] version = 9 (9.5)
[ OK ] sudo = vagrant ok
[ OK ] ssh = vagrant@127.0.0.1 ok
[WARN] Multiple IP address candidates found:
    (1) 192.168.121.193	    inet 192.168.121.193/24 brd 192.168.121.255 scope global dynamic noprefixroute eth0
    (2) 10.10.10.11	    inet 10.10.10.11/24 brd 10.10.10.255 scope global noprefixroute eth1
[ IN ] INPUT primary_ip address (of current meta node, e.g 10.10.10.10):
=> 10.10.10.11
[ OK ] primary_ip = 10.10.10.11 (from input)
[ OK ] admin = vagrant@10.10.10.11 ok
[ OK ] mode = meta (el9)
[ OK ] locale  = C.UTF-8
[ OK ] configure pigsty done
proceed with ./install.yml

行为

配置模板

如果指定了 -c|--conf <template>,它将从指定的模板生成配置文件。例如 metaapp/supa 等... 如果没有给出配置模板,它将使用默认的单节点配置模板 meta

IP 地址

如果指定了 -i|--ip <ipaddr>,它将用给定的 IP 地址替换配置模板中的占位符 10.10.10.10。 否则,如果当前节点只有一个 IP 地址,将使用该地址。如果有多个 IP 地址,它会要求您手动输入当前节点的主 IP 地址。

PostgreSQL 版本

如果指定了 -v|--version,它将使用指定的 PostgreSQL 主版本号,范围从 1317。 如果没有指定版本,它会保持 pg_version 不变,通常默认回退到 17

区域

如果指定了 -r|--region,它将直接使用指定的区域。在无法访问 Google 服务的地方将使用 china 镜像。

代理环境

如果指定了 -x|--proxy,它将把当前代理环境变量写入配置 proxy_env。 在安装期间将被重用。包括:HTTP_PROXYHTTPS_PROXYALL_PROXYNO_PROXY

跳过模式

如果指定了 -s|--skip,它将跳过 IP 地址替换和 ssh sudo 权限检查

非交互模式

如果指定了 -n|--non-interactive,此脚本不会询问您任何事情,但您必须使用 -i|--ip <ipaddr> 明确指定主 IP 地址。

SSH 端口

如果指定了 -p|--port,它将使用指定的 SSH 端口而不是默认的 22。 当您的本地 SSH 端口不是 22 时使用。

低端硬件优化

如果当前节点 CPU 核心数 ≤ 4,它将对 pg_confnode_tune 使用 tiny 模式以优化低端硬件。

区域设置

Pigsty 将使用 C.UTF-8 作为默认区域设置,如果:

  • PostgreSQL 主版本 ≥ 17,具有内置本地提供程序(默认)
  • 或者,您的系统支持 C.utf8 / C.utf-8 区域设置(locale -a

否则,默认将使用本地 C