Как стать автором
Обновить

Комментарии 17

Ansible хорош своей идемпотентностью - если сказано в плэйбуке, что третий порт должен быть только в VLAN 44, оно так и станет и лишнего в конфиге в теории не останется.

С поддержкой ансиблом пока недостаточно хорошо?

Поддержка стала лучше, насколько я могу судить, особенно что касается CE коммутаторов. Но большая часть YANG моделей описана под NETCONF, другие работают только через network_cli. Недавно тестировал настройку DHCP через Ansible, так вот пришлось создавать VLANs и прописывать их на порты через NETCONF, а создавать DHCP пул адресов и прочие атрибуты через network_cli. В результате вместо одного конфиграционного файлы вышла два, и пришлось в inventory править ansible_connection.

Сколько времени занял накат скрипта? Не могло ли произойти такое, что промежуток времени между первым выводом и вторым слишком мал, чтобы были видны изменения STP топологии?

Засек на секундомере: 2 минуты 50 секунд. Время достаточное, чтобы возможные изменения вступили в силу и корректно отобразились в конце. Обычно это занимает не более 30 секунд. Другое дело, что если поломается VLAN управление, на котором мы через SSH подсоединились, то есть подпилим сук, на котором и сидим, то соединение порвется и накат оборвется.

Версия библиотеки имеет какое-то принципиальное значение?

Встречал в этом посте: у человека не запустился код после обновления netmiko до версии 2.2.2, хотя тот же код в версии 2.1.1 работал прекрасно. Не знаю насколько это может быть актуальным теперь.

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

Спасибо, подумаю над этим.

Неужели автоматизация через SSH для Huawei такая невидаль, что пришлось занимать им целый пост? В том числе для человека не разбирающегося в программировании, как было автором сказано о самом себе.

Автоматизация через SSH для Huawei была неведалью для меня лично, простого сетевого инженера, который не силен в алгоритмах. И пришлось пройти сложный полугодовой путь, чтобы разобраться в этой казалось бы простой вещи и рассказать об этом, да, в целом посте. В интернете я не нашел готового кода, так что учился по Биллу Любановичу Introducing Python, заказанной на Amazon, и некоторых обучающих видео по автоматизации сети, но все эти видео использовали устройства другого известного вендора, и на Huawei эти решения не работали. Telnetlib в частности не работает на Huawei в примере по умолчанию. Зато Netmiko сразу завелся. Я хотел привести действительно рабочий код, который могли бы использовать другие сетевые инженеры, меняя лишь переменные, подставляя в них команды для своих задач. Надеюсь, у меня получилось.

А насколько масштабируем скрипт? Как думаете можно ли на его основе написать такой, который импортируя 2 файла (1.список ip-адресов и 2.текст комманд) позволит автоматизировать накат однотипных команд на большой парк оборудования?

З.Ы. Что-то подобное видел в NOC, называлось RunCommands

Думаю, что скрипт можно масшабировать на неопределенное число хостов, ведь накат происходит не на все устройства сети одновременно, а по очереди, циклично.

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

Что значит кот, вертящийся на пирамиде из коммутаторов?

Он символизирует скрипт, а вращение - символизирует накат, или цикл. А может в мире на самом деле есть кот по кличке Нетмико

Логика понятна. Но что, если надо применить какой-то действительно рискованный конфиг? Если вместо верификации в начале и в конце прописать отложенный рестарт? Как скрипт воспримет его со всеми huawei “а вы уверены?”, “а вы точно уверены?”? Придется ли yes в команды добавлять?

На самом деле сложно ответить. Это нужно на реальном железе тестировать - образы коммутаторов в eNSP имеют ограниченный функционал и не поддреживают отложенный рестарт. Я попробовал добавить команду save, которая тоже требует ввода ‘yes’, и вот что получилось:

Думаю, что для таких комманд нужен специальный функционал.

Сначало подумал придраться, что про range () не рассказали - почему два влана создалось вместо трёх - но потом увидел пояснение в конце.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий