# 8.1. Встановлення та конфігурація серверу баз даних та архівування

<span lang="UK">Перед початком встановлення віртуальна машина (або фізичний сервер) повинні бути попередньо налаштовані згідно розділів 5.1 та 5.2 даної інструкції.</span>

<p class="callout info"><span lang="UK">**Примітка.** </span><span lang="UK">Додатково на зазначеному сервері може бути інстальовано засіб перевірки повідомлень згідно розділу 9 даної інструкції.</span></p>

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> Передбачається, що доступ до бази даних з шлюзу безпечного обміну попередньо сконфігуровано, в тому числі, на рівні мережі.</span></p>

<span lang="UK">Сервер баз даних та архівування являє собою СКБД PostgreSQL. Для її встановлення на сервер баз даних та архівування необхідно:</span>

<span lang="UK">1. Закрити доступ до сторонніх репозиторіїв за допомогою виконання наступної команди:</span>

```
sudo sed -i 's/^[A-Za-z0-9]/#&/' /etc/apt/sources.list
```

<span lang="UK">2. Додати у операційну систему репозиторій з пакетами системи «Трембіта» за допомогою виконання наступної команди:</span>

```
echo 'deb https://project-repo.trembita.gov.ua:8081/repository/ss-1.12.6/ bionic main' | sudo tee -a /etc/apt/sources.list
```

<span lang="UK">Перевірити результат виконання команд можна за допомогою текстового редактора nano, відкривши файл на редагування за допомогою виконання наступної команди:</span>

```
sudo nano /etc/apt/sources.list
```

<span lang="UK">3. Додати GPG ключ репозиторію за допомогою виконання наступної команди:</span>

```
sudo wget -O - https://project-repo.trembita.gov.ua:8081//public-keys/public.key.txt | sudo apt-key add -
```

<span lang="UK">Якщо команду виконано успішно, буде виведено повідомлення «ОК».</span>

<span lang="UK">4. Встановити ПЗ СКБД PostgreSQL на сервері баз даних та архівування за допомогою послідовного виконання наступних команд:</span>

```
sudo apt update
sudo apt install -y postgresql
```

<span lang="UK">5. Створити користувача бази даних на сервері баз даних та архівування за допомогою послідовного виконання наступних команд від імені користувача postgres:</span>

```
sudo -s
su postgres
createuser -P <msglog_user>
```

<span lang="UK">де **&lt;msglog\_user&gt;** – логін нового користувача СКБД.</span>

<span lang="UK">6. Двічі ввести пароль для користувача &lt;msglog\_user&gt;.</span>

<span lang="UK">7. Створити базу даних за допомогою виконання наступної команди від імені користувача postgres:</span>

```
createdb <msglog_db> -O <msglog_user> -E UTF-8
```

<span lang="UK">де **&lt;msglog\_db&gt;** – назва бази даних.</span>

<span lang="UK">**&lt;msglog\_user&gt;** – логін нового користувача якого було створено на попередньому кроці.</span>

<span lang="UK">8. Налаштувати дозволи на підключення до сервера баз даних та архівування з ШБО, для чого необхідно виконати наступні дії:</span>

<span lang="UK">- </span><span lang="UK">Здійснити вихід із сесії користувача postgres на сервері баз даних та архівування за допомогою виконання наступної команди:</span>

```
exit
```

  
<span lang="UK">[![Picture8_2.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/CZpNxXgoWcG384Rm-picture8-2.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/CZpNxXgoWcG384Rm-picture8-2.png)</span>

<span lang="UK">- </span><span lang="UK">Здійснити вихід з привілейованого режиму командного рядка, так само за допомогою команди exit:</span>

```
exit
```

<span lang="UK">[![Picture8_3.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/aBcDgd0wYSL5bcYm-picture8-3.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/aBcDgd0wYSL5bcYm-picture8-3.png)</span>

<span lang="UK">- </span><span lang="UK">Відкрити на редагування файл /etc/postgresql/10/main/pg\_hba.conf, який містить налаштування прав доступу, за допомогою команди:</span>

```
sudo nano /etc/postgresql/10/main/pg_hba.conf
```

<span lang="UK">- </span><span lang="UK">Додати у кінець відкритого файлу наступний рядок:</span>

```
host <msglog_db>    <msglog_user>  <IP_адреса_ШБО>/32    md5
```

<span lang="UK">де</span> **<span lang="UK">&lt;msglog\_</span>db<span lang="UK">&gt;</span>**<span lang="UK">- назва бази даних.</span>

<span lang="UK">**&lt;msglog\_user&gt;**- логін нового користувача якого було створено вище.</span>

**<span lang="RU">&lt;</span><span lang="UK">IP\_адреса\_ШБО</span><span lang="RU">&gt;</span>** <span lang="UK">- ІР-адреса ШБО, до якого буде підключений сервер баз даних та архівування</span> <span lang="UK">згідно мережевої схеми.</span>

<span lang="UK">- </span><span lang="UK">Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», далі буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім </span><span lang="UK">«Enter» для збереження.</span>

<span lang="UK">- </span><span lang="UK">Відкрити на редагування файл /etc/postgresql/10/main/postgresql.conf за допомогою наступної команди:</span>

```
sudo nano /etc/postgresql/10/main/postgresql.conf
```

<span lang="UK">[![Picture8_4.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/zy34675hO47ko06p-picture8-4.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/zy34675hO47ko06p-picture8-4.png)</span>

<span lang="UK">- </span><span lang="UK">Знайти у файлі рядок з параметром «listen\_addresses», розкоментувати його (видалити символ «</span><span lang="RU">\#</span><span lang="UK">»</span> <span lang="RU">на початку рядка)</span><span lang="UK"> та замінити значення:</span>

```
#listen_addresses = 'localhost'      # what IP address(es) to listen on;
```

<span lang="RU">на</span>:

```
listen_addresses = '*'         # what IP address(es) to listen on;
```

[![Picture8_5.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/fOGG9OOaoIS5xvlv-picture8-5.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/fOGG9OOaoIS5xvlv-picture8-5.png)

<p class="callout info">**<span lang="UK">Примітка.</span>**<span lang="UK"> Зазначені зміни внесені для того, щоб дозволити СКБД PostgreSQL приймати мережеві підключення.</span></p>

<span lang="UK">- </span><span lang="UK">Закрити редактор, натиснувши комбінацію клавіш «Ctrl+X», далі буде показано повідомлення про підтвердження на збереження змін - необхідно натиснути «Y», а потім </span><span lang="UK">«Enter»</span><span lang="UK"> для збереження.</span>

<span lang="UK">- </span><span lang="UK">Перезавантажити сервіс postgresql за допомогою наступної команди:</span>

```
sudo service postgresql restart
```

<span lang="UK">Перевірити коректність налаштувань можна за допомогою команди:</span>

```
sudo netstat -lnpt|grep 5432
```

<span lang="UK">На екрані буде відображено повідомлення, яке має містити два рядки, один з яких повинен мати значення: 0.0.0.0:5432</span>

<span lang="UK">[![Picture8_6.png](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/scaled-1680-/wb1hG4jXbP7IIbFz-picture8-6.png)](https://docs.trembita.gov.ua/uploads/images/gallery/2024-05/wb1hG4jXbP7IIbFz-picture8-6.png)</span>