安装部署
Module:
简短版本
准备 一个安装了 兼容 操作系统的 Linux x86_64 节点,使用带有免密 sudo
权限的用户,执行以下命令:
curl -L https://get.pigsty.cc/latest | bash
该命令会 下载 并解压 Pigsty 源码至家目录,依次完成 配置 与安装 即可完成安装。
cd ~/pigsty # 下载源码包解压后进入 Pigsty 源码目录,完成后续 准备、配置、安装 三个步骤
./bootstrap # 【可选项】用于确保 Ansible 正常安装,如果 /tmp/pkg.tgz 离线包则使用它
./configure # 【可选项】执行环境检测,并生成相应的推荐配置文件,如果知道如何配置可以跳过
./install.yml # 根据生成的配置文件开始在当前节点上执行安装,使用离线安装包大概需要10分钟完成
安装完成后,您可以通过域名,或80/443
端口通过 Nginx 访问 WEB 界面,
通过 5432
端口访问默认的 PostgreSQL 数据库 服务。
您可以继续使用 Pigsty 纳管 更多 节点,并部署各种 模块。
准备
关于准备工作的完整详细说明,请参考 入门:准备工作 一节。
Pigsty 支持 Linux
内核与 x86_64/amd64
架构,运行于物理机、虚拟机环境中,要求使用静态IP地址。
最低配置要求为 1C1G
,推荐至少使用 2C4G
以上的机型,上不封顶,参数会自动优化适配。
我们强烈建议您使用刚安装完操作系统的全新节点部署,从而避免无谓的安装异常问题,建议使用 RockyLinux 8.9 或 Ubuntu 22.04.3, 支持的完整操作系统列表请参考 兼容性。
在安装 Pigsty 的管理节点上,您需要拥有 ssh
登陆权限与 sudo
权限:如果您的部署涉及多个节点,您应当确保当前管理用户在当前管理节点上,可以通过 SSH 公钥免密登陆其他被管理的节点(包括本节点)。
Pigsty 依赖 Ansible 执行剧本,在执行安装前,您需要先安装 ansible
与 jmespath
软件包。您还可以通过 bootstrap
脚本完成这一任务,特别是当您没有互联网访问时。
sudo dnf install -y ansible python3.11-jmespath
sudo yum install -y ansible # EL7 无需显式安装 Jmespath
sudo apt install -y ansible python3-jmespath
brew install ansible
避免使用 root 用户安装
尽管使用root
用户安装 Pigsty 是可行的,但 安全最佳实践
是使用一个不同于根用户(root
)与数据库超级用户 (postgres
) 的专用管理员用户(如:dba
),
Pigsty 安装过程中会默认创建由配置文件指定的可选管理员用户 dba
下载
您可以使用以下命令自动下载、解压 Pigsty 源码包至 ~/pigsty
目录下使用:
curl -L https://get.pigsty.cc/latest | bash
一键下载脚本的样例输出
$ bash -c "$(curl -fsSL https://get.pigsty.cc/latest)"
[Checking] ===========================================
[ OK ] SOURCE from CDN due to GFW
FROM CDN : bash -c "$(curl -fsSL https://get.pigsty.cc/latest)"
FROM GITHUB : bash -c "$(curl -fsSL https://raw.githubusercontent.com/Vonng/pigsty/master/bin/latest)"
[Downloading] ===========================================
[ OK ] download pigsty source code from CDN
[ OK ] $ curl -SL https://get.pigsty.cc/v2.6.0/pigsty-v2.6.0.tgz
....
MD5: xxxx /tmp/pigsty-v2.6.0.tgz
[Extracting] ===========================================
[ OK ] extract '/tmp/pigsty-v2.6.0.tgz' to '/home/dba/pigsty'
[ OK ] $ tar -xf /tmp/pigsty-v2.6.0.tgz -C ~;
[Reference] ===========================================
Website: https://pigsty.io
Public Demo: https://demo.pigsty.cc
Github Repo: https://github.com/Vonng/pigsty
[Proceeding] ===========================================
cd ~/pigsty # entering pigsty home directory before proceeding
./bootstrap # install ansible & download the optional offline packages
./configure # preflight-check and generate config according to your env
./install.yml # install pigsty on this node and init it as the admin node
对于没有互联网访问的环境,您可以参考 离线安装 的说明, 提前下载好源码包,与可选的离线软件包,手工上传至目标服务器,并解压使用。 GitHub Release 页面提供下载,您也可以直接使用以下 URL:
- GitHub: https://github.com/Vonng/pigsty/releases/download/v2.6.0/pigsty-v2.6.0.tgz
- 中国CDN: https://get.pigsty.cc/v2.6.0/pigsty-v2.6.0.tgz
curl https://get.pigsty.cc/v2.6.0/pigsty-v2.6.0.tgz -o pigsty.tgz
tar -xvf pigsty.tgz -C ~ ; cd ~/pigsty ; # 手工下载,并解压至家目录中
你也可以使用 git
来下载 Pigsty 源代码,请 务必 检出特定版本后使用。
git clone https://github.com/Vonng/pigsty; cd pigsty; git checkout v2.6.0;
配置
配置 / configure
会根据您当前的环境,自动生成推荐的(单机安装) pigsty.yml
配置文件。
提示: 如果您已经了解了如何配置 Pigsty,configure
这个步骤是可选的,可以跳过。
./configure # 不带参数会自动推荐配置,并交互式问询
./configure [-i|--ip <ipaddr>] [-m|--mode <name>] # 选择首要 IP 地址与配置模板
[-r|--region <default|china|europe>] # 选择镜像源区域
[-n|--non-interactive] # 跳过交互式向导
配置 / configure 过程的样例输出
$ ./configure
configure pigsty v2.6.0 begin
[ OK ] region = china
[ OK ] kernel = Linux
[ OK ] machine = x86_64
[ OK ] package = rpm,dnf
[ OK ] vendor = rocky (Rocky Linux)
[ OK ] version = 8 (8.6)
[ OK ] sudo = dba ok
[ OK ] ssh = [email protected] ok
[WARN] Multiple IP address candidates found: # 如果有多个 IP 地址,需要你选择一个(输入IP地址)
(1) 10.10.10.10 inet 10.10.10.10/16 brd 10.10.255.255 scope global noprefixroute eth0
(2) 172.17.0.1 inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
(3) 172.18.0.1 inet 172.18.0.1/16 brd 172.18.255.255 scope global br-9847524528bc
[ OK ] primary_ip = 10.10.10.10 (from demo)
[ OK ] admin = [email protected] ok
[ OK ] config = el @ 10.10.10.10 [tiny -> oltp]
[ OK ] configure pigsty done
proceed with ./install.yml
-m|--mode
: 用于直接指定配置 模板 : (auto|el|el7|ubuntu|debian|demo|prod|...
)-i|--ip
: 当前主机的首要内网IP地址,用于替换配置文件中的 IP 地址占位符10.10.10.10
。-r|--region
: 用于指定上游软件源的区域,加速下载: (default|china|europe
)-n|--non-interactive
: 直接使用命令行参数提供首要IP地址,跳过交互式向导。
如果您的机器网卡绑定了多个 IP 地址,那么需要使用 -i|--ip <ipaddr>
显式指定一个当前节点的首要 IP 地址,或在交互式问询中提供。
选用的地址应为静态 IP 地址,请勿使用公网 IP 地址。
配置过程生成的配置文件默认位于:~/pigsty/pigsty.yml
,您可以在安装前进行检查与修改定制。
修改默认密码!
我们强烈建议您在安装前,事先修改配置文件中使用的默认密码与凭据,详情参考 安全考量。安装
使用 install.yml
剧本,默认在当前节点上完成标准的单节点 Pigsty 安装。
./install.yml # 一次性在所有节点上完成安装
安装过程的样例输出
[vagrant@meta pigsty]$ ./install.yml
PLAY [IDENTITY] ********************************************************************************************************************************
TASK [node_id : get node fact] *****************************************************************************************************************
changed: [10.10.10.12]
changed: [10.10.10.11]
changed: [10.10.10.13]
changed: [10.10.10.10]
...
...
PLAY RECAP **************************************************************************************************************************************************************************
10.10.10.10 : ok=288 changed=215 unreachable=0 failed=0 skipped=64 rescued=0 ignored=0
10.10.10.11 : ok=263 changed=194 unreachable=0 failed=0 skipped=88 rescued=0 ignored=1
10.10.10.12 : ok=263 changed=194 unreachable=0 failed=0 skipped=88 rescued=0 ignored=1
10.10.10.13 : ok=153 changed=121 unreachable=0 failed=0 skipped=53 rescued=0 ignored=1
localhost : ok=3 changed=0 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0
这是一个 Ansible 剧本,您可以使用以下参数控制其执行的目标、任务、并传递额外的命令参数:
-l
: 限制执行的目标对象-t
: 限制要执行的任务-e
: 传入额外的命令行参数- …
避免重复执行安装!
警告: 在已经初始化的环境中再次运行 install.yml
会重置整个环境,所以请务必小心!
此剧本仅用于初始安装,安装完毕后可以用 chmod a-x install.yml
来避免此剧本的误执行。
用户界面
当安装完成后,当前节点会安装有四个 核心模块:PGSQL
,INFRA
,NODE
,ETCD
。
本机上的 PGSQL 模块提供了一个开箱即用的单机 PostgreSQL 数据库实例,默认可以使用以下连接串 访问:
psql postgres://dbuser_dba:[email protected]/meta # DBA / 超级用户(IP直连)
psql postgres://dbuser_meta:[email protected]/meta # 业务管理员用户,读/写/DDL变更
psql postgres://dbuser_view:DBUser.View@pg-meta/meta # 只读用户(走域名访问)
本机上的 INFRA 模块为您提供了监控基础设施,默认使用的域名与端口如下所示:
组件 | 端口 | 域名 | 说明 | Demo地址 |
---|---|---|---|---|
Nginx | 80/443 | h.pigsty |
Web 服务总入口,本地YUM源 | home.pigsty.cc |
AlertManager | 9093 | a.pigsty |
告警聚合/屏蔽页面 | a.pigsty.cc |
Grafana | 3000 | g.pigsty |
Grafana 监控面板 | demo.pigsty.cc |
Prometheus | 9090 | p.pigsty |
Prometheus 管理界面 | p.pigsty.cc |
Grafana 监控系统(g.pigsty / 3000端口)的默认用户名与密码为:
admin
/pigsty
您可以通过 IP地址 + 端口的方式直接访问这些服务。但我们更推荐您使用域名通过 Nginx 80/443 端口代理访问所有组件。
使用域名访问 Pigsty WebUI 时,您需要配置 DNS 解析,或者修改本地的 /etc/hosts
静态解析文件。
如何通过域名访问 Pigsty WebUI ?
客户端可以通过几种不同的办法来使用域名访问:
- 通过 DNS 服务商解析互联网域名,适用于公网可访问的系统。
- 通过配置内网 DNS 服务器解析记录实现内网域名解析。
- 修改本机的
/etc/hosts
文件添加静态解析记录。(Windows下为:)
我们建议普通用户使用第三种方式,在使用浏览器访问 Web 系统的机器上,修改 /etc/hosts
(需要 sudo 权限)或 C:\Windows\System32\drivers\etc\hosts
(Windows)文件,添加以下的解析记录:
<your_public_ip_address> h.pigsty a.pigsty p.pigsty g.pigsty
这里的 IP 地址是安装 Pigsty 服务的 对外IP地址。
如何配置服务端使用的域名?
服务器端域名使用 Nginx 进行配置,如果您想要替换默认的域名,在参数 infra_portal
中填入使用的域名即可。
当您使用 http://g.pigsty
访问 Grafana 监控主页时,实际上是通过 Nginx 代理访问了 Grafana 的 WebUI:
http://g.pigsty ️-> http://10.10.10.10:80 (nginx) -> http://10.10.10.10:3000 (grafana)
如何使用 HTTPS 访问 Pigsty WebUI ?
Pigsty默认使用自动生成的自签名的 CA 证书为 Nginx 启用 SSL,如果您希望使用 HTTPS 访问这些页面,而不弹窗提示"不安全",通常有三个选择:
- 在您的浏览器或操作系统中信任 Pigsty 自签名的 CA 证书:
files/pki/ca/ca.crt
- 如果您使用 Chrome,可以在提示不安全的窗口键入
thisisunsafe
跳过提示 - 您可以考虑使用 Let’s Encrypt 或其他免费的 CA 证书服务,为 Pigsty Nginx 生成正式的 SSL证书。
更多
你可以使用 Pigsty 部署更多的集群,管理更多的节点,例如:
bin/node-add pg-test # 将集群 pg-test 的3个节点纳入 Pigsty 管理
bin/pgsql-add pg-test # 初始化一个3节点的 pg-test 高可用PG集群
bin/redis-add redis-ms # 初始化 Redis 集群: redis-ms
大多数模块都依赖 NODE
模块,请确保节点被 Pigsty 纳管后再加装其他模块。更多细节请参考 模块 详情:
PGSQL
,INFRA
,NODE
,ETCD
,MINIO
,REDIS
,MONGO
,DOCKER
,……
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.