Xgu.ru теперь в Контакте  — приходите и подключайтесь.
Пока мы работаем над следующими видео, вы можете подключиться в Контакте. Познакомимся и обсудим новые страницы и ролики.

Vk-big.pngYoutube-big.jpeg

Junos PyEZ

Материал из Xgu.ru

Перейти к: навигация, поиск
stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.


Junos PyEZ это Python API для Junos based устройств, позволяющий решать задачи автоматизации различного рода от сбора какой-либо информации с устройств до их кнфигурирования.

Содержание

[править] Основные возможности:

  • Сбор "фактов" о сетевом оборудовании, таких как версия software, серийный номер устройства и т.д.
  • Сбор оперативной информации /состояний используя концепцию Tables/ Views
  • Сбор информации о конфигурации устройства использую концепцию Tables/Views
  • Выполнение неструктурированных изменений конфигураций
  • Выполнение структурированных изменений конфигураций
  • Предоставление утилит для задач, подобным апгрейду software или secure copy

[править] Установка на linux системы:

[править] Список зависимостей для систем Ubuntu/Debian
  • python-pip
  • python-dev
  • libxml2-dev
  • libxslt-dev
[править] PyPI

Подразумевает, что pip установлен для Python2.7

pip install junos-eznc
[править] Github

Рекомендуется если вам необходима самая свежая версия PyEZ, это подразумевает что Python2.7 и git system package установлен в системе.

pip install git+https://github.com/Juniper/py-junos-eznc.git

или

pip install git+https://github.com/Juniper/py-junos-eznc.git@<branch,tag,commit>

[править] Hello World! или подключаемся к нашему устройству

[править] Вкратце:

Каждое подключение Junos устройства моделируется переменной jnpr.junos.Device(или инстансом, вопрос терминологии). В общем вы создаете по переменной на каждое устройство, в котором обязательным параметром является hostname или ip address устройства. Опционально можно указать username(по умолчанию значение переменной $USER в юникс системах) и пароль( по умолчанию опять же используется ssh-аутентификация по ключам). Затем вы создаете соединение с устройством, выполняете различную активность и закрываете его. Каждый инстанс junos устройства содержит набор фактов, который загружается при открытии соединения. Набор фактов это обычно статические куски информации об устройстве, software version, uptime, model и т.д.

[править] Использование:

Для того чтобы PyEZ заработал на устройстве должен быть включен протокол NETCONF:

root@vsrx1> configure
root@vsrx1# set system services netconf ssh
root@vsrx1# commit

Чтобы подключиться к устройству для начала нужно импортировать модуль Device.

from jnpr.junos import Device

Далее необходимо создать инстанс устройства:

dev = Device(host='vsrx1', user='root', password='MySecretPASS')

И потом вызвать функцию подключающуюся к нашему устройству:

dev.open()

Всё подключение к устройству завершено. Можно к примеру посмотреть на список фактов, полученных от устройства.

print dev.facts

Или же определенный факт(напомню данные хранятся в питоновском словаре). Например uptime:

 
print dev.facts['RE0']['up_time']
3 hours, 13 minutes, 26 seconds
Источник — «http://xgu.ru/wiki/Junos_PyEZ»