PostgreSQL In Great STYle**: Postgres, Infras, Graphics, Service, Toolbox, it's all Yours.
— Battery-Included, Local-First PostgreSQL Distribution as an Open-Source RDS Alternative
Website | Demo | Blog | Discuss | Discord | Roadmap | 站点 | 博客
Get Started with the latest v2.7.0 release: curl -fsSL https://get.pigsty.cc/i | bash
Pigsty is your postgres, infra, grafana service toolbox. Подробности смотрите на Feature | 特性 и Demo.
В Pigsty доступно 255 уникальных расширений, из которых 34 поддерживаются самим Pigsty.
Настройте всё одной командой! Подробности смотрите в Get Started | 快速上手.
Подготовьте свежий узел Linux x86_64, который работает на совместимой ОС.
Запустите скрипт install
от имени администратора с привилегиями nopass ssh & sudo:
bash -c "$(curl -fsSL https://get.pigsty.cc/install)"
cd ~/pigsty; ./bootstrap; ./configure; ./install.yml;
После этого у вас будет готов узел Pigsty, с веб-сервисами на портах 80/443 и Postgres на порту 5432.
Если вам не нравится идея запуска скрипта install
из интернета, вы можете загрузить исходный архив tarball Pigsty и выполнить автономную установку без доступа к интернету.
$ bash -c "$(curl -fsSL https://get.pigsty.cc/install)"
[v2.7.0] ===========================================
$ curl -fsSL https://pigsty.cc/install | bash
[Site] https://pigsty.io
[Demo] https://demo.pigsty.cc
[Repo] https://github.com/Vonng/pigsty
[Docs] https://pigsty.io/docs/setup/install
[Download] ===========================================
[ OK ] version = v2.7.0 (from default)
curl -fSL https://get.pigsty.cc/v2.7.0/pigsty-v2.7.0.tgz -o /tmp/pigsty-v2.7.0.tgz
########################################################################### 100.0%
[ OK ] md5sums = some_random_md5_hash_value_here_ /tmp/pigsty-v2.7.0.tgz
[Install] ===========================================
[ OK ] install = /home/vagrant/pigsty, from /tmp/pigsty-v2.7.0.tgz
[Resource] ===========================================
[HINT] rocky 8 have [OPTIONAL] offline package available: https://pigsty.io/docs/setup/offline
curl -fSL https://github.com/Vonng/pigsty/releases/download/v2.7.0/pigsty-pkg-v2.7.0.el8.x86_64.tgz -o /tmp/pkg.tgz
curl -fSL https://get.pigsty.cc/v2.7.0/pigsty-pkg-v2.7.0.el8.x86_64.tgz -o /tmp/pkg.tgz # or use alternative CDN
[TodoList] ===========================================
cd /home/vagrant/pigsty
./bootstrap # [OPTIONAL] install ansible & use offline package
./configure # [OPTIONAL] preflight-check and config generation
./install.yml # install pigsty modules according to your config.
[Complete] ===========================================
HINT: Чтобы установить конкретную версию, передайте строку версии в качестве первого параметра:
bash -c "$(curl -fsSL https://get.pigsty.cc/i)" -- v2.6.0 curl -fsSL https://get.pigsty.cc/i | bash -s v2.6.0 ``` **with Git**
Вы также можете скачать исходный код pigsty с помощью команды git, не забудьте проверить тег конкретной версии, ветка master предназначена для разработки.
git clone https://github.com/Vonng/pigsty;
cd pigsty; git checkout v2.7.0
Скачать напрямую
Также можно скачать исходный архив pigsty и автономные пакеты напрямую с GitHub Release page.
Пакет | Страница GitHub | Зеркало CDN |
---|---|---|
Исходный архив Pigsty | pigsty-v2.7.0.tgz | pigsty-v2.7.0.tgz |
Автономный пакет EL8 | pigsty-pkg-2.7.0.el8.x86_64.tgz | pigsty-pkg-2.7.0.el8.x86_64.tgz |
Автономный пакет Debian 12 | pigsty-pkg-v2.7.0.debian12.x86_64.tgz | pigsty-pkg-v2.7.0.debian12.x86_64.tgz |
Автономный пакет Ubuntu 22.04 | pigsty-pkg-v2.7.0.ubuntu22.x86_64.tgz | pigsty-pkg-v2.7.0.ubuntu22.x86_64.tgz |
# Скачать исходный архив Pigsty напрямую с GitHub с помощью curl
curl -L https://github.com/Vonng/pigsty/releases/download/v2.7.0/pigsty-v2.7.0.tgz -o ~/pigsty.tgz # Исходный архив Pigsty
curl -L https://github.com/Vonng/pigsty/releases/download/v2.7.0/pigsty-pkg-v2.7.0.el8.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Rocky 8.9 (Green Obsidian)
curl -L https://github.com/Vonng/pigsty/releases/download/v2.7.0/pigsty-pkg-v2.7.0.debian12.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Debian 12 (bookworm, 12.4)
curl -L https://github.com/Vonng/pigsty/releases/download/v2.7.0/pigsty-pkg-v2.7.0.ubuntu22.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Ubuntu 22.04 (jammy, 22.04.3)
# Или использовать альтернативный CDN в Китае
curl -L https://get.pigsty.cc/v2.7.0/pigsty-v2.7.0.tgz -o ~/pigsty.tgz # Исходный архив Pigsty
curl -L https://get.pigsty.cc/v2.7.0/pigsty-pkg-v2.7.0.el8.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Rocky 8.9 (Green Obsidian)
curl -L https://get.pigsty.cc/v2.7.0/pigsty-pkg-v2.7.0.debian12.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Debian 12 (bookworm, 12.4)
curl -L https://get.pigsty.cc/v2.7.0/pigsty-pkg-v2.7.0.ubuntu22.x86_64.tgz -o /tmp/pkg.tgz # Автономный пакет для Ubuntu 22.04 (jammy, 22.04.3)
Обратите внимание, что автономные пакеты, предназначенные для определённой минорной версии ОС, могут не подойти для другой минорной версии (например, 8.6, 22.04.2). В этом случае рекомендуется не использовать автономный пакет и выполнить стандартную установку из сети.
Пример: Установка с использованием автономного пакета (EL8)
# Пример: установка с использованием автономного пакета (EL8)
[](https://asciinema.org/a/659637)
``` Несколько доступных модулей по умолчанию:
* INFRA (https://pigsty.io/docs/infra/): локальный репозиторий yum|apt, Nginx, DNS и весь стек наблюдаемости Prometheus & Grafana.
* NODE (https://pigsty.io/docs/node/): имя инициализирующего узла, репозиторий, пакет, NTP, ssh, admin, настройка, предоставление служб, сбор журналов и метрик.
* ETCD (https://pigsty.io/docs/etcd/): инициализация кластера etcd для HA Postgres DCS или Kubernetes, используется в качестве распределённого хранилища конфигурации.
* PGSQL (https://pigsty.io/docs/pgsql/): автономный самовосстанавливающийся кластер PostgreSQL на базе Patroni, Pgbouncer, PgBackrest & HAProxy.
* REDIS (https://pigsty.io/docs/redis/): развёртывание серверов Redis в автономном режиме master-replica, sentinel и собственном кластерном режиме (необязательно).
* MINIO (https://pigsty.io/docs/minio/): сервис хранения объектов, совместимый с S3, используемый в качестве дополнительного центрального сервера резервного копирования для PGSQL (необязательно).
Вы можете свободно составлять их декларативным образом. Если вам нужен мониторинг хоста, будет достаточно INFRA и NODE. ETCD и PGSQL используются для кластеров HA PG, установка их на нескольких узлах автоматически сформирует кластер HA. Вы также можете повторно использовать инфраструктуру pigsty и разрабатывать собственные модули, такие как KAFKA, MYSQL, GPSQL и другие.
По умолчанию playbook install.yml (https://github.com/Vonng/pigsty/blob/master/install.yml) в разделе «Начало работы» установит INFRA, NODE, ETCD и PGSQL на текущем узле. Это даст вам готовый экземпляр PostgreSQL с одним узлом (admin_ip:5432). Этот узел можно использовать в качестве центра администрирования и поставщика инфраструктуры для управления, развёртывания и мониторинга большего количества узлов и кластеров.
----------------
## Больше кластеров
Чтобы развернуть 3-узловой кластер HA Postgres с потоковой репликацией, определите новый кластер на all.children.pg-test файла pigsty.yml (https://github.com/Vonng/pigsty/blob/master/pigsty.yml):
```yaml
pg-test:
hosts:
10.10.10.11: { pg_seq: 1, pg_role: primary }
10.10.10.12: { pg_seq: 2, pg_role: replica }
10.10.10.13: { pg_seq: 3, pg_role: offline }
vars: { pg_cluster: pg-test }
Затем создайте его с помощью встроенных плейбуков:
bin/pgsql-add pg-test # init pg-test cluster
(https://pigsty.io/img/pigsty/ha.png)
Вы можете развёртывать различные типы ролей экземпляров, такие как первичный, реплики, офлайн, отложенный, синхронизированный резервный, а также различные виды кластеров, такие как резервные кластеры, кластеры Citus и даже кластеры Redis / MinIO / Etcd.
pg-meta:
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary , pg_offline_query: true } }
vars:
pg_cluster: pg-meta
pg_databases: # define business databases on this cluster, array of database definition
- name: meta # REQUIRED, `name` is the only mandatory field of a database definition
baseline: cmdb.sql # optional, database sql baseline path, (relative path among ansible search path, e.g files/)
pgbouncer: true # optional, add this database to pgbouncer database list? true by default
schemas: [pigsty] # optional, additional schemas to be created, array of schema names
extensions: # optional, additional extensions to be installed: array of `{name[,schema]}`
- { name: postgis , schema: public }
- { name: timescaledb }
comment: pigsty meta database # optional, comment string for this database
owner: postgres # optional, database owner, postgres by default
template: template1 # optional, which template to use, template1 by default
encoding: UTF8 # optional, database encoding, UTF8 by default. (MUST same as template database)
locale: C # optional, database **Пример: Citus Distributed Cluster: 5 Nodes**
all:
children:
pg-citus0: # citus coordinator, pg_group = 0
hosts: { 10.10.10.10: { pg_seq: 1, pg_role: primary } }
vars: { pg_cluster: pg-citus0 , pg_group: 0 } **pg-citus1:**
# citus data node 1
hosts: { 10.10.10.11: { pg_seq: 1, pg_role: primary } }
vars: { pg_cluster: pg-citus1 , pg_group: 1 }
**pg-citus2:**
# citus data node 2
hosts: { 10.10.10.12: { pg_seq: 1, pg_role: primary } }
vars: { pg_cluster: pg-citus2 , pg_group: 2 }
**pg-citus3:**
# citus data node 3, with an extra replica
hosts:
10.10.10.13: { pg_seq: 1, pg_role: primary }
10.10.10.14: { pg_seq: 2, pg_role: replica }
vars: { pg_cluster: pg-citus3 , pg_group: 3 }
**vars:** # глобальные параметры для всех кластеров citus
pg_mode: citus # pgsql кластерный режим: citus
pg_shard: pg-citus # имя citus shard: pg-citus
patroni_citus_db: meta # распределённая база данных citus с именем meta
pg_dbsu_password: DBUser.Postgres # доступ ко всем dbsu для кластера citus
pg_libs: 'citus, timescaledb, pg_stat_statements, auto_explain' # citus будет добавлен patroni автоматически
pg_extensions:
- postgis34_${ pg_version }* timescaledb-2-postgresql-${ pg_version }* pgvector_${ pg_version }* citus_${ pg_version }*
pg_users: [ { name: dbuser_meta ,password: DBUser.Meta ,pgbouncer: true ,roles: [ dbrole_admin ] } ]
pg_databases: [ { name: meta ,extensions: [ { name: citus }, { name: postgis }, { name: timescaledb } ] } ]
pg_hba_rules:
- { user: 'all' ,db: all ,addr: 127.0.0.1/32 ,auth: ssl ,title: 'доступ всех пользователей ssl с localhost' }
- { user: 'all' ,db: all ,addr: intra ,auth: ssl ,title: 'доступ всех пользователей ssl из интранета' } ```
,ip: 10.10.10.10 , port: 9000 , options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
- { name: minio-2 ,ip: 10.10.10.11 , port: 9000 , options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
- { name: minio-3 ,ip: 10.10.10.12 , port: 9000 , options: 'check-ssl ca-file /etc/pki/ca.crt check port 9000' }
Проверьте Конфигурацию и Конфигурацию PGSQl для получения подробной информации.
Документация: https://pigsty.io/
Веб-сайт: https://pigsty.io/ | https://pigsty.cc/zh/
WeChat: найдите «pigsty-cc», чтобы присоединиться к группе WeChat.
Telegram: https://t.me/joinchat/gV9zfZraNPM3YjFh
Discord: https://discord.gg/j5pG8qfKxU
Автор: Vonng (rh@vonng.com)
Лицензия: AGPL-3.0
Copyright: 2018–2024 rh@vonng.com
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )