В этой статье Вы узнаете, как автоматизировать ежедневные задачи на сетевых устройствах MikroTik с помощью языка программирования Python и библиотеки Netmiko.
Netmiko — это библиотека Python для подключения к сетевым устройствам по протоколу ssh.
Содержание:
- Установка
- Подключение
- Отправка команды
- Пример скрипта для резервного копирования настроек
- Зыкрытие подключения
- Итоговый скрипт для резервного копирования настроек MikroTik
- Выводы
Установка
Netmiko можно установить через менеджер пакетов PIP.
Подключение
Для подключения к устройствам мы будем использовать ConnectHandler.
Отправка команды
Для отправки команды мы будем использовать метод send_command.
Если нужно отправить много комманд используем слудующую конструкцию:
Пример скрипта для резервного копирования настроек
Закрытие подключения
После выполнения всех команд на удаленном устройстве, необходимо выполнить отключение.
Итоговый скрипт для резервного копирования настроек MikroTik
GIT
Выводы
Спасибо за время, уделенное на прочтение этой статьи. Таким образом, мы успешно справились автоматизацией задач на устройствах MikroTik при помощи Python и Netmiko.
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
5 комментариев. Оставить новый
А вот команду
/system health print
выполнять отказывается….. 🙁
Можете подсказать причину?
Может быть, потому что и в терминале самого Микротика у этой команды пустой выхлоп? Не все модели поддерживают health в принципе. Попробуйте /system clock print например.
Кстати, библиотечка и по IPv6 замечательно цепляется. Зачёт!
Друзья а у меня итоговый скрипт не работает — выдает вот такое:
Traceback (most recent call last):
File «test2», line 15, in
output = sshCli.send_command(«/interface ethernet print»)
File «/home/vitas/.local/lib/python3.8/site-packages/netmiko/utilities.py», line 429, in wrapper_decorator
return func(self, *args, **kwargs)
File «/home/vitas/.local/lib/python3.8/site-packages/netmiko/base_connection.py», line 1529, in send_command
output = self._sanitize_output(
File «/home/vitas/.local/lib/python3.8/site-packages/netmiko/base_connection.py», line 891, in _sanitize_output
output = self.strip_prompt(output)
File «/home/vitas/.local/lib/python3.8/site-packages/netmiko/mikrotik/mikrotik_ssh.py», line 76, in strip_prompt
last_line = response_list[-2]
IndexError: list index out of range
Может быть кто нибудь подскажет?
У меня такая же ошибка возникала, если не указать суффикс «+ct» в поле username.
Согласно https://wiki.mikrotik.com/wiki/Manual:Console_login_process эти параметры выключают поддержку «цвета» в терминале и «auto detection of terminal capabilities»
Как по ssh подключиться по ключевой паре public/private key, если private еще и зашифрован паролем?