Найти в Дзене
114 подписчиков

Автоматизаторы здесь?

Писали парсеры вывода CLI? Пробовали заскриптовать взаимодействие с железкой?
- подождать промпт
- записать команду
- прочитать эхо
- попарсить результат
- понять - это ОК, ошибка, вопрос или пейджер

Спасибо, что уже давно появились netmiko и scrapli, изменившие мир expect-ов. А вот теперь и от Яндекса Go-шная библиотека - Gnetcli.
Пара важных отличий от прекрасного scrapligo:
- gnetcli умеет отвечать на вопросы и обрабатывать пейджер, а также работать с интерактивными командами.
- Бонусом в комплекте идет GRPC-сервер, чтобы забыть про работу с SSH в своих микросервисах.

От автора gescheit:
Классический способ автоматизации CLI - это написание expect-подобной программы, описывающей все шаги выполнения команды: ожидание промта, запись команды, чтение эха и чтение промта из результата. Такой подход относительно хорошо работает на одной команде, но плохо масштабируется. Команда может выдать неожиданный результат, например, ошибку, вопрос или пейджер. Проект Gnetcli - это гошная библиотека, в которой можно описать CLI конкретного вендора как набор регулярок и просто делать Exec(команда) и получать на выходе отдельно ошибку и отдельно вывод. Бонусом в комплекте идет GRPC-сервер, чтобы забыть про работу с SSH в своих микросервисах.
1 минута