Забыли пароль?

Методы автоматизации алгоритмов для работы с оборудованием Juniper

Методы автоматизации алгоритмов для работы с оборудованием JuniperСтатья опубликована в №13 (сентябрь) 2014 Разделы: , Размещена 16.09.2014. Последняя правка: 16.09.2014. Консультант: Марамзин Валерий Валентинович, Ведущий инженер-конструктор Направление сетей и систем передачи данных NVision Group УДК 004.722 Введение Компьютерные сети с каждым днем расширяются и модифицируются, увеличиваются скорости, возможности и их надежность. При всем при этом, неизбежно увеличение сложности составных сетей, в виду все большего количества технологий, включаемых в них, которые должны работать совместно без конфликтов. Этот компромисс являет собой проблему для операторов сетей, которые должны не только получать выгоду от преимуществ новых возможностей, но и стараться организовать все настолько просто, насколько это возможно, чтобы минимизировать эксплуатационные расходы и предотвратить отказы в работу. При администрировании локальных сетей часто возникает потребность в виде выполнения одного и того же набора действий на ряде устройств. Это может быть какая-то простая задача в виде дополнения файла конфигурации или что-то нетривиальное, например сбор статистических данных, лог файлов или поиск определенного рода проблем.

Суть сводится к тому, что какой бы простой ни была задача, она становится весьма громоздкой с увеличением число устройств, на которых ее нужно решить/выполнить. А в случае, когда задача представляет собой целую последовательность действий, некий алгоритм, на обслуживающий персонал ложится огромный труд. К тому же, никто не отменял человеческий фактор и вероятность ошибки администраторов при выполнении одного и того же действия на многочисленных сетевых устройствах. Поэтому автоматизация управления сетями передачи данных является очень актуальной темой для разработки соответствующих инструментов, использование которых позволит уменьшить трудозатраты и повысить как скорость выполнения повторяющихся операций, так и гарантировать их качество. Автоматизирование методов и процедур работы с сетью не только экономит время при разрешении возникающих проблем, но также помогает осуществлять высокопроизводительную работу сети и управлять ею даже при больших масштабах, упрощая сложные задачи. Решением этого вопроса являются скрипты. Скриптом называется по факту любая исполняемая процедура. Но, говоря более конкретно, скрипт является программным файлом-сценарием,  где описана последовательность действий, которая будет выполняться. [1] В терминологии некоторых программ файлы сценарий могут называться макросами, что не меняет исходного их назначения.

Скрипты могут применяться для сбора данных по сети и их обработки, автоматизации внесения изменений в конфигурационные файлы, а автоматизированные методы траблшутинга (поиска и устранения неисправностей) поспособствуют более быстрому выявлению и локализации проблемы, сократить список возможных причин и ускорить время к их разрешению. Для написания скриптов существует много вариантов, вплоть до создания собственных программ на языках программирования высокого уровня. Приведем к анализу проприетарные методы автоматизации и создания скриптов, предлагаемые компанией Juniper. Junos XML API Junos XML API (Application Programming Interface) позволяет создать различные скрипты для Junos по осуществлению запросов и других действий над процессами. Сценарий автоматизации может быть написан на одном из сценарных языков: XSLT или SLAX. Последний (SLAX) был разработан компанией Juniper для предоставления пользователям более интуитивно понятного метода, в котором можно было бы создавать скрипты, и имеет естественный читабельный синтаксис. [2] Скрипт является отдельным файлом, написанным с использованием XML, с расширением.

slax. Примером самого простого скрипта, по традиции, является вывод на экран “Hello World” : version 1.0; ns Junos = "http://xml. juniper. net/Junos/*/Junos"; ns xnm = "http://xml. juniper. net/xnm/1.1/xnm"; ns jcs = "http://xml. juniper. net/Junos/commit-scripts/1.0"; import "../import/Junos. xsl";       "Hello World!"; Создав такой файл, необходимо загрузить его в директорию /var/db/scripts/op   устройства Juniper.

Прежде чем запустить уже загруженный в память скрипт, необходимо активировать поддержку работы op script командой set system scripts op file user@ Junos> op < filename> Разумеется, SLAX имеет свой синтаксис и некоторые тонкости, а так же иерархическую структуру, схожую со структурой конфигурационного файла Juniper-устройства.[3] + XML относительно + Иерархия для выражения иерархии, присущей сетям Junos PyEZ Являясь неким «микро-фреймворком» на базе языка Python, JunPyEZ позволяет удаленно администрировать Junos OS устройства и автоматизировать процесс взаимодействия с ними, не требуя при этом от пользователя особенных навыков в программировании, знаний о Junos OS или полного владения Junos OS XML API. [4] Для людей, которые не обладают достаточными навыками программирования (например, сетевые инженеры), PyEZ предлагает для использования родную Python оболочку на своем сервере (которым может стать ноутбук, рабочая станция или даже планшет) для управления и удаленного контроля Junos OS устройств. Python оболочка является интерактивной средой, предоставляющей все необходимые инструменты для выполнения общих задач автоматизации, таких как тестирование, макросы, шаблоны. Используя предлагаемую оболочку, больше не придется всматриваться в экран в поисках нужных данных, все значения могут быть получены напрямую и непосредственно в виде массивов и хэш-таблиц. Таким образом, Junos PyEZ предназначен для обеспечения тех же функций, которыми пользователи располагают в командной строке JunOS, при этом позволяя решать задачи автоматизации. Вот далеко неполный список возможностей оболочки: [5] - Получение базовых данных об устройстве: версия ПО, серийный номер и т. д. - Обеспечение общих услуг для таких задач, как безопасное копирование файлов или обновление ПО Оболочка функционирует из командной строки *.nix систем, а также есть возможность установки на Windows OS. Ниже приведен скрипт, содержащий ряд команд, которые выполняются до того, как Python передает управление консолью в операционном режиме.

Здесь импортируются некоторые стандартные модули ( в т. ч. и основной Junos PyEZ) и производится подключение к устройству. [6] from jnpr. junos import Device print " Please provide password for user '" + user + "' on device '" + sys. argv[1] + "'." dev = Device(sys. argv[1],user=user, password=passwd)   dev. open()   print "Connected to " + sys. argv[1] + " as dev"   print "Connection failed. :-(" Здесь импортируются несколько модулей и конфигурируется имя пользователя для использования скрипта как интерактивный запрос пароля, который, в случае неверного ввода, будет оповещать об этом. Далее, используя команды данной оболочки, можно получить абсолютно любую информацию о девайсе: >>> pp (dev. facts) {'2RE': False, 'RE0': {'last_reboot_reason': '0x1:power cycle/failure ',   'model': 'RE-SRX100H',   'status': 'OK',   'up_time': '19 days, 19 hours, 42 minutes, 41 seconds'},   'fqdn': None, 'hostname': None, 'ifd_style': 'CLASSIC', 'model': 'DELL J-SRX100H', 'personality': 'SRX_BRANCH', 'serialnumber': 'AB9110AE0730', 'switch_style': 'VLAN', 'version': '10.3R2.11', 'version_info': junos. version_info(major=(10, 3), type=R, minor=2, build=11)} >>> >>> for key in eths: print key. name... fe-0/0/0 fe-0/0/1 fe-0/0/2 fe-0/0/3 fe-0/0/4 fe-0/0/5 fe-0/0/6 fe-0/0/7 ae0 ae1 ae2 ae3 >>>  Соответственно, используя командную строку как интерфейс к сетевому устройству, в нее можно передавать обычными системными методами любые команды, составляя сценарии автоматизации.

- Работа в основном только в linux системах (windows поддерживается, но не столь широко)   Заключение В условиях существующего роста и масштабирования проводных сетей, актуальным вопросом продолжает оставаться автоматизация администрирования и мониторинга. Имея в своем распоряжении мощные программные средства, способные быстро и точно отрабатывать во всех ситуациях, начиная от экстренных поломок и заканчивая штатным обновлением ПО устройств, уменьшается сложность обслуживания крупных сетей и затраты на огромное количество персонала. Разумеется, человеческое вмешательство в процессы все еще актуально, но только если это касается управления непосредственно самими инструментами автоматизации. Рассмотренные два метода имеют как преимущества, так и недостатки, и в разных ситуациях оба могут быть полноправно использованы. Но в целом, по результатам сравнительного анализа и изучения материалов, вариант с оболочкой Junos PyZE является менее громоздким и более удобным в применении.  1. Сценарный язык https://ru. wikipedia. org/wiki/%D0%A1%D1%86%D0%B5%D0%BD%D0%B0%D1%80%D0%BD%D1%8B%D0%B9_%D1%8F%D0%B7%D1%8B%D0%BA 2. Junos® Automation Series DAY ONE: APPLYING JUNOS OPERATIONS AUTOMATION 3. SLAX Overview http://www. juniper. net/techpubs/en_US/junos14.1/topics/concept/junos-script-automation-slax-overview. html 4. Junos PyEZ https://techwiki.

juniper. net/Automation_Scripting/010_Getting_Started_and_Reference/Junos_PyEZ 5. Using the Juniper PyEZ Library http://ipengineer. net/2014/05/using-juniper-pyez-library/ 6. Junos PyEZ in Interactive Mode http://lamejournal. com/2014/01/01/junos-pyez-interactive-mode/ Рецензии: 16.09.2014, 16:49 Рецензия : Следует привести сравнительную характеристику анализируемых методов в виде таблицы. После этого рекомендуется к печати. 16.09.2014, 17:11 Рецензия : Заслугой автора является выделение проблемной ситуации в области программной реализации сложных алгоритмов, - необходимости автоматического использования в ней многократно повторяемых стандартных составляющих. В работе эта задача решается посредством обращения к программным продуктам фирмы Juniper, - при использовании обоснованного автором пакета Junos PyEZ.

Статья, как актуальная и содержащая новизну в области IT, может быть опубликована. А. С. Бондаревский. 30.09.2014, 9:18 Рецензия : Приведен грамотный сравнительный анализ программных блоков. Рекомендуется к печати. Комментарии пользователей:

Видео дня:


Комментарии (0) Просмотры: 72
Реклама
Реклама
Реклама