Обновленный пятидневный курс спроектирован с целью дать слушателям знания и практические навыки, необходимые для разработки сценариев (скриптов) при работе с ОС Junos. Курс содержит обзор языка Extensible Markup Language (XML) и протокола NETCONF, при этом упор делается на автоматизацию Junos средствами языка Python, библиотеки Junos PyEZ и системы управления конфигурациями Ansible. Благодаря подробному изложению теоретического материала и большому количеству лабораторных работ, слушатели получат достаточный для практической работы опыт создания скриптов и автоматизации JunOS. Курс базируется на версии Junos 17.1R1, PyEZ 2.0, Python 2.7, и Ansible 2.3.
Предварительные требования:
Слушатели должны иметь базовые знания в области сетей передачи данных, а также знания по операционной системе JUNOS в рамках курса Introduction to the Junos Operating System (IJOS). Также рекомендуется знакомство с каким-либо из языков программирования, таким как Python, Ruby, C, C++, Perl, Java.
Цель курса:
Это курс среднего уровня сложности. После успешного окончания курса слушатели получат следующие знания и навыки:
Преимущества автоматизации Junos
Протокол NETCONF
Junos XML API
Использование XML в Junos в операционном и конфигурационном режимах
Языки, протоколы и библиотеки для автоматизации Junos
Возможности YANG
Использование YANG для настройки Junos
Форматы JSON и YAML
Использование JSON и YAML в Junos
Использование Python для автоматизации Junos
Использование commit, op, event, и SNMP скриптов в Junos
Разработка commit, op, event, и SNMP скриптов на Python
Использование шаблонов Jinja2
Преимущества использования библиотеки Junos PyEZ
Работа с Junos PyEZ
OpenConfig в Junos
Модули YANG и трансляционные скрипты
Junos REST API
Компоненты JET
JET IDE
Исполнение скриптов on-box и off-box
Понимание Ansible
Управление инфраструктурой Junos с использованием Ansible
Использование JSNAPy
Работа с функцией ZTP
Глава 1: Введение
Глава 2: Основы автоматизации Junos
Обзор
Автоматизация с помощью процессa MGD
Автоматизация с помощью процессa JSD
Языки, протоколы и библиотеки для автоматизации Junos
Решения по автоматизации
Глава 3: NETCONF и XML API
NETCONF
Junos XML API
Программирование для XML API
Лабораторная работа 1
Глава 4: JSON и YAML
Происхождение JSON и YAML
Функции и преимущества
Использование в Junos
Конвертация в (и из) XML
Лабораторная работа 2
Глава 5: Python и Junos PyEZ
Введение
Среда разработки
Работа с RPC
Работа с неструктурированной конфигурацией
Таблицы и представления
Обработка исключений
Лабораторная работа 3
Глава 6: Jinja2 и Junos PyEZ
Обзор
Синтаксис Jinja2
Интеграция Junos PyEZ, YAML, и Jinja2
Лабораторная работа 4
Глава 7: Использование Ansible для автоматизации Junos
Введение в Ansible
Установка Ansible
Обзор Playbooks
Примеры использования Ansible
Лабораторная работа 5
Глава 8: JSNAPy
Введение
Установка JSNAPy
Интеграция с Ansible
Функции JSNAPy
Лабораторная работа 6
Глава 9: Junos commit и op-скрипты
Обзор скриптов Junos
Commit-скрипты
Op-скрипты
Лабораторная работа 7
Глава 10: Junos event и SNMP скрипты
События в Junos
Политики на основе событий
Event-скрипты
SNMP-скрипты
Лабораторная работа 8
Глава 11: YANG
Обзор YANG
Модули YANG
Синтаксис
Примеры использования
Не нативные модули YANG
Глава 12: OpenConfig
Преимущества OpenConfig
Настройка Junos с помощью OpenConfig
OpenConfig и Junos Telemetry Interface (JTI)
Лабораторная работа 9
Глава 13: Junos Extension Kit (JET)
Обзор и компоненты JET
Виртуальная машина JET
Пакеты JET
JET API
Глава 14: Junos OS REST API
Задачи REST API
RPC
REST API explorer
Примеры использования
Лабораторная работа 10
Приложение А: ZTP
Обзор Zero Touch Provisioning
Цели и значение ZTP
Настройка QFX5100 с помощью ZTP