2.2. Настройка Boro VoD Solution¶
Примечание
Разделы данной главы являются инструкциями по настройке приложения Boro VoD Solution после его успешной установки и запуска. Таким образом, инструкции применимы к серверу, который уже находится в эксплуатации, если это не оговаривается отдельно.
2.2.1. Изменение имени сервера (Host name)¶
Чтобы изменить имя сервера, заданное в переменной SERVER_PUBLIC_NAME, уже после установки Boro VoD Solution необходимо выполнить следующие шаги:
Запросить у инженера технической поддержки сертификат для нового доменного имени или IP-адреса сервера;
Авторизоваться под учетной записью администратора сервера (роль суперадмина), перейти в настройки
➝ Панель администратора ➝ Certificates и загрузить полученные сертификаты;
При необходимости обновить имя сервера (
Host name) во вкладке➝ Панель администратора ➝ General;
В консоли сервера, на котором установлен Boro VoD Solution, запустить от суперпользователя следующую команду:
NEW_SERVER_PUBLIC_NAME="local_BoroVoDServer_ip_or_hostname" #set new IP address or hostname of the BoroVoDServer sed -i "s#client_api_base_url: .*#client_api_base_url: \"https://${NEW_SERVER_PUBLIC_NAME}:8444\"#; s#turn:turn:[^:]*:3478#turn:turn:${NEW_SERVER_PUBLIC_NAME}:3478#" \ /opt/elecard/boro_vod/Rails/config/.env.yml systemctl reload boro_vod_puma.default if [ -e /etc/coturn/turnserver.conf ]; then sed -i "s/^realm=.*/realm=${NEW_SERVER_PUBLIC_NAME}/" /etc/coturn/turnserver.conf systemctl restart coturn fi find /opt/elecard/boro_vod/Rails/tmp/archive/ -type f -name 'Boro.proj*.zip' -delete
Вместо
local_BoroVoDServer_ip_or_hostnameследует указать новое имя сервера. В результате будут изменены адрес сервера в конфигурационном файле зонда и адрес STUN/TURN-сервера;Ранее скачанные зонды не смогут подключиться к серверу, для возобновления их работы следует обновить значение поля
serverв файлеmonitor.cfg. После редактирования конфигурации зонда запустите его и убедитесь, что зонд отображается на сервере Boro VoD Solution.
2.2.2. Изменение расположения файлов базы данных¶
Чтобы изменить директорию, в которой должны храниться файлы базы данных, выполните следующие команды от суперпользователя:
# Step #0: setup environment:
NEW_DB_LOCATION="/PATH/TO/NEW/DB/LOCATION" # set path to new location of DB files
# Step #1: check available space:
CUR_DB_DIR=$(realpath /var/lib/pgsql);
NEW_DB_LOCATION="$NEW_DB_LOCATION/pgsql";
mkdir -p "$NEW_DB_LOCATION";
if [ "$(findmnt -o TARGET -nT "$CUR_DB_DIR")" != "$(findmnt -o TARGET -nT "$NEW_DB_LOCATION")" ]; then
DB_SIZE=$(du -s -B1M "$CUR_DB_DIR" | cut -f1)
TARGET_FS_AVAIL=$(df -B1M --output=avail "$NEW_DB_LOCATION" | tail -1)
if [ "$DB_SIZE" -gt "$TARGET_FS_AVAIL" ]; then
echo "No sufficient space on destination FS:"
printf "%22s - %9d MB\n" \
"DB size" "$DB_SIZE" "target FS available" "$TARGET_FS_AVAIL"
fi
fi
# Step #2: stop PostgreSQL:
PG_VER=$(psql -V | sed 's/psql (PostgreSQL) \([0-9]\+\)\.[0-9]\+.*/\1/');
systemctl stop postgresql-${PG_VER}.service;
# Step #3: move files:
echo "Start copying: \"$CUR_DB_DIR\" -> \"$NEW_DB_LOCATION\" ...";
time mv -Tf "$CUR_DB_DIR" "$NEW_DB_LOCATION";
# Step #4: update link and SELinux rules:
ln -Tfs "$NEW_DB_LOCATION" /var/lib/pgsql;
semanage fcontext --add --equal /var/lib/pgsql "$NEW_DB_LOCATION";
restorecon -R "$NEW_DB_LOCATION";
# Step #5: restore services:
systemctl restart postgresql-${PG_VER}.service \
boro_vod_sidekiq.default boro_vod_puma.{web_api,default} \
boro_vod_golang.{worker,server};
# Step #6: check Solution status:
/opt/elecard/boro_vod/bin/status.sh
Примечания
Вместо
/PATH/TO/NEW/DB/LOCATIONследует указать директорию для хранения файлов базы данных. Дополнительная поддиректорияpgsqlсоздастся в указанном месте назначения;Из-за потенциально опасных операций следует выполнять скрипт по частям, проверяя ошибки после каждого шага;
Операция перемещения может занять некоторое время, которое зависит от размера базы данных и скоростей устройств хранения данных;
После выполнения переноса проверьте web-интерфейс Boro VoD Solution.
2.2.3. Организация доступа к web-интерфейсу по HTTPS¶
Чтобы настроить доступ к web-интерфейсу по защищенному протоколу, необходимо выполнить следующее от суперпользователя:
Добавить правило в Firewall:
firewall-cmd --state && (firewall-cmd --permanent --add-service=https; firewall-cmd --reload);
Далее следует настроить пути до сертификата и ключа, которые должны использоваться для установки HTTPS-соединения. Для этого в файле
/etc/nginx/sites-available/boro_vod.https.confукажите пути до сертификатаssl_certificateи ключаssl_certificate_key. Рекомендуемым вариантом размещения сертификата и ключа являются пути, указанные в файлеboro_vod.https.conf. Однако если вы хотите использовать собственные пути размещения, требуется учесть следующие ограничения:Файлы должны иметь одинаковый контекст безопасности SELinux
httpd_config_t,Не стоит размещать сертификат и ключ в домашних директориях каких-либо пользователей.
Для добавления конфигурационного файла с использованием HTTPS-порта в Nginx введите следующую команду:
ln -fs ../sites-available/boro_vod.https.conf /etc/nginx/sites-enabled/boro_vod.https.conf
Чтобы проверить конфигурацию и перезапустить Nginx:
nginx -t && (restorecon /var/run/nginx.pid; systemctl restart nginx)
Пример c помощью утилиты Certbot¶
Ниже описан метод генерации HTTPS-сертификата с помощью утилиты Certbot. Данный метод подходит для организации HTTPS-доступа на время тестирования Boro VoD Solution.
Выполните команды последовательно от суперпользователя:
# Команда добавит правило в Firewall:
firewall-cmd --state && (firewall-cmd --permanent --add-service=https; firewall-cmd --reload);
# Команда установит репозиторий EPEL (Extra Packages for Enterprise Linux) repository:
dnf install epel-release -y
# Команда установит утилиту Certbot и ее дополнительный модуль для Nginx:
dnf install -y certbot python3-certbot-nginx
# Команда запустит процесс генерации HTTPS-сертификата. Следуйте инструкции в терминале:
certbot --nginx -d <domain name>
Вместо
<domain name>укажите существующее зарегистрированное доменное имя;По завершении Certbot:
Укажет пути до сертификата и ключа,
Укажет дату действия сертификата,
Пропишет пути до сертификата и ключа в файл
/etc/nginx/sites-available/boro_vod.http.conf.
Отредактируйте содержимое файла
/etc/nginx/sites-available/boro_vod.http.conf;Закомментируйте первую строку, содержащую
include sites-include/boro_vod.conf;c помощью символа#;Сохраните изменения;
Проверьте конфигурацию и перезапустите Nginx:
nginx -t && (restorecon /var/run/nginx.pid; systemctl restart nginx)
2.2.4. Разрешение ControlAPI в Nginx¶
По умолчанию в настройках Nginx-сервера доступ к API заблокирован для всех IP-адресов.
Чтобы настроить доступ, необходимо отредактировать файл /etc/nginx/sites-include/boro_vod.conf на сервере Boro VoD Solution от суперпользователя.
Найдите в файле следующий блок:
location /ctrl_api {
# allow 10.1.1.0/16;
# allow 2001:0db8::/32;
deny all;
try_files /dev/null @default;
}
Чтобы предоставить доступ, раскомментируйте строку
allowи укажите IP-адрес или пул IP-адресов. Вы можете задать список правил, указав несколько директивallowс новой строки.Для разрешения доступа с любого IP-адреса закомментируйте строку
deny all, чтобы она выглядела следующим образом:# deny all;
Чтобы проверить конфигурацию и применить настройки, перезапустите Nginx:
nginx -t && (restorecon /var/run/nginx.pid; systemctl restart nginx)
При возникновении ошибок устраните их и попытайтесь повторно применить конфигурацию.
Подсказка
Более подробно о настройке доступа для IP-адресов в Nginx можно узнать по этой ссылке.
2.2.5. Изменение сроков хранения статистики¶
По умолчанию срок хранения данных составляет 14 дней. В течение этого срока вы можете обратиться к истории проверки (журналы, инфографики, отчеты) запущенных ранее задач. Ротация статистики происходит во время ежедневной очистки данных, в результате чего удаляются данные старше установленного срока хранения.
Если необходимо изменить срок хранения, перейдите к файлу /opt/elecard/boro_vod/Rails/config/config/.env.yml и добавьте следующие строки TBD:
db:
keep_rotation_tables_days: xx
Вместо xx укажите нужный срок хранения в сутках. Далее примените изменения:
systemctl restart boro_vod_sidekiq.default
2.2.6. Сброс пароля администратора¶
Если пароль администратора был скомпрометирован, то его можно изменить в ➝ Панель администратора ➝ вкладка Users.
Найдите пользователя
admin@admin.com, перейдите на вкладку Edit settings и обновите его пароль.
Если вы забыли пароль, единственный способ входа в аккаунт администратора — это сброс пароля.
Зайдите в консоль сервера, на котором установлен Boro VoD Solution, и от суперпользователя выполните следующий скрипт, где в качестве значения переменной USER_PASSWORD необходимо указать новый пароль:
USER_EMAIL='admin@admin.com'
USER_PASSWORD='adm1n678'
su boro -c "
cd /opt/elecard/boro_vod/Rails;
source setup_env.sh;
bin/rails r \"
u = User.find_by!(email: '$USER_EMAIL');
u.password = '$USER_PASSWORD';
u.save(validate: false)
\"
"
2.2.7. Ручная установка драйверов HASP¶
По умолчанию функция установки драйверов HASP отключена при установке приложения Boro VoD Solution. Если необходимо установить поддержку дополнительной защиты HASP, выполните команды ниже от суперпользователя:
Перейдите во временную директорию с распакованным архивом установки:
cd $TMP_DIR/packs
Если временная директория была удалена, распакуйте архив с приложением Boro VoD Solution, как указано в шаге 2 раздела Установка Boro VoD Solution Server. Запускать скрипт установки не требуется!
Установите драйверы защиты HASP:
rpm -ivh aksusbd.x86_64.rpm
Перезапустите все сервисы Boro VoD Solution:
systemctl restart boro_vod*