Minimal Install
install Postgres with minimal dependencies
If you just want HA PostgreSQL itself, without monitoring, infra, etc..., consider the slim installation.
There’s no INFRA modules, no monitoring, no local repo Just ETCD & PGSQL and partial of NODE
Overview
To use slim installation, you need to:
Use the slim.yml config template (configure -c slim)
Run the slim.yml playbook instead of install.yml
curl https://repo.pigsty.cc/get | bash
./configure -c slim
./install.ymlSlim installation only installs these essential components:
| Component | Required | Description |
|---|---|---|
| patroni | REQUIRED | Bootstrap HA PostgreSQL cluster |
| etcd | REQUIRED | meta database dependency (DCS) for patroni |
| pgbouncer | OPTIONAL | Connection pooler for postgres |
| vip-manager | OPTIONAL | L2 VIP binding to postgres cluster leader |
| haproxy | OPTIONAL | Auto-routing service |
| chronyd | OPTIONAL | Time synchronization with NTP server |
| tuned | OPTIONAL | Node tuned template and kernel parameters management |
You can turn off the optional components, the only two required components are patroni and etcd.
Packages are directly installed from the Internet upstream repo, offline install is not applicable here.
Configure
Config file example: conf/slim.yml for slim installation:
all:
children:
infra: { hosts: { 10.10.10.10: { infra_seq: 1 }} ,vars: { repo_enabled: false }}
etcd: { hosts: { 10.10.10.10: { etcd_seq: 1 }} ,vars: { etcd_cluster: etcd }}
#----------------------------------------------#
# PostgreSQL Cluster
#----------------------------------------------#
pg-meta:
hosts:
10.10.10.10: { pg_seq: 1, pg_role: primary }
vars:
pg_cluster: pg-meta
pg_users:
- { name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [dbrole_admin ] ,comment: pigsty admin user }
- { name: dbuser_view ,password: DBUser.Viewer ,pgbouncer: true ,roles: [dbrole_readonly] ,comment: read-only viewer }
pg_databases:
- { name: meta, baseline: cmdb.sql ,comment: pigsty meta database ,schemas: [pigsty] ,extensions: [ vector ]}
pg_hba_rules:
- { user: dbuser_view , db: all ,addr: infra ,auth: pwd ,title: 'allow grafana dashboard access cmdb from infra nodes' }
node_crontab: [ '00 01 * * * postgres /pg/bin/pg-backup full' ] # make a full backup every 1am
vars:
#----------------------------------------------#
# INFRA : https://doc.pgsty.com/infra/param
#----------------------------------------------#
version: v3.6.1 # pigsty version string
admin_ip: 10.10.10.10 # admin node ip address
region: default # upstream mirror region: default,china,europe
infra_portal: # domain names and upstream servers
home : { domain: h.pigsty }
grafana : { domain: g.pigsty ,endpoint: "${admin_ip}:3000" , websocket: true }
prometheus : { domain: p.pigsty ,endpoint: "${admin_ip}:9090" }
alertmanager : { domain: a.pigsty ,endpoint: "${admin_ip}:9093" }
blackbox : { endpoint: "${admin_ip}:9115" }
loki : { endpoint: "${admin_ip}:3100" }
#----------------------------------------------#
# NODE : https://doc.pgsty.com/node/param
#----------------------------------------------#
nodename_overwrite: false # do not overwrite node hostname on single node mode
node_repo_modules: node,infra,pgsql # add these repos directly to the singleton node
node_tune: oltp # node tuning specs: oltp,olap,tiny,crit
#----------------------------------------------#
# PGSQL : https://doc.pgsty.com/pgsql/param
#----------------------------------------------#
pg_version: 17 # Default PostgreSQL Major Version is 17
pg_conf: oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.yml
pg_packages: [ pgsql-main, pgsql-common ] # pg kernel and common utils
#pg_extensions: [pg17-time ,pg17-gis ,pg17-rag ,pg17-fts ,pg17-feat ,pg17-lang ,pg17-type ,pg17-util ,pg17-func ,pg17-admin ,pg17-stat ,pg17-sec ,pg17-fdw ,pg17-sim ,pg17-etl ,pg17-olap]
#----------------------------------------------#
# SLIM: http://localhost:3000/docs/install/minimal
#----------------------------------------------#
nginx_enabled: false # nginx not exists
dns_enabled: false # dnsmasq not exists
prometheus_enabled: false # prometheus not exists
grafana_enabled: false # grafana not exists
pg_exporter_enabled: false # disable pg_exporter
pgbouncer_exporter_enabled: false # disable pgbouncer_exporter
pgbackrest_exporter_enabled: false # disable pgbackrest_exporter
pg_vip_enabled: false # disable pg_vipInstall
Use the slim.yml playbook instead of the install.yml playbook:
./slim.ymlDo not use install.yml here
The slim.yml playbook is designed to replace the install.yml playbook for the minimal installations.