Cisco Switch macro.

Aug 01, 2022 11:42

В IOS есть средство автоматизации, называется macro.
Причем команда добавления маскросов СКРЫТАЯ! Скрытая - Карл!

посмотреть что у вас в системе насоздано можно командой
show parser macro brief
default global : cisco-global
default interface: cisco-desktop
default interface: cisco-phone
default interface: cisco-switch
default interface: cisco-router
default interface: cisco-wireless

Надо помнить что global - это выполнение команд внутри общего режима конфигурации, а interface - внутри интерфейса.
При создании макросов можно испольовать переменные (ура, ура!) в формате $variable, и указывать их при запуске этих самых макросов.

запускать можно двумя способами, применить (apply) и показать вывод от примененных команд (trace). Второй режим полезен при отладке и приятен в работе эникейщикам (люди проникаются важностью момента).
Ещё маленький хинт. команда "do" (выполнить команду) работает. Поэтому можно выводить всякие результаты и прочее. Насколько вашей мятежной фантазии в голову забредёт.

Итак - создадим макрос, который будет сбрасывать в дефолт порт, и заново его конфигурировать.
(config)#macro name setvlan
Enter macro commands one per line. End with the character '@'.
default interface $int
interface $int
shut
switchport mode access
switchport access vlan $vlan
switchport voice vlan $voip
no logging event link-status
spanning-tree portfast
no shut
exit
@

теперь из конфига можно его запускать командой (config)#macro global trace (или apply) setvlan $int gig1/0/16 $vlan 10 $voip 20
Если переменная в макросе одна, то её название можно не указывать при запуске (работает не на всех версиях, проверяйте у себя)
Удалиь макрос можно командой (config)#no macro name setvlan
Есди делать макросы для интерфейсов, без задействования команд глобального конфига, то их можно применять на группы (range) портов.
Кстати насчёт range    Тут тоже можно немного поавтоматизировать. Например у нас есть группа портов, с которой надо периодически производить какие-то одновременные манипуляции.  Например есть группировка гипервизоров, на которые надо заводить или удалять новые вланы.
(config)# define interface-range HOSTS fa0/1 - 3, fa0/6 - 8, gi0/1
Тогда, при дальнейших настройках этого диапазона, порты можно не перечислять, а переходить в режим настройки портов по имени:
(config)# int range macro HOSTS

cisco, #no, #macro

Previous post Next post
Up