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