Сразу оговорюсь — я работаю в компании, которая напрямую с IT не связана, поэтому бюджет именно на IT у нас небольшой. Соответственно многие программы и связанные с ними удобства нам недоступны, поэтому приходится делать как умеем. А когда в компании помимо IT отдела есть несколько сотен пользователей, которые с трудом отличают монитор от мышки — работа становится как отдельный квест.
Поэтому написанное мною будет скорее полезно админам в небольших компаниях.
Многие (или не многие) слышали о таком прекрасном инструменте как Mattermost.
Для тех, кто не слыхал — это такой Slack, но только self-hosted. Внутри компании общий чат вообще наиполезнейшая штука.
Ставится элементарно, при желании очень просто прикрутить бота (я, например, использую Hubot), на который можно завернуть всякого рода оповещения о задачах из редмайна или мониторинга, да и автоматизировать некоторые бизнес-процессы, которые можно завернуть в сценарий вопрос-ответ дорогого стоит.
Всем удобен этот чатик, но есть одно одно но. На самом деле не одно, но отсутствие нормального структурированного списка пользователей просто убивает. Можно, конечно, использовать Openfire+Miranda, но наличие у Mattermost клиента для телефонов с возможностью push-уведомления перевешивает все эти минусы. Так как количество пользователей не десяток, количество отделов тоже не два, то иногда возникает вопрос — а кто же сегодня работает на рецепции в удаленном филиале? Кто из них онлайн? Как красиво и доступно донести до обычного пользователя эту информацию в одном месте — тот еще вопрос. Рисовать развесистое дерево вариантов запросов и ответов для чатбота — развлечение еще то, поэтому представляю поделку на коленке специально для такого случая.
Cервис для Mattermost, написан удобства запуска различных powershell скриптов из slash/custom команд. На самом деле можно использовать для разных нужд, обращаясь к нему по url, но я его писал для того, чтобы в чатике рисовать кнопочки. Все любят кнопочки, даже котики и тётушки из бухгалтерии. Ну а писать на PowerShell обязан уметь любой виндовый админ, поэтому полезняшки!
Примерная работа выглядит так:
Сервис предназначен для работы на Windows системах, с Powershell v3+. Для его запуска требуются права запускать PowerShell скрипты и открывать сокет. В скрипте нет никакой аутентификации, поэтому прописывать в конфигах что-либо разрушительное и выставлять голой попой в интернет не советую. С другой стороны можно прописывать пути подлиннее, но это на любителя.
Сервис состоит собственно из самого скрипта, и конфиг файла, в котором указываются скрипты, которые нужно запускать и передаваемые на вход данные (описаны в документации, пункт 8).
Записи в конфиге
означают, что при обращении к урлу /script будет запущен скрипт Dummy-Script.ps1, находящийся в той же директории, что и ButtonCommander, с входящими переменными text,team_domain,user_name.
Сервис получает данные со скриптов и посылает их в channel, из которого пришел запрос. Если данные пришли в форме JSON, то конвертация в простое сообщение не происходит, а в Mattermost посылается исходный JSON — именно так делаются кнопочки.
Скрипт можно остановить или перечитать конфиг файл тоже путем обращения по специальному url. Но в прочем, описание и установка описаны прямо в репозитории, поэтому копипастить не буду. Скрипт прошёл обкатку, и выложен уже в рабочей версии. Работает без сбоев уже вполне долгое время.
Ссылка на репозиторий.
P.S.: Аффтар не писатель и не программист, а акушер-столяр широкого профиля, поэтому пишет как умеет.
P.P.S.: Речь везде идет о Team Edition, у которого (о боль, боль!) нету ldap авторизации. Я выхожу из положения подменой странички логина на свою (nginx + python,) но та поделка настолько чудовищна, что выкладывать ее я считаю преступлением.
Поэтому написанное мною будет скорее полезно админам в небольших компаниях.
Многие (или не многие) слышали о таком прекрасном инструменте как Mattermost.
Для тех, кто не слыхал — это такой Slack, но только self-hosted. Внутри компании общий чат вообще наиполезнейшая штука.
Ставится элементарно, при желании очень просто прикрутить бота (я, например, использую Hubot), на который можно завернуть всякого рода оповещения о задачах из редмайна или мониторинга, да и автоматизировать некоторые бизнес-процессы, которые можно завернуть в сценарий вопрос-ответ дорогого стоит.
Всем удобен этот чатик, но есть одно одно но. На самом деле не одно, но отсутствие нормального структурированного списка пользователей просто убивает. Можно, конечно, использовать Openfire+Miranda, но наличие у Mattermost клиента для телефонов с возможностью push-уведомления перевешивает все эти минусы. Так как количество пользователей не десяток, количество отделов тоже не два, то иногда возникает вопрос — а кто же сегодня работает на рецепции в удаленном филиале? Кто из них онлайн? Как красиво и доступно донести до обычного пользователя эту информацию в одном месте — тот еще вопрос. Рисовать развесистое дерево вариантов запросов и ответов для чатбота — развлечение еще то, поэтому представляю поделку на коленке специально для такого случая.
Cервис для Mattermost, написан удобства запуска различных powershell скриптов из slash/custom команд. На самом деле можно использовать для разных нужд, обращаясь к нему по url, но я его писал для того, чтобы в чатике рисовать кнопочки. Все любят кнопочки, даже котики и тётушки из бухгалтерии. Ну а писать на PowerShell обязан уметь любой виндовый админ, поэтому полезняшки!
Примерная работа выглядит так:
Сервис предназначен для работы на Windows системах, с Powershell v3+. Для его запуска требуются права запускать PowerShell скрипты и открывать сокет. В скрипте нет никакой аутентификации, поэтому прописывать в конфигах что-либо разрушительное и выставлять голой попой в интернет не советую. С другой стороны можно прописывать пути подлиннее, но это на любителя.
Сервис состоит собственно из самого скрипта, и конфиг файла, в котором указываются скрипты, которые нужно запускать и передаваемые на вход данные (описаны в документации, пункт 8).
Записи в конфиге
[script]
Script=.\Dummy-Script.ps1
IncomingVariables=text,team_domain,user_name
означают, что при обращении к урлу /script будет запущен скрипт Dummy-Script.ps1, находящийся в той же директории, что и ButtonCommander, с входящими переменными text,team_domain,user_name.
Сервис получает данные со скриптов и посылает их в channel, из которого пришел запрос. Если данные пришли в форме JSON, то конвертация в простое сообщение не происходит, а в Mattermost посылается исходный JSON — именно так делаются кнопочки.
Скрипт можно остановить или перечитать конфиг файл тоже путем обращения по специальному url. Но в прочем, описание и установка описаны прямо в репозитории, поэтому копипастить не буду. Скрипт прошёл обкатку, и выложен уже в рабочей версии. Работает без сбоев уже вполне долгое время.
Ссылка на репозиторий.
P.S.: Аффтар не писатель и не программист, а акушер-столяр широкого профиля, поэтому пишет как умеет.
P.P.S.: Речь везде идет о Team Edition, у которого (о боль, боль!) нету ldap авторизации. Я выхожу из положения подменой странички логина на свою (nginx + python,) но та поделка настолько чудовищна, что выкладывать ее я считаю преступлением.
rtzra
Для авторизации LDAP в Mattermost for the Team Edition можно использовать вот такую штуку: github.com/Crivaledaz/Mattermost-LDAP
ZmeYukka Автор
После этого и решил своё запилить, заодно попробовать питон. А эта штука тянет за собой гитлаб, а он не всем нужен, вторых связку мм и гитлаб еще настроить нужно, да и там два лишних окна открывались. По крайней мере 2 года назад было. Но первый пункт важнее :)
Сейчас более кузяво получилось — что в браузере, что в десктопном клиенте.