Подготовка среды функционирования

Установка и настройка СУБД PostgreSQL

Установка СУБД PostgreSQL

Перед установкой серверной части Termidesk Profiles должна быть предварительно подготовлена среда функционирования узла, а именно установлена и настроена система управления базами данных (СУБД) PostgreSQL.

Рекомендуется использовать отдельную БД для серверной части Termidesk Profiles и не использовать БД Termidesk VDI.

Серверная часть Termidesk Profiles может использовать ту же СУБД, что и Termidesk VDI, но имя БД должно быть отличным от уже существующего (termidesk).

Для установки СУБД PostgreSQL нужно:

  • отредактировать файл /etc/apt/sources.list, оставив в качестве источников получения пакетов сетевые репозитории. Пример файла /etc/apt/sources.list для ОС Astra Linux Special Edition 1.8:

Приведен только пример файла! Он должен быть скорректирован, исходя из используемой и поддерживаемой версии ОС. Подробную информацию о сетевых репозиториях ОС Astra Linux Special Edition можно получить в справочном центре Astra Linux для ОС Astra Linux Special Edition 1.8: https://wiki.astralinux.ru/pages/viewpage.action?pageId=302043111.

Если в файле /etc/apt/sources.list присутствует репозиторий astra-ce, то необходимо закомментировать его, чтобы избежать установки несовместимых версий пакетов.

deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-main/ 1.8_x86-64 main contrib non-free
deb https://download.astralinux.ru/astra/stable/1.8_x86-64/repository-extended/ 1.8_x86-64 main contrib non-free
  • перейти в интерфейс командной строки и обновить списков пакетов:

sudo apt update
  • установить СУБД PostgreSQL. Команда установки выбирается в зависимости от того, требуется ли использование СУБД Tantor Basic Edition:

    • с СУБД Tantor Basic Edition:

      sudo apt install -y postgresql

      Начиная с версии ОС Astra Linux Special Edition 1.8.0 при подключенных основном и расширенном репозиториях данная команда устанавливает СУБД Tantor Basic Edition, лицензия на которую приобретается отдельно.

    • без СУБД Tantor Basic Edition:

      sudo apt install -y tantor-free-server-16

      Где:

      -y - ключ для пропуска подтверждения установки.

Настройка СУБД PostgreSQL

Для настройки БД нужно:

  • отредактировать файл /etc/postgresql/15/main/postgresql.conf, задать соответствующее значение параметру listen_address:

# Для приема подключений на всех сетевых интерфейсах
listen_addresses = '0.0.0.0'

# Для приема подключений только с указанного IP-адреса
listen_addresses = '<IP-адрес_серверной_части_Termidesk_Profiles>'
  • для ограничения доступа к СУБД PostgreSQL по сети нужно отредактировать файл /etc/postgresql/15/main/pg_hba.conf, приведя его к виду:

host    all             all             192.80.255.0/16          scram-sha-256

Где:

192.80.255.0/16 - сеть серверной части Termidesk Profiles.

  • затем следует перейти в интерфейс командной строки и переключиться на пользователя postgres:

sudo su postgres
  • запустить терминальный клиент СУБД PostgreSQL:

psql

Если после выполнения команды отображается ошибка «could not change directory to "/home/": Отказано в доступе» и не появляется приглашение командной строки postgres=, необходимо вместо su postgres использовать конструкцию su - postgres. Если приглашение postgres= появилось, то сообщение об ошибке можно проингорировать.

Если приглашение postgres=# не появляется, то вероятнее всего ОС Astra Linux Special Edition используется в более защищенном режиме, например, «Смоленск». В таком случае нужно для пользователя postgres назначить высокий уровень целостности:

sudo pdpl-user -i 63 postgres
  • используя интерактивный интерфейс терминального клиента СУБД PostgreSQL, создать БД trp_base01 (символ ; в конце строки при работе с интерактивным интерфейсом обязателен):

CREATE DATABASE trp_base01 LC_COLLATE 'ru_RU.utf8' LC_CTYPE 'ru_RU.utf8' TEMPLATE template0;

Где:

LC_COLLATE - порядок сортировки для использования в БД, влияет на порядок сортировки, применяемый к строкам. Значение ru_RU.utf8 указывает на использование русской локализации;

LC_CTYPE - классификация символов для использования в БД, влияет на категоризацию символов;

TEMPLATE - имя шаблона, из которого создается БД. Шаблон template0 используется для системной БД самой СУБД PostgreSQL;

  • создать пользователя termidesktrp с паролем ksedimret для дальнейшего подключения к БД:

CREATE USER termidesktrp WITH PASSWORD 'ksedimret';
В приведенной команде имя пользователя и пароль используются в качестве примера. Имя пользователя и пароль должны задаваться в соответствии с внутренними стандартами организации по применению парольной защиты. Для задания пароля разрешено использовать только латинские буквы A-Z, a-z, цифры 0-9 и символы $!@%^&#_-=+~`;:.,?()*{}[]\|/.
  • предоставить пользователю termidesktrp права доступа ко всем таблицам схемы public:

GRANT ALL ON ALL TABLES IN SCHEMA public TO termidesktrp;
  • настроить автоматическое предоставление прав пользователю termidesktrp на таблицы, создаваемые в схеме public:

ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT ALL ON TABLES TO termidesktrp;
  • назначить права по использованию БД trp_base01 пользователю termidesktrp:

GRANT ALL PRIVILEGES ON DATABASE trp_base01 TO termidesktrp;
  • сделать пользователя termidesktrp владельцем БД trp_base01, тем самым предоставив ему все возможные права:

ALTER DATABASE trp_base01 OWNER TO termidesktrp;
  • выйти из интерактивного интерфейса терминального клиента СУБД PostgreSQL:

\q
  • выйти из сеанса пользователя postgres:

exit
  • отредактировать файл /etc/parsec/mswitch.conf, установив параметр zero_if_notfound в значение yes, точно соблюдая отступы и пробелы:

# Return zero data instead of ENOENT/ENODATA in the absence of record
zero_if_notfound: yes
В случае последующего обновления СУБД PostgreSQL может понадобиться пересоздать БД. В этом случае следует предусмотреть экспорт БД перед обновлением СУБД PostgreSQL.

Установка и настройка NFS-хранилища

Перед установкой серверной части Termidesk Profiles нужно выполнить предварительную установку и настройку NFS-хранилища для хранения данных Перемещаемых Профилей.

Для установки NFS-хранилища нужно выполнить:

sudo apt install nfs-kernel-server

Для настройки NFS-хранилища нужно:

  • определить диск для хранения данных. Просмотреть список дисков и их разделов можно, выполнив команду:

    sudo fdisk -l
  • в результате выполнения команды будет отображен список доступных дисков и их разделов:

    Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
      ... (Existing OS disk)
    
      Disk /dev/sdb: 100 GiB, 107374182400 bytes, 209715200 sectors
      Units: sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes

    Где:

    /dev/sdb - диск, который в дальнейшем будет использован для хранения данных;

Наименование диска /dev/sdb приведено в качестве примера и должно быть заменено на имя диска, используемого в инфраструктуре NFS-хранилища.
  • создать раздел на диске /dev/sdb:

    sudo fdisk /dev/sdb
  • в интерфейсе утилиты fdisk выполнить следующие действия:

    • нажать клавишу <n> для создания раздела;

    • нажать клавишу <p> для создания основного раздела;

    • указать номер раздела, нажав соответствующую клавишу на цифровом блоке клавиатуры;

    • указать значение начального сектора раздела и нажать клавишу <Enter>. Для принятия значения по умолчанию (2048) нажать клавишу <Enter> без указания значения;

    • указать значение конечного сектора раздела и нажать клавишу <Enter>. Для использования всего доступного пространства диска нажать клавишу <Enter> без указания значения;

    • убедиться в создании раздела на диске, нажав клавишу <p>. Наличие значения /dev/sdb1 в интерфейсе утилиты свидетельствует об успешном создании раздела;

    • нажать клавишу <w> для записи изменений на диске и выхода из утилиты fdisk. Для выхода без сохранения изменений нажать клавишу <q>;

  • после завершения работы утилиты fdisk раздел должен быть автоматически обнаружен системой. Если раздел не обнаружен, обновить таблицу разделов командой:

    sudo partprobe
  • в созданном разделе /dev/sdb1 нужно создать файловую систему, для этого выполнить:

    sudo mkfs.xfs /dev/sdb1

    Где:

    xfs - тип файловой системы;

    /dev/sdb1 - раздел диска, на котором создается файловая система;

Наименование раздела /dev/sdb1 приведено в качестве примера и должно быть заменено на имя раздела, используемого в инфраструктуре NFS-хранилища.
  • затем создать каталог точки монтирования:

    sudo mkdir /trp_share

    Где:

    /trp_share - наименование каталога точки монтирования;

  • временно смонтировать раздел /dev/sdb1 в каталог монтирования /trp_share:

    sudo mount /dev/sdb1 /trp_share
  • убедиться, что диск смонтирован:

    df -h
  • отображение раздела /dev/sdb1 и каталога /trp_share в выводе команды df -h свидетельствует об успешном монтировании диска;

  • для автоматического монтирования диска при загрузке ОС нужно определить UUID раздела /dev/sdb1:

    sudo blkid
  • полученное значение внести в файл /etc/fstab. Пример содержимого файла:

    UUID=a1b2c3d4-e5f6-7890-1234-567890abcdef /trp_share ext4 defaults 0 2

    Где:

    UUID - уникальный идентификатор раздела;

    /trp_share - каталог монтирования;

    ext4 - тип файловой системы;

    defaults - использование стандартных параметров монтирования;

    0 - параметр отключения резервного копирования;

    2 - параметр проверки файловой системы при загрузке;

  • убедиться, что записи в файле /etc/fstab внесены корректно. Для этого размонтировать раздел, если он был смонтирован ранее:

    sudo umount /trp_share
  • выполнить монтирование всех файловых систем, указанных в файле /etc/fstab:

    sudo mount -a
  • отсутствие ошибок в выводе команды mount -a свидетельствует о корректных записях в файле /etc/fstab;

  • далее задать владельца (nobody) и идентификатор группы (nogroup) каталога монтирования:

    sudo chown -R nobody:nogroup /trp_share

    Где:

    -R - ключ для рекурсивного применения свойств для каталога и его содержимого;

Для корректного применения прав к каталогу /trp_share их следует назначать после монтирования.
  • затем предоставить общий доступ к каталогу /trp_share:

    /trp_share 192.80.255.0/16(rw,sync,no_subtree_check,no_root_squash,all_squash)

    Где:

    /trp_share - каталог общего доступа;

    192.80.255.0/16 - сеть, из которой разрешен доступ к каталогу;

    rw - разрешение на запись и чтение данных каталога;

    sync - синхронная запись данных;

    no_subtree_check - отключение проверки подкаталогов;

    no_root_squash - сохранение прав привилегированного пользователя при подключении к каталогу;

    all_squash - сопоставление всех пользователей к анонимному пользователю при подключении к каталогу.