UNIX-shell и telnet для работы с оборудованием или забота о tech-support'e
Преамбула
Компания, в которой я работаю, предоставляет клиентам такие услуги как:
- доступ в Интернет
- телефония
- хостинг
Т.е. вполне такой нормальный Интернет-провайдер с целой куче дополнительных плюшек.
Магистральными линиями связи является оптоволокно, тогда как «последняя миля» — витая пара от управляемого коммутатора.
Коммутаторов много и для мониторинга используются две вещи: Nagios и Cacti.
Так же каждый клиент, которому предоставляется доступ в Интернет, в биллинге имеет привязку IP-адреса к MAC-адресу. На порту коммутатора есть указание работать только с теми MAC-адресами, которые указаны в конфигурации текущего коммутатора.
SNMP-трапами мы отлавливаем изменения MAC-адреса и среды в целом.
В один интересный день оказалось что коллегам из службы технической поддержки приходится руками заходить на коммутатор и перепрописывать конфигурацию.
Посмотрев на внутренности биллинга (на ту часть, что отвечала за информацию о клиенте), стало понятно, что именно сюда можно будет включить свою модификацию.
Амбула
Итак, имея в биллинге информацию о клиенте примерно такого содержания:
- Номер договора
- Адрес
- Телефон
- IP
- MAC
То есть после того, как мы изменили MAC-адрес в биллинге, нужно его изменить и на коммутаторе.
Можно это сделать и через SNMP, и при помощи Perl/PHP. Я остановился на примитивном и простом варианте shell-script'а.
Так как в некоторых местах сети пришлось переписывать конфигурацию нескольких коммутаторов, то используется массив.
Скрипт генерируется автоматически, запускается и стирается.
#!/usr/local/bin/bash
set -f
myArr[0]="10.20.30.1"
myArr[1]="10.20.30.2"
myArr[2]="10.20.30.3"
for item in ${myArr[*]}
do
{
sleep 5
echo "myLogin"
sleep 1
echo "myPassword"
sleep 1
echo "Команда на изменение конфигурации"
...
sleep 15
} | /usr/bin/telnet $item
done
Да. Возможно это примитивно, использование pipe'ов и прочего не является кошерным.
Но таки это рабочий вариант, который помог в экономии времени работников компании.
0 комментариев