Junos Platform Automation and DevOps (JAUT) – Outline

Detailed Course Outline

Day 1

Chapter 1: Course Introduction
Chapter 2: 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
Chapter 3: NETCONF and the XML API
  • NETCONF
  • XML API
  • XML API programming languages
  • XML API tools
  • Lab 1:Exploring the XML API
Chapter 4: YANG
  • YANG Overview
  • YANG Modules
  • YANG Syntax
  • Junos YANG Case Studies
  • Creating and Using Non-Native YANG Modules
  • Lab 2: Using YANG
Chapter 5: 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

Day 2

Chapter 6: 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
Chapter 7: 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
Chapter 8: 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

Day 3

Chapter 9: 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
Chapter 10: 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

Day 4

Chapter 11: 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
Chapter 12: 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

Chapter 13: 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 default configuration
  • Lab 11: Automating Junos with Ansible
Chapter 14: Junos Automation with JSNAP and JSNAPy
  • JSNAPy Overview
  • Installation
  • Integration into Ansible
  • JSNAPy d.Snapcheck, Snapshot, and Diff functions
  • Lab 12: Configuring JSNAPy
Chapter 15: Zero Touch Provisioning
  • ZTP Overview
  • In-band using DHCP, Python
  • Out-of-band, Ansible, Netconify
Appendix A: XSLT
  • Introduction to XSLT
  • Templates
  • Flow Control
  • XSLT Script Structure
  • Additional References