Пример интеграции OTRS и Mattermost основан на примере интеграции OTRS и Slack:
viewtopic.php?f=2&t=927&p=25053#p25053
Интеграция протестирована на OTRS версий 5 и 6. Основное отличие последней в необходимости примерения конфигурации из файлов xml. В OTRS 6 конфигурация хранится в базе данных.
Настройка Incoming Webhook в Mattermost
Регистрируемся/логинимся в Mattermost.
Переходим: Main Menu --> Integrations --> Incoming Webhooks
Создаем новый Webhook вида:
https://mattermosthost/hooks/1234webhookhash67890
, где
http - протокол,
mattermosthost - хост Mattermost,
hooks - адрес API Webhook (выбирается автоматически),
1234webhookhash67890 - хэш нашего Webhook.
Все эти параметры выбираются системой автоматически, но зависят от того, каким образом вы залогинены в Mattermost. Единственный выбор предоставленный Вам - это возможность выбрать канал по умолчанию и закрепить Webhook за этим калалом. Я канал выбрал, а закрепление Webhook за этим каналом не делал для того, чтобы иметь возможность отправлять POST запросы на создание сообщений в разные каналы.
Настройка OTRS
Добавление файлов Web Service
В файловую систему OTRS сервера нужно добавить файлы:
- MattermostText.pm (файл с Invoker модулем, который будет отправлять POST-запросы в Mattermost:
- REST.pm (Это модифицированный файл из каталога /opt/otrs/Kernel/GenericInterface/Transport/HTTP)
Модификация последнего необходима для корректной обработки ответа на POST-запросы от Mattermost. Mattermost как и Slack отвечает:
Код: Выделить всё
"Content-Type" : "text/plain" - в заголовке
и
"ok" - в теле ответа
Код: Выделить всё
mkdir -P /opt/otrs/Custom/Kernel/GenericInterface/Transport/HTTP
cp -p /opt/otrs/Kernel/GenericInterface/Transport/HTTP/REST.pm /opt/otrs/Custom/Kernel/GenericInterface/Transport/HTTP/REST.pm
Код: Выделить всё
# To convert the data into a hash, use the JSON module.
my $Result;
Код: Выделить всё
if ($ResponseContent eq 'ok' ) {
$ResponseContent = '{"text": "ok"}';
}
Код: Выделить всё
uzip invoker.zip
mkdir -P /opt/otrs/Custom/Kernel/GenericInterface/Invoker/Mattermost/
cp ./invoker/GenericInterface/Invoker/Mattermost/MattermostText.pm /opt/otrs/Custom/Kernel/GenericInterface/Invoker/Mattermost/
Код: Выделить всё
cd /opt/otrs/Custom/Kernel/
sudo chown -R otrs:apache ./GenericInterface
sudo /opt/otrs/bin/otrs.SetPermissions.pl --otrs-user='otrs' --web-group='apache'
otrs - имя пользователя, от имени которого запущен OTRS,
apache - группа пользователя, от имени которого запущен OTRS.