软件置备
区域设置、防火墙、Ansible、Pigsty...
Linux
Pigsty 运行在 Linux 操作系统上,它支持 10 种主流 Linux 发行版:兼容操作系统列表
我们推荐使用 RockyLinux 9.6、Debian 12.11 或 Ubuntu 24.04.5 作为默认操作系统选项。
在 macOS 上运行 pigsty?
您可以在 macOS 上安装 pigsty,并使用 ansible
从本地笔记本电脑发起控制。(用作管理节点)
但数据库/基础设施/节点/etcd 服务仍在 Linux 节点上运行。
我们强烈建议使用全新安装的操作系统环境,并将 en_US
设置为主要语言。
如何启用 en_US 区域设置?
在使用其他主要语言时确保 en_US
区域设置可用:
localedef -i en_US -f UTF-8 en_US.UTF-8
localectl set-locale LANG=en_US.UTF-8
Pigsty 不使用容器,主要组件针对特定发行版主版本打包。
在所有节点上使用相同的操作系统版本
请在单个部署中的所有节点上使用相同的操作系统主版本和次版本。
文件系统
Pigsty 建议使用 ext4
或 xfs
文件系统,两者在 PostgreSQL 用例上都有最好的性能表现。
如果您清楚知道自己在做什么,也可以考虑使用 zfs
这样的文件系统,但切勿使用 nfs
等网络文件系统运行数据库服务。
如果您需要使用到 MinIO,建议使用 xfs
文件系统,这是 MinIO 唯一推荐使用到文件系统。
它在大量小文件的场景中有更好的性能表现,但工具生态(例如数据恢复)略逊于 ext4
。
如果您只是运行标准 PostgreSQL 服务,我们建议您默认使用 Linux ext4
文件系统。
防火墙
您的安全策略和防火墙设置应该允许访问所需的端口。
要访问 WebUI 服务,您必须允许 HTTP(80
)/ HTTPS(443
)访问。
要访问 PostgreSQL 数据库服务,您必须允许 postgres 的 5432
端口。
您可以通过其他端口访问 postgres 服务
5432
: PostgreSQL 数据库6432
: Pgbouncer 连接池5433
: PG 主要服务5434
: PG 副本服务5436
: PG 默认服务5438
: PG 离线服务
如果您通过其他端口访问 postgres 服务,请相应地允许它们
在典型的公有云 VPS 设置中,端口 22/80/443/5432
通常是开放的。
谨慎公开数据库端口
直接向互联网暴露数据库服务端口是非常危险的。 如果您需要这样做,请考虑咨询 安全最佳实践 并谨慎进行。
在典型的生产设置中,端口 22/80/443
从 LAN / 跳板机向 DBA/OPS 开放。
其他端口从内网访问。您必须确保它们在内部开放:使用的端口。
Ansible
Pigsty 使用 Ansible 从管理节点发起对所有被管理节点的控制。
您不需要关心细节,ansible 在 Bootstrap 阶段安装。
手动安装 Ansible
sudo apt install -y ansible python3-jmespath
sudo dnf install -y ansible python3-jmespath
sudo dnf install -y ansible python3.12-jmespath
sudo yum install -y ansible python-jmespath
brew install ansible
pip3 install jmespath
Ansible 只在管理节点上需要,您可以在 macOS 上运行 ansible 将您的笔记本电脑用作管理节点。
Pigsty
(推荐)您可以使用以下方式获取并提取最新稳定版本的 pigsty 源代码:
curl -fsSL https://repo.pigsty.io/get | bash; cd ~/pigsty
curl -fsSL https://repo.pigsty.cc/get | bash; cd ~/pigsty # 中国镜像
要安装特定版本,将版本字符串作为第一个参数传递:
curl -fsSL https://repo.pigsty.io/get | bash -s v3.6.0; cd ~/pigsty
curl -fsSL https://repo.pigsty.cc/get | bash -s v3.6.0; cd ~/pigsty # 中国镜像
您也可以使用 git
从 GitHub 克隆 Pigsty 源代码仓库:
git clone https://github.com/pgsty/pigsty.git; cd ~/pigsty
使用前检出特定版本
默认的 main
分支可能处于不稳定的开发状态,使用前请 git checkout v3.6.0
。
$ curl -fssL https://repo.pigsty.cc/get | bash -s v3.6.0
[v3.6.0] ===========================================
$ curl -fsSL https://repo.pigsty.cc/get | bash
[Docs] https://doc.pgsty.com
[Demo] https://demo.pigsty.cc
[Repo] https://github.com/pgsty/pigsty
[Download] ===========================================
[ OK ] version = v3.6.0 (from arg)
curl -fSL https://repo.pigsty.cc/src/pigsty-v3.6.0.tgz -o /tmp/pigsty-v3.6.0.tgz
[WARN] tarball = /tmp/pigsty-v3.6.0.tgz exists, size = 1472486, use it
[ OK ] md5sums = df64ac0c2b5aab39dd29698a640daf2e /tmp/pigsty-v3.6.0.tgz
[Install] ===========================================
[ OK ] install = /home/vagrant/pigsty, from /tmp/pigsty-v3.6.0.tgz
[Bootstrap] ===========================================
[ OK ] ansible = ready
[ OK ] bootstrap = skip
you can run ./bootstrap to extrac offline package and install ansible
[TodoList] ===========================================
cd /home/vagrant/pigsty
./configure # [可选] 预检和配置生成
./install.yml # 部署配置描述的所有内容
您也可以从 GitHub Release Page 手动下载 pigsty 源代码(pigsty-<version>.tar.gz
):
wget https://repo.pigsty.io/src/pigsty-v3.6.0.tgz
wget https://pigsty.cc/pgsty/pigsty/releases/download/v3.6.0/pigsty-v3.6.0.tgz
wget https://github.com/pgsty/pigsty/releases/download/v3.6.0/pigsty-v3.6.0.tgz
如果您的环境没有互联网访问,请考虑与源代码压缩包一起下载离线软件包并将其上传到您的节点。
详情请查看 离线安装。