Установка NFS-хранилища
Цель
Подготовка сервера NFS для совместного хранения данных ПринтМенеджеров в кластерной конфигурации.
Предусловия
- Подготовлен сервер для NFS (
DB_NFS). - Все сервера ПринтМенеджер должны иметь сетевой доступ к серверу NFS.
Шаги установки
Шаг 1. Установите и запустите NFS
Для Ubuntu, Astra Linux и ALT Linux:
sudo apt install nfs-kernel-server -y
sudo systemctl start nfs-kernel-server.service
sudo systemctl status nfs-kernel-server.service
Для РЕД ОС и Red Hat Enterprise Linux:
sudo dnf install -y nfs-utils
sudo systemctl enable nfs-server.service
sudo systemctl start nfs-server.service
sudo systemctl status nfs-server.service
Шаг 2. Создайте папку для NFS
Создайте директорию /scratch:
sudo mkdir /scratch
Шаг 3. Настройте файл экспорта
Отредактируйте файл конфигурации экспортируемых директорий для редактирования:
sudo nano /etc/exports
Добавьте строку для папки /scratch:
/scratch *(rw,async,no_subtree_check,no_root_squash)
Сохраните файл и примените изменения экспорта:
sudo exportfs -a
Шаг 4. Настройте права доступа
Измените владельца папки:
-
Для Ubuntu, Astra Linux и ALT Linux:
sudo chown nobody:nogroup /scratch -
Для РЕД ОС и Red Hat Enterprise Linux:
sudo chown nobody:nobody /scratch
Установите разрешения для записи:
sudo chmod -R 777 /scratch
Параметры для установки системы
Для установки балансировщика понадобится адрес сервера NFS_ADDR и путь к папке NFS_FOLDER_PATH:
NFS_ADDR: IP-адрес или доменное имя сервера NFS.NFS_FOLDER_PATH: в данном примере путь к папке —/scratch.
Эта настройка позволяет использовать NFS-хранилище для хранения данных системы управления печатью.
Установка с шифрованием (stunnel)
Stunnel — это прокси с открытым исходным кодом, который позволяет создавать безопасные туннели для взаимодействия с другими компьютерами по протоколу TLS.
Ниже описаны шаги по установке и настройке Stunnel для обеспечения безопасного подключения к серверу NFS.
Установка сервера NFS и Stunnel
Для Ubuntu, Astra Linux и ALT Linux:
sudo apt update
sudo apt install -y nfs-kernel-server stunnel4
Для РЕД ОС и Red Hat Enterprise Linux:
sudo dnf update
sudo dnf install -y nfs-utils stunnel
Настройка сервера NFS
Создайте директорию для экспорта:
sudo mkdir /scratch
Измените владельца папки:
-
Для Ubuntu, и Astra Linux и ALT Linux:
sudo chown nobody:nogroup /scratch sudo chmod 777 /scratch -
Для РЕД ОС и Red Hat Enterprise Linux:
sudo chown nobody:nobody /scratch sudo chmod 777 /scratch
где /scratch – путь к общей директории.
Настройте экспорт директории. Для этого отредактируйте файл конфигурации экспортируемых директорий:
sudo nano /etc/exports
Добавьте строку для папки /scratch:
/scratch 127.0.0.1(rw,sync,no_subtree_check,insecure,no_root_squash)
Обратите внимание: параметр
insecureобязателен.
Применение изменений в экспортах:
Выполните команду:
sudo exportfs -a
Перезапуск службы NFS
Выполните перезапуск службы NFS:
-
Для Ubuntu, Astra Linux и ALT Linux:
sudo systemctl restart nfs-kernel-server -
Для РЕД ОС и Red Hat Enterprise Linux:
sudo systemctl restart nfs-server.service
Настройка Stunnel на сервере NFS
Получение сертификатов
Если используются автоматические сертификаты, выпустите дополнительные сертификаты для NFS сервера, выполнив следующие команды на сервере балансировщика:
cd /opt/printum_balancer/scripts
sudo ./generate_certs.sh <HOSTNAME_NFS_SERVER>
где <HOSTNAME_NFS_SERVER> — IP-адрес или доменное имя сервера NFS.
После выполнения команды архив printum_certs.tar.gz, содержащий необходимые сертификаты, будет создан в директории /opt/printum_balancer/certificates/<HOSTNAME_NFS_SERVER>.
На сервере NFS создайте директорию /etc/stunnel/cert:
sudo mkdir /etc/stunnel/cert
Скопируйте архив на сервер NFS и извлеките файлы в эту директорию:
sudo cp printum_certs.tar.gz /etc/stunnel/cert
sudo tar -xvf printum_certs.tar.gz
Если используются собственные сертификаты, скопируйте CA-сертификат, SSL-сертификат и ключ на сервер NFS в эту директорию:
sudo cp ssl_cert ssl_key ca_cert /etc/stunnel/cert
Настройка Stunnel
Создайте файл /etc/stunnel/stunnel.conf со следующим содержимым:
cert = /etc/stunnel/cert/<cert.crt>
key = /etc/stunnel/cert/<cert.key>
CAfile = /etc/stunnel/cert/<ca.crt>
[nfs]
accept = <NFS_STUNNEL_PORT>
connect = 127.0.0.1:2049
где:
/etc/stunnel/cert/<cert.crt>,/etc/stunnel/cert/<cert.key>,/etc/stunnel/cert/<ca.crt>— абсолютные пути к сертификату, ключу и CA-сертификату.<NFS_STUNNEL_PORT>— порт для туннеля (рекомендуется указать 20490 или другой непривилегированный порт).
Настройка Stunnel для автоматического запуска
-
Для Ubuntu, ALT Linux и Astra Linux:
- Откройте файл
/etc/default/stunnel4 - Найдите строку
ENABLEDи установите значение1:
Если строки нет, добавьте ее вручную.ENABLED=1
- Откройте файл
-
Для РЕД ОС и Red Hat Enterprise Linux:
sudo systemctl enable stunnel
Запуск и включение Stunnel
-
Для Ubuntu и Astra Linux:
sudo systemctl enable stunnel4 sudo systemctl start stunnel4 -
Для РЕД ОС и Red Hat Enterprise Linux:
sudo systemctl enable stunnel sudo systemctl start stunnel
Теперь сервер NFS настроен с использованием шифрования через Stunnel. Для получения дополнительной информации обращайтесь к официальной документации.
Примечание: Если ранее у вас уже был развёрнут балансировщик с использованием нешифрованного соединения с NFS, то для перехода на шифрование с Stunnel вам необходимо выполнить повторную установку балансировщика и всех нод ПМ.
Допускается установка на уже развёрнутые версии.
В сценарии установки балансировщика с помощью скрипта массового развёртывания, укажите следующие значения переменных в файле конфигурации (
config.ini):
NFS_TLS = 1иNFS_STUNNEL_PORT = <порт_для_Stunnel>.SKIP = trueв секции настроек[Monitoring].После изменения значений переменных сохраните файл конфигурации и запустите установку:
sudo ./install_all_offline.shВ сценарии установки балансировщика вручную обновите балансировщик и все ноды ПМ с указанием переменных
NFS_TLS = 1иNFS_STUNNEL_PORT = <порт_для_Stunnel>.
Ожидаемый результат
- NFS-сервис активен; общая папка доступна на чтение и запись.
- Параметры
NFS_ADDRиNFS_FOLDER_PATHготовы для указания при установке ПринтМенеджеров.
Следующие шаги
Типовые ошибки
Причина:
.env ПринтМенеджера.
Решение:
sudo cat /opt/printmanager/.env.Параметры должны быть:
DRIVER_OPTS_DEVICE — :NFS\_FOLDER\_PATHFOLDER\PATHDRIVER_OPTS_O — addr=NFS_ADDR,nolock,soft,rwDRIVER_OPTS_TYPE — nfs.
Убедитесь в сетевой доступности NFS-сервера и возможности чтения/записи из NFS_FOLDER_PATH.