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

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

>Основным способом это быстро сделать — является запись действий в блокнот и copy/past на каждое устройство.

как там в криокамере? expect был написан 30 лет назад (1990 год) и это не говоря про инструменты массового деплоя (в том числе подходящих для внесения изменения в конфигурацию) типа ansible
Спасибо за комментарий!
В связи с тем, что основная задача этой статьи показать как быстро это сделать. Т. е. на каждое действие необходимо дать инструкцию как это сделать (по возможности скриншоты).
Для использования Ansible необходимо выполнить несколько действий:
1. Установить на оборудование публичные ключи:
Первый шаг я уже сделал. Аутентификация на сетевом оборудовании через SSH с помощью публичных ключей
1а. Альтернатива по авторизации по публичным ключам является использование пароля. По умолчанию на MAC OS X с использованием пароля для аутентификации есть проблемы. Т. е. в статью необходимо добавить как решить проблему аутентификации на MAC OS X с помощью пароля (при установке Ansible на MAC OS X с «0»).
2. Необходимо описать для каждой операционной системы: Windows 10, MAC OS X как установить Ansible.
2а. Для операционной системы Windows 10 необходимо показать скриншоты как установить Linux для Windows для запуска Ansible.
3. Создать файл инвентори.
4. Создать Playbook.

Реальный пример из моей практики:
Меня послали в командировку за Урал: для заказчика настроить 15 новых коммутаторов. Коммутаторы поедут потом на удаленные площадки заказчика. Это были разовые работы по контракту.
Для ускорения работы:
— На коммутаторы с Default конфигурацией я создал скрипт — который настраивает через консольный порт коммутаторы с 0. Я перетыкал консольный кабель в следующий коммуатор запускал скрипт. Ожидал окончания выполнения скрипта. Перетыкал консольный кабель в следующий коммутатор. Запускал скрипт повторно.
— Для донастройки оборудования: (версию SNMPv3 и имя пользователя/пароль, пароль для шифрования мне предоставили гораздо позже) я использовал Command window, т. к. писать одноразовые Playbook которые никогда больше не пригодятся не выгодно по времени. (Задача решить проблему максимально быстро.)
Я приехал на площадку к заказчику со своим ноутбуком. И развертывать системы Deploy у меня не было ресурсов.

Ожидаю, что вы ознакомитесь с моей следующей статьей как начать использовать скрипты в SecureCRT — это статья начального уровня в которой показано как именно начать использовать и первые скрипты — очень простые.
Спойлер тезиса следующей статьи
Основной тезис статьи будет:
«При написании скрипта и выполнении, должно непременно выполняться правило: Время написания скрипта и выполнения скрипта ни когда не должно быть больше, времени теоретически затраченного на выполнения этой же работы вручную (copy/paste из блокнота). Т. е. использование скрипта должно экономить время, а не тратить время на отладку скрипта.»
В любом случае, откройте для себе expect, это и есть максимально быстрое решение, если вы вдруг не знакомы с этим мощнейшим и одновременно простейшим инструментом
Это уже есть. Но при развертывании с «0» — когда у вас есть только ваш ноутбук. 15 комплектов нового оборудования, с default конфигурацией, и подключение с помощью консольного кабеля.
То это действие трудно автоматизировать с помощью Ansible.

И применение Ansible требует создавать с «0» файл inventory.ini
А также писать с «0» playbook.

Основная проблема, что оборудование не однотипное и задачи никогда не повторяются:
Cisco VXLAN, Huawei TRILL, Cisco BGP peer, Huawei VXLAN, Cisco VPC, Huawei M-LAG (v-stp, root), Huawei Stack, Cisco ASA VPN, Huawei VPN (router), Huawei VPN (firewall USG), IOS update.
Автоматизация в каждом таком случае будет одноразовая. И иногда быстрее вбить команды скопом, чем писать с нуля PlayBook для каждого вендора.
так используйте expect без ansible
Большое спасибо за комментарий!
Я постараюсь для Вас выложить статью «Автоматизация ввода в SecureCRT с помощью скриптов» как можно быстрее.
Там рассказано про аналог Expect — только с помощью ПО SecureCRT и скриптов на Python и VBS.
Я постараюсь, чтобы Ваше ожидание не было долгим.
Зачем это здесь? Можно еще начать тут писать статьи про то, как открыть файл в блокноте через меню File->Open…

Ну и не понятно зачем в MacOS вообще SecureCRT, если есть iTerm2
Спасибо за вопрос.
Преимущества SecureCRT по сравнению с iTerm2.
1. При настройке сети, количество сессий куда требуется открывать доступ очень часто достаточно большое. Пример: У нас в сети используется 4 Spine коммутатора и около 20 Leaf коммутаторов. Чтобы не запоминать адреса каждого из этих коммутаторов в SecureCRT можно сохранить сессии к каждому устройству. Кроме этого сессии можно компоновать в папки. Пример: У меня сохранены 8 папок. 2 Папки — это сеть моего предприятия. Одна папка — это сетевое оборудование production. Вторая папка — это сетевого оборудование стендовое. Еще 6 это заказчики.
В продуктивной папке все сессии разделены на 3 папки: Оборудование VXLAN сети пользовательской, Оборудование VXLAN серверной сети, Оборудование доступа. В каждой папке от 10 и более устройств.
2. В SecureCRT и Putty есть очень полезный функционал. Функционал называется логирование по умолчанию. Т. е. при любом подключении используя Putty или SecureCRT в специальной папке сразу создается файл с именем сессии IP адресом, и временем создания файла. По умолчанию действия при открытии любой сессии (SSH или Serial) логируются в файл на диске (и любой вывод и ввод данных в сессии записывается в этот файл). Тип добавления Append — чтобы все записи за день с оборудования хранились в одном файле.
Это удобно для backup конфигурации устройств с помощью: terminal length 0/show running-config, screen-length 0 tem/display current-configuration
3. SecureCRT может быть запущен на Microsoft Windows. (Также как и Putty.)

Почему так подробно — это связано с тем, что многие могли просто не обращать на данный функционал внимания.
1. У меня в сети больше 1000 сетевых устройств, вы будете всю тысячу руками вбивать в SecureCRT и по папкам раскладывать? Гораздо удобнее просто набрать в терминале «ssh hostname». Чтобы не запоминать адреса, есть DNS и внятные hostname.
2. iTerm прекрасно логирует, сам этим пользуюсь.
3. Про винду речи не шло

Ну и не забываем про цену SecureCRT
Спасибо за ответ.
Вопрос 1:
а. Проблема 1 в том, что заказчиков разное количество. И как сделать непересекающееся поле имен.
б. Проблема 2 в том, что заказчиков нельзя заставить переделать все Hostname под единый стандарт одновременно. У заказчиков действует правило: У нас все это давно работало. Менять Hostname мы не собираемся для Вашего удобства.
в. Проблема в DNS адресах. Основная проблема в том, что IP адреса у устройств — это частные IP адреса и у каждого заказчика свои собственные IP адреса.
г. Заставить заказчика вносить сетевое оборудование в DNS заставить проблематично. Т. к. заказчики не видят смысла добавлять сетевое оборудование в DNS. Т. к. оборудование не предназначено для предоставления публичных сервисов пользователям. Т. к. IP адреса для управления обычно назначаются вручную, то и заводить в DNS их необходимо вручную.
д. Встает вопрос удаления записей для заказчиков которые расторгли договор на поддержку.
е. Встает вопрос в какой DNS заводить оборудование заказчиков, во внутренний DNS — тогда он должен быть доступен через VPN. Но может случиться, что в таком случае при подключенном VPN мы можем потерять доступ к самому оборудованию. Или делать отдельный VPN — для DNS в который мы занесли оборудование заказчика.
Вопрос 2:
Я имел ввиду, что у меня, т. к. количество устройств очень разное, логирование происходит в автоматическом режиме и разделенное по дням и именам оборудования. Так к примеру я делаю backup конфигурации — с помощью command window одновременно на оборудовании которое настраиваю вывожу всю конфигурацию. И эта конфигурация сохраняется у меня в Log записях в автоматическом режиме.
Вопрос 3. Пункт про Windows включен последним пунктом в спойлер о SecureCRT.
Вопрос 4. Цена SecureCRT включена в последний пункт — спойлер о SecureCRT. Я в статье указал, что минимальная цена 99$.
P. S. С этим связан очередной казус — в статье на Windows скриншот со старой версией SecureCRT — поэтому окно Command window — там указано как Chat window. Это связано с имеющиейся лицензией на SecureCRT на версию 6.7. — Она оказалась на виртуалке с Windows.

P. S. О том как делать Alias для SSH в Mac OS X и по возможности привязывать к нему публичный ключ и/или имя пользователя — я отобразил в статье «Аутентификация на сетевом оборудовании через SSH с помощью публичных ключей:»Как упростить работу с SSH на MAC OS X""
у почти всего современного сетевого оборудования есть какой-либо вариант zero touch provisioning. железки cisco умеют, например, с tftp конфиг получить. соответственно, берем библиотеку на питоне tftp-сервер, прикручиваем сбоку шаблоны jinja и начинаем отдавать шаблонизированный конфиг. то есть — садимся, заранее пишем шаблон, потом файлы конкретных параметров, выткаем ноут в первый свитч и идем курить. возвращаемся, втыкаем гирляндой еще 15 свитчей — и идем смотреть кино.

networklore.com/ztp-tutorial
Спасибо за ответ.
Основная задача, это минимизации времени которое инженер тратит на выполнение работы.
Т.е. Суммарное время работы инженером по задаче должно быть минимальное.

В некоторых случаях очень сложно использовать Ansible или Zero touch provisioning для миграции сервисов (маршрутизации и VLAN) с 4-х старых коммутаторов Cisco на 4 новых коммутатора Cisco. Иногда требуется вводить данные в режиме реального времени, чтобы видеть результат.
В прошлом году мне попалась такая задача, и я не уверен что любые средства автоматизации смогли бы её решить в 1 Playbook или Zero touch provisioning.
Т. е. 4 коммутатора Cisco с сервисами (MPLS L3 VPN + MPLS XConnect + PIM DM + IP helper + VSS + VPLS каналы без Multicast с EIRGP neighbor (static unicast peer) + OSPF minimal hello timer + MSTP.) на коммутаторы Cisco 93180-EX с VXLAN лицензией.
И мне очень трудно представить какую конфигурацию необходимо на коммутаторы залить в таком случае.
Основная проблема, что данные по настройкам у Вас появляются постепенно.
Поэтому приходиться выбирать решение, которое позволяет выполнить действия максимально быстро.
Я первичные настройки выполнил с помощью скрипта. Донастройку по вновь открывшимся данным производил с помощью command window (за 15 секунд открыл 15 сессий, потом ввел набор команд по новому функционалу, отправил на оборудование.) и снова шел к заказчику выяснять какой функционал который заказчик хотел и подразумевал, но не сказал необходимо настроить.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории