Установка на Astra Linux 1.7

Рекомендуемый вариант установки -MINIMAL
Разметка диска - на усмотрение Администратор

Установка postgres-pro-14

Подробную инструкцию по установке postgres-pro можете найти по ссылке на сайте производителя.

Копируем сертификат:

sudo cp SSE-ASTRA-GPG-POSTGRESPRO /etc/digsig/keys/
sudo update-initramfs -u -k all
sudo reboot

Требования к минимальной инсталяции:

wget https://repo.postgrespro.ru/pgpro-14/keys/pgpro-repo-add.sh
sudo sh pgpro-repo-add.sh

Если наш продукт единственный Postgres на вашей машине и вы хотите сразу получить готовую к употреблению базу:

sudo apt-get install postgrespro-std-14

Проверка успешной установки БД

systemctl status postgrespro-std-14.service
root@srv134:~# systemctl status postgrespro-std-14.service
● postgrespro-std-14.service - Postgres Pro std 14 database server
  Loaded: loaded (/lib/systemd/system/postgrespro-std-14.service; enabled; vendor preset: enabled)
  Active: active (running) since Fri 2022-08-19 16:32:16 MSK; 16min ago
 Process: 1574 ExecStartPre=/opt/pgpro/std-14/bin/check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 1583 (postgres)
   Tasks: 8 (limit: 4915)
  Memory: 69.5M
  CGroup: /system.slice/postgrespro-std-14.service
          ├─1583 /opt/pgpro/std-14/bin/postgres -D /var/lib/pgpro/std-14/data
          ├─1586 postgres: logger
          ├─1588 postgres: checkpointer
          ├─1589 postgres: background writer
          ├─1590 postgres: walwriter
          ├─1591 postgres: autovacuum launcher
          ├─1592 postgres: stats collector
          └─1593 postgres: logical replication launcher

Получаем список установленных БД

sudo su - postgres
psql
postgres=# \l
                                    Список баз данных
    Имя    | Владелец | Кодировка |   LC_COLLATE    |  LC_CTYPE   |     Права доступа
-----------+----------+-----------+-----------------+-------------+-----------------------
 postgres  | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 |
 template0 | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 | =c/postgres          +
           |          |           |                 |             | postgres=CTc/postgres
 template1 | postgres | UTF8      | ru_RU.UTF-8@icu | ru_RU.UTF-8 | =c/postgres          +
           |          |           |                 |             | postgres=CTc/postgres

Производим установку из поставки дистрибутива или на основе DEMO - APP

  • appdb - бизнес база (имя базы данных на усмотрение администратора)

  • xraddb - база метаданных приложения (переименование БД не рекомендуется)

Создаем директорию и помещаем файлы дистрибутива PGHS

mkdir -p /var/lib/pgpro/std-14/dump-imp
cd  /var/lib/pgpro/std-14/dump-imp
postgres@srv134:/var/lib/pgpro/std-14/dump-imp$ ls -latr
итого 35884
drwxr-xr-x 2 postgres postgres     4096 авг 19 17:32 .
drwxr-xr-x 4 postgres postgres     4096 авг 19 17:25 ..
-rw-r--r-- 1 postgres postgres   535928 авг 19 17:31 xraddb.xsquare
-rw-r--r-- 1 postgres postgres 36197840 авг 19 17:32 appdb.xsquare

Создаем пользователя и

ssh root@srv134
su - postgres
postgres@srv134:~$ psql
psql (14.4)
Введите "help", чтобы получить справку.

postgres=# create user xrad_user with encrypted password 'xrad_user';
postgres=# create user app_user  with encrypted password 'app_user';

postgres=# ALTER USER xrad_user WITH SUPERUSER;
postgres=# ALTER USER app_user  WITH SUPERUSER;

exit

Создаем пустые базы

su - postgres
createdb -O app_user  appdb
createdb -O xrad_user xraddb

производим импорт PGHS

su - postgres
psql -U xrad_user -h 127.0.0.1 xraddb  < /var/lib/pgpro/std-14/dump-imp/xraddb.xsquare
psql -U app_user  -h 127.0.0.1 appdb   < /var/lib/pgpro/std-14/dump-imp/appdb.xsquare

Настройка Apache 2.4

Устанавливаем Apache и модули

sudo su - root
apt-get install apache2
systemctl enable apache2
systemctl start apache2
systemctl status apache2

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_balancer

Добавляем в файл /etc/hosts и прописываем в локальный DNS организации

127.0.0.1 pghs.xsquare

В /etc/apache2/apache2.conf установить AstraMode off

Создаем файл конфигурации VirtualHost для pghs сервера

vi /etc/apache2/sites-available/pghs.xsquare.conf

<VirtualHost *:80>
       ServerAdmin info@xsquare.ru
       ServerName  pghs.xsquare
       ServerAlias pghs.xsquare
       DocumentRoot /var/www/pghs.xsquare

       Alias /files "/var/www/pghs.xsquare.files.local"
       <Directory /var/www/pghs.xsquare.files.local>
               Options FollowSymLinks
               AllowOverride None
               Require all granted
       </Directory>

       ProxyPass        /pghs http://127.0.0.1:8888/pghs
       ProxyPassReverse /pghs http://127.0.0.1:8888/pghs

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Включаем сайт http://pghs.xsquare

a2ensite pghs.xsquare.conf
systemctl restart apache2

Настройка дистрибутива XSQUARE - PGHS

Настройка Web Resources XSQUARE - PGHS

Копируем файл Web приложения из дистрибутива

scp -r -P 22 pghs.xsquare root@IP_Server:/var/www/

Копируем файлы настройки Web приложения из дистрибутива

scp -r -P 22 pghs.xsquare.files.local root@IP_Server:/var/www/

Настройка сервера приложений XSQUARE - PGHS

Копируем дистрибутив сервера приложений

scp -r -P 22 /usr/local/xsquare.pghs  root@IP_Server:/usr/local

Настраиваем параметры соединения с PostgreSQL

vi /usr/local/xsquare.pghs/config.json

{
    "app": {
        "port": "8888"
    },
    "XRAD": {
        "login": "xrad_user",
        "password": "xrad_user",
        "host": "localhost",
        "port": 5432,
        "dbName":"xraddb",
    "minCons": 1,
    "maxCons": 10,
        "runtimeOptions":{
            "LC_NUMERIC":"ru_RU.UTF-8"
        }
    },
  "datasources": [
    {
      "name":"DEFAULT",
      "login": "app_user",
      "password": "app_user",
      "host": "127.0.0.1",
      "port": 5432,
      "dbName":"app_db",
      "minCons":1,
      "maxCons":10,
      "runtimeOptions":{
        "LC_NUMERIC":"ru_RU.UTF-8"
      }
    }
  ]
}

Создаем сервис

vi /etc/systemd/system/xsquare.pghs.service

[Unit]
Description=PGHS Services
After=syslog.target network.target
After=postgresql.service

[Service]
Type=simple
ExecStart=/usr/local/xsquare.pghs/pghs
WorkingDirectory=/usr/local/xsquare.pghs
Restart=on-failure
RestartSec=3

[Install]
WantedBy=default.target

Включаем для сервиса AvtoStart и запускаем и проверяем статус

systemctl enable xsquare.pghs.service
systemctl start  xsquare.pghs.service
systemctl status xsquare.pghs.service

Открываем и проверяем запуск

http://pghs.xsquare/