Global Knowledge

Junos Automation

Par Global Knowledge

Objectifs

After successfully completing this course, you should be able to:

  • Describe the NETCONF protocol.
  • Explain the capabilities of the Junos OS XML API.
  • Describe the use of XSLT, SLAX, and XPath in the XML API.
  • Describe the Junos Automation UI and explain the role of gRPC, NETCONF, and REST in Junos Automation.
  • Identify the languages, frameworks, management suites, and tools used in automating Junos.
  • Describe the YANG Protocol and explain the capabilities of YANG.
  • Use the YANG model to issue Junos commands and to configure Junos.
  • Explain the benefits of using JSON and YAML.
  • List where JSON and YAML are used in Junos Automation.
  • Convert between JSON, YAML, and XML.
  • Describe the features and benefits of using Python in Junos automation.
  • Configure Junos devices to use Python and create simple Python scripts.
  • Describe the function of Junos operation, commit, event, and SNMP scripts.
  • Implement Junos operation, commit, event, and SNMP scripts using Python.
  • Identify how Junos automation uses Jinja2 and create Python scripts that use Jinja2.
  • Explain how PyEZ makes Junos automation easier and the Junos OS support for PyEZ.
  • Use PyEZ to gather facts from Junos, perform configuration tasks, and use PyEZ to manipulate the file system and perform system upgrades to Junos.
  • Implement OpenConfig in the Junos OS.
  • Describe the process of implementing custom YANG modules.
  • Implement a translation script for a custom YANG module.
  • Explain the use of the Junos REST API in automation.
  • Use the Junos REST API to get information from Junos.
  • Describe what JET is and what it includes.
  • Create a project in the JET IDE.
  • Execute scripts using on-box and off-box automation.
  • Explain the four JET application development workflows.
  • Describe how Ansible is used in Junos automation and install Ansible.
  • Create Ansible playbooks to automate Junos.
  • Describe how JSNAPy can help automate Junos devices.
  • Implement JSNAPy into a Junos environment.
  • Describe how ZTP works.
  • Configure in-band ZTP and out-of-band ZTP.

Programme

Junos Automation Overview

  • Why Automate
  • Junos MGD Based Automation
  • Junos JSD Based Automation
  • Automation Languages, Libraries and Frameworks
  • Automation Management Systems
  • Other Junos Automation Tools
  • NETCONF and the XML API
  • NETCONF
  • XML API
  • XML API programming languages
  • XML API tools
  • Lab 1:Exploring the XML API
  • YANG
  • YANG Overview
  • YANG Modules
  • YANG Syntax
  • Junos YANG Case Studies
  • Creating and Using Non-Native YANG Modules
  • Lab 2: Using YANG
  • Jason and YAML
  • Origins of JSON and YAML
  • Features and benefits
  • JSON and YAML uses in Junos automation
  • Creating well-formed JSON and YAML documents
  • Conversion to and from XML
  • Lab 3: Using JSON and YAML
  • Python in Junos
  • Python features and benefits
  • Junos support of Python
  • Python requirements and installation
  • Pip and the Python Interactive interface
  • Python modules for Junos
  • Using jxmlease
  • Review of Python syntax
  • Lab 4: Implementing Python in Junos
  • Junos Automation Scripting Using Python
  • Overview of Junos operation, commit, event, and SNMP scripts
  • Junos processing of operation, commit, event, and SNMP scripts
  • Use Case - Operation scripts
  • Use Case - Commit scripts
  • Use Case - Event scripts
  • Use Case - SNMP scripts
  • Lab 5: Python Automation Scripts
  • Jinja2 Templating Language
  • Overview of Features and benefits of Jinja2
  • Junos support of Jinja2
  • Jinja2 syntax
  • Jinja2 examples in Python
  • Use Case - creating a Jinja2 template
  • Lab 6: Using Jinja2
  • PyEZ
  • Overview - PyEZ
  • Installing PyEZ
  • Authenticating PyEZ users
  • Use Case - Retrieving facts from devices
  • Use Case - Configuration management
  • Use Case - File system and software upgrades
  • Lab 7: Junos Automation with PyEZ
  • OpenConfig and Custom YANG Modules
  • Introduction to OpenConfig and custom YANG modules
  • OpenConfig Implementation
  • Custom YANG Module Implementation
  • Translation Scripts
  • Lab 8: Custom YANG Models
  • The Junos OS REST API
  • REST Overview
  • The Junos Implementation of REST
  • Tools for working with REST
  • cURL
  • REST API Explorer
  • Use Case - Using the Junos REST API
  • Lab 9: Implementing the Junos REST API
  • Junos Extension Toolkit
  • Jet overview and components
  • Ephemeral database
  • Platform independent - JET APIs
  • gPRPC
  • JET application development workflows
  • JET IDE overview
  • Installing the JET IDE and creating projects
  • The JET store
  • Lab 10: JET IDE gRPC, and JET APIs
  • Day 5
  • Using Ansible to Automate Junos
  • Ansible Overview
  • Installing Ansible
  • Creating and executing Ansible playbooks to manage devices running Junos OS
  • Use Case - Using Ansible to configure devices running Junos OS
  • Use Case - Using Ansible to install software on devices running Junos OS
  • Use Case - Using Ansible to reboot or shut down devices running Junos OS
  • Use Case - Using Ansible to revert a device running Junos OS to a factory defaultconfiguration
  • Lab 11: Automating Junos with Ansible
  • Junos Automation with JSNAP and JSNAPy
  • JSNAPy Overview
  • Installation
  • Integration into Ansible
  • JSNAPy d.Snapcheck, Snapshot, and Diff functions
  • Lab 12: Configuring JSNAPy
  • Zero Touch Provisioning
  • ZTP Overview
  • In-band using DHCP, Python
  • Out-of-band, Ansible, Netconify
  • XSLT
  • Introduction to XSLT
  • Templates
  • Flow Control
  • XSLT Script Structure
  • Additional References