Страница 3 из 13

Re: Телеграмма для Mikrotik...

Добавлено: 05 авг 2022, 10:50
Brook
Sertik писал(а): 05 авг 2022, 10:12 Спасибо, интересно и нужно. А если обнулить первый массив что будет ? :-):
Со вторым ничего не случится. Если таким способом "обнулять" :set array1 [ ]

Re: Телеграмма для Mikrotik...

Добавлено: 09 авг 2022, 22:19
Brook
Тут на форуме несколько раз встречал вопросы по запуску команд на микротике через Телеграм. Не скриптов, а именно команд, как в терминале.

В моем боте это реализовано, но там в комплексе всё. Если у сообщества есть потребность, могу написать упрощенную версию, где будет чистый терминал...

Re: Телеграмма для Mikrotik...

Добавлено: 09 авг 2022, 23:55
Inner
Наверное, немного не по теме, но работает ли regexp на input? И думаю, будет более правильно писать мои дттошные вопросы в эту тему касательно альтернативы API телеграма :nez-nayu:

Re: Телеграмма для Mikrotik...

Добавлено: 10 авг 2022, 10:53
Brook
Inner писал(а): 09 авг 2022, 23:55 Наверное, немного не по теме, но работает ли regexp на input? И думаю, будет более правильно писать мои дттошные вопросы в эту тему касательно альтернативы API телеграма :nez-nayu:
regexp на input конечно работает и теоретически можно наделать кучу regexp правил и мониторить их в Firewall rules например. Они будут писать в лог определенные команды. Эти команды считывать скриптом из лога и выполнять какие-то действия. Телеграм для этого совсем не нужен.

Это отдельная интересная тема и лучше для нее создать свой топик.

Re: Телеграмма для Mikrotik...

Добавлено: 12 авг 2022, 11:06
Brook
В шапку добавлена функция генерации рандомного значения teGenValue

Re: Телеграмма для Mikrotik...

Добавлено: 21 авг 2022, 20:05
Brook
Друзья, не вынесла душа поэта...

Опубликовал базовую версию бота на своем канале в Телеграм.

Для использования доступен следующий функционал:

- Терминал. Может выполнять любые команды, кроме tracert и ping, если у последнего не указан параметр count;
- Информация о системе, с возможностью создания бэкапов и обновления прошивки;
- Модуль Interfaces, отображает информацию об интерфейсах, позволяет деактивировать любой из них. Не отображает интерфейс, где в имени есть GW;
- Скрипты. Отображает и позволяет выполнить любой скрипт, имя которого начинается на isBot (имя должно быть без пробелов).

Код состоит из модулей. Библиотечные функции, основные модули и массивы данных, разворачиваются сразу в глобальное окружение.

Главный скрипт mainBot, он постоянно мониторит сервер Телеграм на наличие сообщений, получает их и передает на обработку функции диспетчеру. Для callBackов это teCallbackResponse, для текстовых команд - teMessageResponse, для модуля Терминала - teTerminalResponse

Диспетчер определяет какому обработчику предназначена команда и передает ему управление. Обработчики развернуты в скриптах, имя начинается на teCallback. Он выполняет действия и передает параметры в функцию построения ответного сообщения, развернутую в глобальном окружении.

Настройки бота и хранилища данных разворачиваются в скрипт с префиксом dbase. Тут объявляются и инициализируются массивы, содержащие параметры бота, настройки команд Терминала, настройки пользовательских прав и т.д. Это вкратце.

Такой подход позволяет использовать код, как базу для разработки своих модулей. Поэтому любой из вас может самостоятельно дописывать нужный функционал.

Вопросы, если они появятся, можно задавать здесь.

Дерзайте друзья.

Re: Телеграмма для Mikrotik...

Добавлено: 23 авг 2022, 08:32
Inner
Потестировал немногим больше недели. И всё супер. Всё работает как и должно. Никаких проблем не наблюдается. Для меня, конечно, немного функционал избыточен, но я плавно начинаю пользоваться всем что есть. И это очень удобно. Многие могут подумать, что проще всё одним скриптом сделать и писать свои команды в чат боту, но это ошибочно. Сей продукт даже не рядом. Тут и визуал красивый (кто бы мог подумать, что на базе телеги можно сделать что-то новое), и возможностей более чем хватает. Под себя ничего не переделывал. Установил как есть.

Сейчас использую в сети среднего предприятия. Интегрировал с заммадом (у него есть вшитая интеграция с телегой. Но с ботом из этого топика очень даже подружился. Конфликтов не наблюдаю). Разграничил людей. Теперь у меня СБ читает логи с оборудования. А техподдержка больше не ждёт меня для решения простеньких задач. А задачи (со стороны неполадок оборудования) в ТП создаются на полуавтомате. Комфорт, которого мне не хватало.

Добавьте, пожалуйста, возможность рулить vLan (создавать, удалять, изменять, вкл/выкл) и, мне кажется, это будет идеал.

P.S.: В другие организации пока что не внедряю, так как в них используются преимущественно облачные решения на базе CHR (туннели, естественно EoIP). Специфика иная. Так что, на данном этапе не применимо

Re: Телеграмма для Mikrotik...

Добавлено: 23 авг 2022, 11:18
Brook
Inner писал(а): 23 авг 2022, 08:32
Добавьте, пожалуйста, возможность рулить vLan (создавать, удалять, изменять, вкл/выкл) и, мне кажется, это будет идеал.
Большое спасибо за отзыв. По поводу vLan обязательно подумаю, как это можно сделать красиво.
Сейчас vLanы отображаются в группе интерфейсов и там их можно вкл/выкл.

А пока, добавить новый, отредактировать или удалить можно добавлением шаблонов команд в меню Терминала
Ниже прописал такие команды. Их надо добавить в массив dbaseCommands.rsc и нажать Run script


 Команды Терминала

Код: Выделить всё

Добавление vLan

"add vLAN"="=> :set \$vn vlan; :set \$vid 20; :set \$if ether10; :return [interface vlan add name=\$vn arp=enabled vlan-id=\$vid interface=\$if]";

Переменные:
$nvn - имя нового vLan
$vid - ID нового vLan
$if - имя интерфейса нового vLan

Код: Выделить всё

Изменение vLAN

"set vLAN"="=> :set \$vn vlan; :set \$nvn vlanNew; :set \$vid 20; :set \$if ether10; :return [interface vlan set \$vn arp=disabled interface=\$if vlan-id=\$vid name=\$nvn]";

Переменные:
$vn - имя vLan, который изменяем
$nvn - новое имя vLan
$vid - новый ID vLan
$if - новое имя интерфейса vLan

Код: Выделить всё

Удаление vLAN

"del vLAN"="=> :set \$vn vlan; interface vlan remove \$vn";

Переменные:
$vn - имя vLan, который удаляем


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

Re: Телеграмма для Mikrotik...

Добавлено: 23 авг 2022, 12:00
-13-
В инструкции похоже забыли указать наполнение для скрипта Deploy.
teMainBot импортирую, запускаю созданный скрипт, файлы из корня устройства не импортируются.
может что не так делаю?

upd: нашел Deploy в папке setup :smu:sche_nie:

Re: Телеграмма для Mikrotik...

Добавлено: 23 авг 2022, 12:30
Inner
Brook писал(а): 23 авг 2022, 11:18
Inner писал(а): 23 авг 2022, 08:32
Добавьте, пожалуйста, возможность рулить vLan (создавать, удалять, изменять, вкл/выкл) и, мне кажется, это будет идеал.
Большое спасибо за отзыв. По поводу vLan обязательно подумаю, как это можно сделать красиво.
Сейчас vLanы отображаются в группе интерфейсов и там их можно вкл/выкл.

А пока, добавить новый, отредактировать или удалить можно добавлением шаблонов команд в меню Терминала
Ниже прописал такие команды. Их надо добавить в массив dbaseCommands.rsc и нажать Run script


 Команды Терминала

Код: Выделить всё

Добавление vLan

"add vLAN"="=> :set \$vn vlan; :set \$vid 20; :set \$if ether10; :return [interface vlan add name=\$vn arp=enabled vlan-id=\$vid interface=\$if]";

Переменные:
$nvn - имя нового vLan
$vid - ID нового vLan
$if - имя интерфейса нового vLan

Код: Выделить всё

Изменение vLAN

"set vLAN"="=> :set \$vn vlan; :set \$nvn vlanNew; :set \$vid 20; :set \$if ether10; :return [interface vlan set \$vn arp=disabled interface=\$if vlan-id=\$vid name=\$nvn]";

Переменные:
$vn - имя vLan, который изменяем
$nvn - новое имя vLan
$vid - новый ID vLan
$if - новое имя интерфейса vLan

Код: Выделить всё

Удаление vLAN

"del vLAN"="=> :set \$vn vlan; interface vlan remove \$vn";

Переменные:
$vn - имя vLan, который удаляем


В меню Терминала появятся соответствующие кнопки. При нажатии, команда вставится в поле ввода, где нужно будет изменить значения переменных и отправить боту.
Да. Оно и было нужно. Шикардятина. Но на всякий случай уточню. Под интерфесом воспринимаются вообще все интерфейсы? Или есть ограничения на бриджи, физические, виртуальные?