Обновить README.md
This commit is contained in:
188
README.md
188
README.md
@@ -1,19 +1,31 @@
|
||||
# Установка PostgreSQL for 1C 18 на Debian 13 одним запуском
|
||||
# Установка и удаление PostgreSQL for 1C 18 на Debian 13
|
||||
|
||||
В комплекте:
|
||||
|
||||
- `install_pg1c.sh` — основной установочный скрипт
|
||||
- `uninstall_pg1c.sh` — скрипт удаления
|
||||
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
|
||||
- `.env` — минимальный рабочий вариант без комментариев
|
||||
- `use.md` — пример подключения к Django
|
||||
|
||||
Скрипт автоматизирует официальный процесс установки Postgres Pro for 1C 18 по вашей инструкции:
|
||||
## Что делают скрипты
|
||||
|
||||
`install_pg1c.sh` автоматизирует установку Postgres Pro for 1C 18:
|
||||
|
||||
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
|
||||
- ставит пакет в режиме `standalone` или `parallel`
|
||||
- включает и запускает systemd-сервис
|
||||
- включает и запускает сервис
|
||||
- создает или обновляет пользователя PostgreSQL
|
||||
- при необходимости создает базу данных
|
||||
- при необходимости автоматически правит `pg_hba.conf`, чтобы логин работал по паролю, а не упирался в `peer`
|
||||
- адресно добавляет managed-блок в `pg_hba.conf` для вашего прикладного пользователя
|
||||
|
||||
`uninstall_pg1c.sh` автоматизирует удаление:
|
||||
|
||||
- останавливает сервис
|
||||
- отключает автозапуск
|
||||
- удаляет пакеты через `apt-get purge`
|
||||
- по желанию удаляет каталог данных
|
||||
- по желанию удаляет файл репозитория, auth-файл и GPG-ключ
|
||||
|
||||
## Что нужно
|
||||
|
||||
@@ -22,6 +34,24 @@
|
||||
- интернет-доступ до репозитория Postgres Pro
|
||||
- `git`, если хотите сначала стянуть готовые файлы из открытого репозитория
|
||||
|
||||
## Быстрый запуск из локальных файлов
|
||||
|
||||
### Установка
|
||||
|
||||
```bash
|
||||
cp env.example .env
|
||||
nano .env
|
||||
chmod +x install_pg1c.sh
|
||||
sudo ./install_pg1c.sh
|
||||
```
|
||||
|
||||
### Удаление
|
||||
|
||||
```bash
|
||||
chmod +x uninstall_pg1c.sh
|
||||
sudo ./uninstall_pg1c.sh
|
||||
```
|
||||
|
||||
## Вариант 1. ZIP архив
|
||||
|
||||
Скачиваем ZIP архив репозитория:
|
||||
@@ -29,14 +59,15 @@
|
||||
wget https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13/archive/main.zip -O pg18-1C_for_deb13.zip
|
||||
unzip pg18-1C_for_deb13.zip
|
||||
cd pg18-1c_for_deb13
|
||||
cp env.example .env
|
||||
nano .env
|
||||
chmod +x install_pg1c.sh
|
||||
sudo ./install_pg1c.sh
|
||||
```
|
||||
|
||||
|
||||
## Вариант 2. Стянуть готовый комплект из открытого репозитория
|
||||
|
||||
Открытый репозиторий с файлами проекта:
|
||||
Открытый репозиторий проекта:
|
||||
|
||||
```text
|
||||
https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13
|
||||
@@ -47,14 +78,15 @@ https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13
|
||||
```bash
|
||||
git clone https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13.git
|
||||
cd pg18-1C_for_deb13
|
||||
chmod +x install_pg1c.sh
|
||||
cp env.example .env
|
||||
nano .env
|
||||
chmod +x install_pg1c.sh uninstall_pg1c.sh
|
||||
sudo ./install_pg1c.sh
|
||||
```
|
||||
|
||||
|
||||
## Подготовка `.env`
|
||||
|
||||
|
||||
### Если нужен полный шаблон с пояснениями
|
||||
|
||||
```bash
|
||||
@@ -70,9 +102,7 @@ nano .env.local
|
||||
mv .env.local .env
|
||||
```
|
||||
|
||||
Либо просто используйте уже готовый `.env`, если значения вам подходят.
|
||||
|
||||
## Что настроить в `.env`
|
||||
## Что настраивается в `.env` для установки
|
||||
|
||||
Обязательно проверьте:
|
||||
|
||||
@@ -81,13 +111,22 @@ mv .env.local .env
|
||||
- `PG_ADMIN_PASSWORD`
|
||||
- `PG_CREATE_DB`
|
||||
- `PG_DB_NAME`
|
||||
- `REPO_ADD_URL`
|
||||
- `PGPRO_BIN_DIR`
|
||||
- `SERVICE_NAME`
|
||||
|
||||
Для managed-правил в `pg_hba.conf`:
|
||||
|
||||
- `ENFORCE_PASSWORD_AUTH`
|
||||
- `PGPRO_REPO_ADD_URL`
|
||||
- `PGPRO_REPO_SCRIPT_NAME`
|
||||
- `APP_LOCAL_AUTH_METHOD`
|
||||
- `APP_HOST_AUTH_METHOD`
|
||||
- `APP_HOST_IPV4_CIDR`
|
||||
- `APP_HOST_IPV6_CIDR`
|
||||
- `PRESERVE_POSTGRES_PEER_LOCAL`
|
||||
|
||||
## Режимы установки
|
||||
|
||||
### 1) Если это единственный Postgres на сервере
|
||||
### Если это единственный Postgres на сервере
|
||||
|
||||
```env
|
||||
INSTALL_MODE=standalone
|
||||
@@ -99,7 +138,7 @@ INSTALL_MODE=standalone
|
||||
postgrespro-1c-18
|
||||
```
|
||||
|
||||
### 2) Если на сервере уже есть другой Postgres
|
||||
### Если на сервере уже есть другой Postgres
|
||||
|
||||
```env
|
||||
INSTALL_MODE=parallel
|
||||
@@ -113,28 +152,94 @@ postgrespro-1c-18-contrib
|
||||
|
||||
После этого скрипт сам вызывает `initdb`, включает сервис и запускает его.
|
||||
|
||||
## Про аутентификацию
|
||||
## Как работает правка `pg_hba.conf`
|
||||
|
||||
По умолчанию на Linux локальные подключения к PostgreSQL часто идут через `peer`, из-за чего пароль вроде бы задан, но вход под новым пользователем не работает через локальный сокет.
|
||||
|
||||
Во второй версии скрипта это закрыто параметром:
|
||||
|
||||
```env
|
||||
ENFORCE_PASSWORD_AUTH=true
|
||||
```
|
||||
|
||||
Тогда скрипт:
|
||||
Скрипт не переписывает весь файл целиком. Он:
|
||||
|
||||
- определяет фактический путь к `pg_hba.conf`
|
||||
- делает резервную копию
|
||||
- заменяет `peer` / `ident` на нужный метод (`scram-sha-256` по умолчанию)
|
||||
- перезапускает сервис
|
||||
- делает резервную копию, если `CREATE_HBA_BACKUP=true`
|
||||
- удаляет только старый managed-блок скрипта, если он уже есть
|
||||
- добавляет новый managed-блок в начало файла
|
||||
- по умолчанию сохраняет `peer` для локального системного пользователя `postgres`
|
||||
|
||||
Рекомендуемые значения:
|
||||
Это нужно, чтобы повторные запуски не ломали административный вход через:
|
||||
|
||||
```bash
|
||||
sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres
|
||||
```
|
||||
|
||||
## Использование скрипта удаления
|
||||
|
||||
Скрипт удаления читает тот же `.env`, что и установочный.
|
||||
|
||||
### Без удаления данных
|
||||
|
||||
Это безопасный режим по умолчанию:
|
||||
|
||||
```bash
|
||||
sudo ./uninstall_pg1c.sh
|
||||
```
|
||||
|
||||
Что будет сделано:
|
||||
|
||||
- сервис остановится
|
||||
- автозапуск отключится
|
||||
- пакеты будут удалены через `apt-get purge`
|
||||
- репозиторий Postgres Pro будет убран из APT
|
||||
- каталог данных останется на месте
|
||||
|
||||
### Полное удаление вместе с данными
|
||||
|
||||
Для полного удаления добавьте в `.env`:
|
||||
|
||||
```env
|
||||
REPLACE_LOCAL_PEER_WITH=scram-sha-256
|
||||
REPLACE_HOST_AUTH_WITH=scram-sha-256
|
||||
UNINSTALL_REMOVE_DATA_DIR=true
|
||||
UNINSTALL_REMOVE_LOG_DIR=true
|
||||
UNINSTALL_REMOVE_HOME_DIRS=true
|
||||
```
|
||||
|
||||
И затем выполните:
|
||||
|
||||
```bash
|
||||
sudo ./uninstall_pg1c.sh
|
||||
```
|
||||
|
||||
Скрипт попросит явное подтверждение `DELETE`.
|
||||
|
||||
### Полное удаление без интерактивного подтверждения
|
||||
|
||||
```env
|
||||
UNINSTALL_REMOVE_DATA_DIR=true
|
||||
UNINSTALL_REMOVE_LOG_DIR=true
|
||||
UNINSTALL_REMOVE_HOME_DIRS=true
|
||||
UNINSTALL_FORCE=true
|
||||
```
|
||||
|
||||
Используйте это только если уверены, что каталог данных больше не нужен.
|
||||
|
||||
## Параметры удаления
|
||||
|
||||
Скрипт `uninstall_pg1c.sh` поддерживает следующие переменные в `.env`:
|
||||
|
||||
```env
|
||||
UNINSTALL_DISABLE_SERVICE=true
|
||||
UNINSTALL_STOP_SERVICE=true
|
||||
UNINSTALL_PURGE_PACKAGES=true
|
||||
UNINSTALL_AUTOREMOVE=true
|
||||
UNINSTALL_REMOVE_REPO=true
|
||||
UNINSTALL_REMOVE_AUTH_FILE=true
|
||||
UNINSTALL_REMOVE_GPG_KEY=true
|
||||
UNINSTALL_REMOVE_DEFAULT_FILE=false
|
||||
UNINSTALL_REMOVE_DATA_DIR=false
|
||||
UNINSTALL_REMOVE_LOG_DIR=false
|
||||
UNINSTALL_REMOVE_HOME_DIRS=false
|
||||
UNINSTALL_FORCE=false
|
||||
```
|
||||
|
||||
При необходимости можно явно задать каталог данных, если он у вас нестандартный:
|
||||
|
||||
```env
|
||||
PGPRO_DATA_DIR=/путь/к/вашему/PGDATA
|
||||
```
|
||||
|
||||
## Проверки после установки
|
||||
@@ -163,27 +268,20 @@ sudo -u postgres /opt/pgpro/1c-18/bin/psql -h /var/run/postgresql -d postgres -c
|
||||
/opt/pgpro/1c-18/bin/psql -h 127.0.0.1 -U admin_1c -d appdb -W
|
||||
```
|
||||
|
||||
## Что делает скрипт безопасно
|
||||
## Что делает комплект безопасно
|
||||
|
||||
Скрипт старается быть идемпотентным:
|
||||
|
||||
- если репозиторий уже добавлен, повторно не ломает конфигурацию
|
||||
- если роль уже существует, обновляет пароль и атрибуты
|
||||
- если база уже существует, повторно не создает ее
|
||||
- перед правкой `pg_hba.conf` делает бэкап, если `CREATE_HBA_BACKUP=true`
|
||||
|
||||
## Важно
|
||||
|
||||
- Скрипт рассчитан именно на Debian 13.
|
||||
- Он использует официальный vendor-скрипт добавления репозитория, а не самодельную схему репозиториев.
|
||||
- Если доступ к репозиторию требует логин/пароль, это обрабатывает сам vendor-скрипт Postgres Pro.
|
||||
- В открытом репозитории сейчас лежат `env`, `env.example`, `install_pg1c.sh` и `README.md`, так что его можно использовать как точку входа для развертывания или передачи готового комплекта.
|
||||
- установка повторно не дублирует managed-блок в `pg_hba.conf`
|
||||
- удаление по умолчанию не стирает каталог данных
|
||||
- для удаления данных есть отдельные флаги и подтверждение
|
||||
- репозиторий и ключи удаляются отдельно от данных кластера
|
||||
|
||||
## Рекомендуемый порядок файлов в проекте
|
||||
|
||||
```text
|
||||
install_pg1c.sh
|
||||
uninstall_pg1c.sh
|
||||
env.example
|
||||
.env
|
||||
README.md
|
||||
use.md
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user