Как быстро сделать много похожих текстовых файлов конфигураций для сетевого оборудования (Cisco, Huawei etc)?

Коллеги, нужен совет

Типичная ситуация для сетевого инженера:

На сеть устанавливается новое однотипное оборудование в количестве несколько десятков. Необходимо подготовить текстовые-файлы с конфигурацией для каждой новой железки. Эти текстовые файлы в основном будут одинаковыми, различаться в них будут только уникальные значения, такие как IP-адреса, порты etc. В каком-то виде есть табличка со всеми этими уникальными параметрами. Допустим одну железку мы полностью настроили и протестировали.

Вопрос:

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


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

...
modul 3 port 1 port_id 3001
modul 3 port 2 port_id 3002
modul 3 port 3 port_id 3003
...
modul 4 port 4 port_id 4003
modul 4 port 5 port_id 4004
modul 4 port 6 port_id 4005
...



Инженеры моей компании, с которыми мне доводилось общаться используют для этого Excel. Но, мне кажется, что это далеко не самый удобный метод решения проблемы. Тут бы, как мне кажется, удобнее было б использовать систем шаблонизации как в веб-программировании в многочисленных CMS и фреймворках.


В поисковиках не нашел ничего подходящего. Уже настроился написать собственный велосипед: простенькую систему шаблонизации для таких вот случаев на Python + подсветку синтаксиса шаблонов в Sublime Text 2. Но сперва хотел бы поинтересоваться у Хабра, кто и как решает такие задачи в своей практике?
  • Вопрос задан
  • 4536 просмотров
Пригласить эксперта
Ответы на вопрос 4
Wott
@Wott
У меня таблица нодов в mysql в которой куча параметров, часть из которых берется из nagios ( но переделываю на zabbix ), иногда из астериск
В том числе и тип железки, которой соответвует простой шаблон в другой табличке
И простая же форма на web которая создает/редактирует/удаляет ноду и делает конфиг подставляя параметры
Собственно до меня была похожая система на астериск ( без конфигов ) и я ее слегка адаптировал для сетевого оборудования

Шаблонами покрыто только часть — dlink и rwr ( их у нас много ). Циски в ядре отличаются сильнее друг от друга что бы делать для них шаблоны.

Все просто как велосипед :)

Чего я хочу так это совсем уйти от ручной работы в той части, где можно шаблонизировать. Типа дернулся dhcp, по mac определили тип — можно зайти в терминал, определили точно железяку — нашли его тип, нашли ему место в сети и хлобысь в него конфигом. И радостно замигала зеленым новая нода на карте.
Ответ написан
foxmuldercp
@foxmuldercp
Системный администратор, программист, фотограф
Не могу сказать за очень хитрые параметры в настройках Cisco, но, допустим, простые вещи типа настройки портов, днс, вланов, менеджмент интерфейсов, радиуса/такакса на те 26х, 35х, 37х и 18х железки, которые стоят у меня на работе проблем не возникло, детали были разве что в настройках транковых портов на железках, у которых была не только dot1x енкапсуляция, еще на некоторых особо умных пришлось выключать маршрутизацию и прописывать роутинг, иначе железка по менеджмент интерфейсу была недоступна.

Я бы сделал так:
1. слил конфиги со всех железок в одно место
2. протипизировал разные варианты конфигов
3. создал на любимом языке генератор конфигурации с нужными настройками — dns, snmp, management и т.п по шаблонам из пункта 2.
4. настроил tftp/ftp сервера с балансировкой и хартбитом по гайдам от вендоров для выдачи прошивок и конфигураций
на железки.
5. протестил загрузку и получение прошивки на устройства по сети и их корректный запуск.
6. настроил создание/обновление узлов в системе мониторинга на основании лога от ftp/tftp — т.е. допустим нода получила прошивку и конфигурацию, соответственно получила какой-то адрес, и ведь не факт что он есть в мониторинге и профили в системе мониторинга которые к железке будут подключаться.
7. запустил это все в продакшен.

Возможно я упустил какие-то пункты, но подозреваю что этоуже будет зависеть от топологии сети
Ответ написан
siberianMan
@siberianMan Автор вопроса
«создал на любимом языке генератор конфигурации» — вот этого момента я как раз хотел избежать. Ну видимо придется все таки писать.
Ответ написан
Комментировать
@tgz
Тупо создаю что нужно в vim. Если очень много, то sed.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы