Установка и настройка

Установка

Важно

Перед началом установки необходимо произвести настройку окружения. Все команды выполняются только от суперпользователя.

Режим суперпользователя:

sudo -i
  1. Перед началом установки сохраните список установленных ранее пакетов, это позволит Вам безболезненно восстановить систему в случае ее повреждения. Для этого выполните следующие команды:

    mkdir -p /tmp/rollback/otp-sender
    pip3 freeze > /tmp/rollback/otp-sender/pip_before.txt
    

    После чего в каталоге /tmp/rollback/otp_sender будет находиться файл pip_before.txt с перечнем установленных приложений.

  2. Установите пакет OTPsender:

    • из репозитория Python-пакетов:

      pip3 install otp-sender
      
  3. Сохраните список установленных пакетов после установки для возможности отката изменений:

    pip3 freeze > /tmp/rollback/otp-sender/pip_after.txt
    

Примечание

Для установки OTPsender на Astra Linux (Smolensk) выполните следующее:

  1. Подключите предоставленный Вам репозиторий с пакетами AccentOS.

  2. Установите пакет командой:

    sudo apt install -y aos-otp-sender
    

Настройка

  1. В конфигурационный файл keystone.conf добавьте возможность двухфакторной авторизации:

    [auth]
    methods = external,password,token,oauth1,totp
    
  2. После чего перезапустите службу keystone:

    systemctl restart keystone.service
    
  3. Выполните первичную настройку модуля:

    openstack aos configure -n otp_sender
    
  4. Создайте каталог для лог файлов с нужными правами:

    mkdir -p /var/log/aos/otp-sender
    chown -R aos:aos /var/log/aos/otp-sender
    
  5. Скопируйте образец конфигурационного файла. При использовании нестандартных параметров отредактируйте их (подробнее см. Файл конфигурации):

    cp /etc/aos/aos.conf.example /etc/aos/aos.conf
    cp /etc/aos/otp_sender.conf.example /etc/aos/otp_sender.conf
    
  6. Отредактируйте секцию [redis] конфигурационного файла etc/aos/aos.conf:

    [redis]
    url = redis://:password@localhost:6379/0
    
  7. Создайте пользователя в OpenStack для API сервисов:

    openstack user create --domain default --project service --project-domain default --password password --or-show aos
    
  8. Назначьте пользователю роль service:

    openstack role add --user aos --user-domain default --project service --project-domain default service
    
  9. Включите и запустите службы 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
    
  10. Создайте сервис OTPsender API:

    openstack service create --name otp-sender --description "OTPsender Service" otp-sender
    
  11. Создайте точки входа (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
email password Пароль для авторизации в почтовом сервисе.  
email port Порт для подключения к SMTP серверу. 465
email smtp_server SMTP сервер для отправки почты.  
email username Имя пользователя в почтовом сервисе.  
telegram api_hash Хэш приложения Telegram, полученный по инструкции.  
telegram api_id ID приложения Telegram, полученный по инструкции.  
telegram session Сессия Telegram, полученная утилитой otp-sender- manage init-tg-session.