Установка и настройка¶
Установка¶
Важно
Перед началом установки необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.
Режим суперпользователя:
sudo -i
Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:
mkdir -p /tmp/rollback/otp-sender pip3 freeze > /tmp/rollback/otp-sender/pip_before.txt
После чего в каталоге
/tmp/rollback/otp_sender
будет находиться файлpip_before.txt
с перечнем установленных приложений.Установите пакет OTPsender:
из репозитория Python-пакетов:
pip3 install otp-sender
Сохраните список установленных пакетов после установки для возможности отката изменений:
pip3 freeze > /tmp/rollback/otp-sender/pip_after.txt
Примечание
Для установки OTPsender на Astra Linux (Smolensk) выполните следующее:
Подключите предоставленный Вам репозиторий с пакетами AccentOS.
Установите пакет командой:
sudo apt install -y aos-otp-sender
Настройка¶
В конфигурационный файл
keystone.conf
добавьте возможность двухфакторной авторизации:[auth] methods = external,password,token,oauth1,totp
После чего перезапустите службу keystone:
systemctl restart keystone.service
Выполните первичную настройку модуля:
openstack aos configure -n otp_sender
Создайте каталог для лог файлов с нужными правами:
mkdir -p /var/log/aos/otp-sender chown -R aos:aos /var/log/aos/otp-sender
Скопируйте образец конфигурационного файла. При использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):
cp /etc/aos/aos.conf.example /etc/aos/aos.conf cp /etc/aos/otp_sender.conf.example /etc/aos/otp_sender.conf
Отредактируйте секцию
[redis]
конфигурационного файлаetc/aos/aos.conf
:[redis] url = redis://:password@localhost:6379/0
Создайте пользователя в OpenStack для API сервисов:
openstack user create --domain default --project service --project-domain default --password password --or-show aos
Назначьте пользователю роль service:
openstack role add --user aos --user-domain default --project service --project-domain default service
Включите и запустите службы systemd:
systemctl daemon-reload systemctl enable aos-otp-sender-api.service aos-otp-sender-worker.service systemctl start aos-otp-sender-api.service aos-otp-sender-worker.service
Создайте сервис OTPsender API:
openstack service create --name otp-sender --description "OTPsender Service" otp-sender
Создайте точки входа (endpoint):
openstack endpoint create --region RegionOne otp-sender internal http://controller:9367 openstack endpoint create --region RegionOne otp-sender admin http://controller:9367 openstack endpoint create --region RegionOne otp-sender public http://controller:9367
Примечание
Для успешной отправки модулем OTPsender сообщений через Telegram необходимо произвести настройки в соответствии с инструкцией.
Примечание
Для успешной рассылки модулем OTPsender сообщений по электронной почте необходимо произвести настройки в соответствии с инструкцией.
Файл конфигурации¶
Примечание
Файл конфигурации позволяет переопределять секции и параметры общего файла aos.conf
для конкретного модуля.
Примечание
По умолчанию в файле otp_sender.conf.example
строки с уровнем логирования нет, она указывается при необходимости. Уровень логирования по умолчанию выставлен в общем конфигурационном файле. Подробнее ознакомиться с файлами конфигурации можно в соответствующем разделе.
Конфигурационный файл представлен в ini
формате и состоит из следующих секций и параметров:
Секция | Параметр | Описание | Значение по умолчанию |
---|---|---|---|
api | host | Хост сервиса OTP Sender api. | 0.0.0.0 |
api | logfile | Путь до лог файла службы OTP Sender api. | |
api | num_workers | Количество gunicorn воркеров сервиса OTP Sender api. | 3 |
api | port | Порт сервиса OTP Sender . | 9367 |
api | threads | Количество gunicorn потоков сервиса OTP Sender api. | 10 |
password | Пароль для авторизации в почтовом сервисе. | ||
port | Порт для подключения к SMTP серверу. | 465 | |
smtp_server | SMTP сервер для отправки почты. | ||
username | Имя пользователя в почтовом сервисе. | ||
telegram | api_hash | Хэш приложения Telegram, полученный по инструкции. | |
telegram | api_id | ID приложения Telegram, полученный по инструкции. | |
telegram | session | Сессия Telegram, полученная утилитой otp-sender- manage init-tg-session. |