Обновить 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` — основной установочный скрипт
|
- `install_pg1c.sh` — основной установочный скрипт
|
||||||
|
- `uninstall_pg1c.sh` — скрипт удаления
|
||||||
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
|
- `env.example` — пример файла `.env` со всеми настройками и пояснениями на русском
|
||||||
- `.env` — минимальный рабочий вариант без комментариев
|
- `.env` — минимальный рабочий вариант без комментариев
|
||||||
|
- `use.md` — пример подключения к Django
|
||||||
|
|
||||||
Скрипт автоматизирует официальный процесс установки Postgres Pro for 1C 18 по вашей инструкции:
|
## Что делают скрипты
|
||||||
|
|
||||||
|
`install_pg1c.sh` автоматизирует установку Postgres Pro for 1C 18:
|
||||||
|
|
||||||
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
|
- добавляет репозиторий через vendor-скрипт `pgpro-repo-add.sh`
|
||||||
- ставит пакет в режиме `standalone` или `parallel`
|
- ставит пакет в режиме `standalone` или `parallel`
|
||||||
- включает и запускает systemd-сервис
|
- включает и запускает сервис
|
||||||
- создает или обновляет пользователя PostgreSQL
|
- создает или обновляет пользователя PostgreSQL
|
||||||
- при необходимости создает базу данных
|
- при необходимости создает базу данных
|
||||||
- при необходимости автоматически правит `pg_hba.conf`, чтобы логин работал по паролю, а не упирался в `peer`
|
- адресно добавляет managed-блок в `pg_hba.conf` для вашего прикладного пользователя
|
||||||
|
|
||||||
|
`uninstall_pg1c.sh` автоматизирует удаление:
|
||||||
|
|
||||||
|
- останавливает сервис
|
||||||
|
- отключает автозапуск
|
||||||
|
- удаляет пакеты через `apt-get purge`
|
||||||
|
- по желанию удаляет каталог данных
|
||||||
|
- по желанию удаляет файл репозитория, auth-файл и GPG-ключ
|
||||||
|
|
||||||
## Что нужно
|
## Что нужно
|
||||||
|
|
||||||
@@ -22,6 +34,24 @@
|
|||||||
- интернет-доступ до репозитория Postgres Pro
|
- интернет-доступ до репозитория Postgres Pro
|
||||||
- `git`, если хотите сначала стянуть готовые файлы из открытого репозитория
|
- `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 архив
|
## Вариант 1. ZIP архив
|
||||||
|
|
||||||
Скачиваем 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
|
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
|
unzip pg18-1C_for_deb13.zip
|
||||||
cd pg18-1c_for_deb13
|
cd pg18-1c_for_deb13
|
||||||
|
cp env.example .env
|
||||||
|
nano .env
|
||||||
chmod +x install_pg1c.sh
|
chmod +x install_pg1c.sh
|
||||||
sudo ./install_pg1c.sh
|
sudo ./install_pg1c.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Вариант 2. Стянуть готовый комплект из открытого репозитория
|
## Вариант 2. Стянуть готовый комплект из открытого репозитория
|
||||||
|
|
||||||
Открытый репозиторий с файлами проекта:
|
Открытый репозиторий проекта:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13
|
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
|
```bash
|
||||||
git clone https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13.git
|
git clone https://git.ext.flamy.studio/flamy_preview/pg18-1C_for_deb13.git
|
||||||
cd pg18-1C_for_deb13
|
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
|
sudo ./install_pg1c.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
## Подготовка `.env`
|
## Подготовка `.env`
|
||||||
|
|
||||||
|
|
||||||
### Если нужен полный шаблон с пояснениями
|
### Если нужен полный шаблон с пояснениями
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
@@ -70,9 +102,7 @@ nano .env.local
|
|||||||
mv .env.local .env
|
mv .env.local .env
|
||||||
```
|
```
|
||||||
|
|
||||||
Либо просто используйте уже готовый `.env`, если значения вам подходят.
|
## Что настраивается в `.env` для установки
|
||||||
|
|
||||||
## Что настроить в `.env`
|
|
||||||
|
|
||||||
Обязательно проверьте:
|
Обязательно проверьте:
|
||||||
|
|
||||||
@@ -81,13 +111,22 @@ mv .env.local .env
|
|||||||
- `PG_ADMIN_PASSWORD`
|
- `PG_ADMIN_PASSWORD`
|
||||||
- `PG_CREATE_DB`
|
- `PG_CREATE_DB`
|
||||||
- `PG_DB_NAME`
|
- `PG_DB_NAME`
|
||||||
|
- `REPO_ADD_URL`
|
||||||
|
- `PGPRO_BIN_DIR`
|
||||||
|
- `SERVICE_NAME`
|
||||||
|
|
||||||
|
Для managed-правил в `pg_hba.conf`:
|
||||||
|
|
||||||
- `ENFORCE_PASSWORD_AUTH`
|
- `ENFORCE_PASSWORD_AUTH`
|
||||||
- `PGPRO_REPO_ADD_URL`
|
- `APP_LOCAL_AUTH_METHOD`
|
||||||
- `PGPRO_REPO_SCRIPT_NAME`
|
- `APP_HOST_AUTH_METHOD`
|
||||||
|
- `APP_HOST_IPV4_CIDR`
|
||||||
|
- `APP_HOST_IPV6_CIDR`
|
||||||
|
- `PRESERVE_POSTGRES_PEER_LOCAL`
|
||||||
|
|
||||||
## Режимы установки
|
## Режимы установки
|
||||||
|
|
||||||
### 1) Если это единственный Postgres на сервере
|
### Если это единственный Postgres на сервере
|
||||||
|
|
||||||
```env
|
```env
|
||||||
INSTALL_MODE=standalone
|
INSTALL_MODE=standalone
|
||||||
@@ -99,7 +138,7 @@ INSTALL_MODE=standalone
|
|||||||
postgrespro-1c-18
|
postgrespro-1c-18
|
||||||
```
|
```
|
||||||
|
|
||||||
### 2) Если на сервере уже есть другой Postgres
|
### Если на сервере уже есть другой Postgres
|
||||||
|
|
||||||
```env
|
```env
|
||||||
INSTALL_MODE=parallel
|
INSTALL_MODE=parallel
|
||||||
@@ -113,28 +152,94 @@ postgrespro-1c-18-contrib
|
|||||||
|
|
||||||
После этого скрипт сам вызывает `initdb`, включает сервис и запускает его.
|
После этого скрипт сам вызывает `initdb`, включает сервис и запускает его.
|
||||||
|
|
||||||
## Про аутентификацию
|
## Как работает правка `pg_hba.conf`
|
||||||
|
|
||||||
По умолчанию на Linux локальные подключения к PostgreSQL часто идут через `peer`, из-за чего пароль вроде бы задан, но вход под новым пользователем не работает через локальный сокет.
|
Скрипт не переписывает весь файл целиком. Он:
|
||||||
|
|
||||||
Во второй версии скрипта это закрыто параметром:
|
|
||||||
|
|
||||||
```env
|
|
||||||
ENFORCE_PASSWORD_AUTH=true
|
|
||||||
```
|
|
||||||
|
|
||||||
Тогда скрипт:
|
|
||||||
|
|
||||||
- определяет фактический путь к `pg_hba.conf`
|
- определяет фактический путь к `pg_hba.conf`
|
||||||
- делает резервную копию
|
- делает резервную копию, если `CREATE_HBA_BACKUP=true`
|
||||||
- заменяет `peer` / `ident` на нужный метод (`scram-sha-256` по умолчанию)
|
- удаляет только старый 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
|
```env
|
||||||
REPLACE_LOCAL_PEER_WITH=scram-sha-256
|
UNINSTALL_REMOVE_DATA_DIR=true
|
||||||
REPLACE_HOST_AUTH_WITH=scram-sha-256
|
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
|
/opt/pgpro/1c-18/bin/psql -h 127.0.0.1 -U admin_1c -d appdb -W
|
||||||
```
|
```
|
||||||
|
|
||||||
## Что делает скрипт безопасно
|
## Что делает комплект безопасно
|
||||||
|
|
||||||
Скрипт старается быть идемпотентным:
|
- установка повторно не дублирует managed-блок в `pg_hba.conf`
|
||||||
|
- удаление по умолчанию не стирает каталог данных
|
||||||
- если репозиторий уже добавлен, повторно не ломает конфигурацию
|
- для удаления данных есть отдельные флаги и подтверждение
|
||||||
- если роль уже существует, обновляет пароль и атрибуты
|
- репозиторий и ключи удаляются отдельно от данных кластера
|
||||||
- если база уже существует, повторно не создает ее
|
|
||||||
- перед правкой `pg_hba.conf` делает бэкап, если `CREATE_HBA_BACKUP=true`
|
|
||||||
|
|
||||||
## Важно
|
|
||||||
|
|
||||||
- Скрипт рассчитан именно на Debian 13.
|
|
||||||
- Он использует официальный vendor-скрипт добавления репозитория, а не самодельную схему репозиториев.
|
|
||||||
- Если доступ к репозиторию требует логин/пароль, это обрабатывает сам vendor-скрипт Postgres Pro.
|
|
||||||
- В открытом репозитории сейчас лежат `env`, `env.example`, `install_pg1c.sh` и `README.md`, так что его можно использовать как точку входа для развертывания или передачи готового комплекта.
|
|
||||||
|
|
||||||
## Рекомендуемый порядок файлов в проекте
|
## Рекомендуемый порядок файлов в проекте
|
||||||
|
|
||||||
```text
|
```text
|
||||||
install_pg1c.sh
|
install_pg1c.sh
|
||||||
|
uninstall_pg1c.sh
|
||||||
env.example
|
env.example
|
||||||
.env
|
.env
|
||||||
README.md
|
README.md
|
||||||
|
use.md
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user