1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-pigsty

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

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

Features

Pigsty is your postgres, infra, grafana service toolbox. Подробности смотрите на Feature | 特性 и Demo.

В Pigsty доступно 255 уникальных расширений, из которых 34 поддерживаются самим Pigsty.

Get Started

Настройте всё одной командой! Подробности смотрите в 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)
[![asciicast](https://asciinema.org/a/659637.svg)](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.

Пример: Сложный Postgres Customize
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' }
Пример: установка изолированной среды Pigsty с 4 узлами

asciicast

Проверьте Конфигурацию и Конфигурацию 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 )

Вы можете оставить комментарий после Вход в систему

Введение

Pigsty — это дистрибутив с открытым исходным кодом PostgreSQL, готовый к использованию сразу после установки. Развернуть Свернуть
AGPL-3.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/mirrors-pigsty.git
git@api.gitlife.ru:oschina-mirror/mirrors-pigsty.git
oschina-mirror
mirrors-pigsty
mirrors-pigsty
master