Junos Platform Automation and DevOps
(JAUT)
This five-day course provides students with knowledge of how to automate Junos using DevOps automation tools, protocols, and technologies. Students receive hands-on experience with tools and languages relevant to automating the Junos OS platform in a DevOps environment. The course includes introduction to Jinja2 templates, an in-depth discussion of Junos PyEZ library, and detailed explanation of how Ansible, Salt and JSNAPy automation tools are used with Junos. The course introduces students to Junos commit, operation (op), event, and SNMP on-box scripts. Two languages for developing these scripts are discussed: SLAX and Python. The course also explains Juniper Extension Toolkit and related APIs, YANG and OpenConfig. Finally, the course discusses the use of Junos Telemetry Interface and Contrail HealthBot tool, and Junos ZTP feature. Through demonstrations and hands-on labs, students will gain experience in automating the Junos operating system and device operations.
Course Level
Junos Platform Automation and DevOps (JAUT) is an intermediate-level course
Target audience
This course benefits individuals responsible for configuring and monitoring devices running the Junos OS.
Prerequisites
- Intermediate-level networking knowledge.
- Understanding of the Open Systems Interconnection (OSI) model and the TCP/IP protocol suite.
- Attendance of the Introduction to Junos Platform Automation and DevOps (IJAUT) course prior to attending this class..
Objectives
After successfully completing this course, you should be able to:
- Describe the benefits of network automation
- Explain basic principles of DevOps and NRE
- Describe different approaches and tools used for Junos Automation
- Discuss how templates are used for Junos automation
- Understand Jinja2 syntax
- Describe various methods Junos PyEZ can use to connect to a Junos device
- Execute Junos RPCs using Junos PyEZ
- Explain the functionality of various Junos PyEZ utilities
- Use Jinja2 templates with Junos PyEZ
- Use Junos PyEZ Tables and Views
- Securely connect to Junos devices using Ansible
- Use advanced Ansible playbook functionality
- Work with Ansible variables
- Manage Junos device configurations using Jinja2 templates and Ansible
- Explain the use of SLAX language with Junos
- Understand basic SLAX syntax
- Describe SLAX templates, variables, and flow control statements
- Understand the Junos function library
- Explain the difference between available SLAX versions
- Explain how to create and run Junos op scripts
- Use SLAX and Python languages to develop op scripts
- Use arguments with op scripts
- Issue RPCs from op scripts
- Change the configuration with op scripts
- Describe how commit scripts can be used to make changes to the configuration
- Describe how to use commit scripts to generate custom warnings and errors during a commit
- Explain how to use SLAX and Python languages to develop commit scripts
- Configure and enable commit scripts
- Identify Junos OS events
- Create Junos OS event policies
- Create Junos OS event scripts
- Understand the use of Junos OS SNMP scripts
- Create and configure Junos OS SNMP scripts
- Explain basic Salt architecture
- Understand how Junos devices are managed with Salt
- Use Junos execution and state modules for Salt
- Understand the SLS file format
- Describe how JSNAPy can help automate Junos
- Install and configure JSNAPy
- Use JSNAPy to create snapshots
- Use JSNAPy to perform tests
- Describe the YANG language features
- Understand the syntax of YANG
- Explain how YANG is used in Junos OS
- Describe the advantages of OpenConfig
- Modify the Junos OS configuration using OpenConfig
- Describe using OpenConfig with the Junos Telemetry Interface (JTI)
- Explain what is JET
- Understand the JET Service API
- Understand the JET Notification API
- List protocols and data formats used with JET
- Develop simple JET applications
- Understand the Junos Telemetry Interface
- Provision Junos Telemetry sensors
- Explain the difference between Native and gRPC sensors
- Understand Telemetry message formats
- Explain the advantages of Contrail HealthBot
- Explain the purpose and value of ZTP
- Describe the components and operations of ZTP
- Deploy a QFX5100 Series switch using ZTP
- Setup the JET VM
- Create JET Packages
Assosciated Certification
- JNCIS-DevOps
Course Contents
Chapter 1: Course Introduction
Chapter 2: Junos Automation Fundamentals
- Benefits of Automation
- DevOps and NRE
- Junos Automation Stack
- Junos Automation Tools
- Introduction to NITA
Chapter 3: Jinja2
- Jinja2 Overview
- Working with Jinja2 in Python
- Jinja2 Syntax
Chapter 4: Advanced Junos PyEZ
- Connecting to a Junos Device
- Working with RPCs
- Junos PyEZ Utilities
- Junos PyEZ and Jinja2
- Tables and Views
- Lab: Using Junos PyEZ with Jinja2 Templates
Chapter 5: Ansible Intermediate
- Ansible for Junos Review
- Securing Device Connection
- Playbook Flow Control
- Lab: Ansible Operations with Junos
- Ansible Variables and Jinja2 Templates
- Case Study
- Lab: Using Ansible for Junos Configuration Management
Chapter 6: SLAX
- Junos On-Box Automation Overview
- Basics of SLAX
- SLAX Variables
- Flow Control
- Junos Function Library
- SLAX Versions
Chapter 7: Junos Op Scripts
- Junos Op Scripts Using SLAX
- Customizing Junos Command Output
- Configuration Changes with SLAX Op Scripts
- Junos Op Scripts Using Python
- Configuration Changes with Python Op Scripts
- Op Script Configuration and Debugging
- Lab: Junos Op Scripts
Chapter 8: Junos Commit Sctripts
- Junos Commit Scripts Overview
- Junos Commit Scripts Using SLAX
- Junos Commit Scripts Using Python
- Custom Configuration Syntax
- Commit Script Configuration and Debugging
- Lab: Junos Commit Scripts
Chapter 9: Junos Event Policies and Event Scripts
- Junos OS Events
- Event Policies
- Event Scripts
- Lab: Junos Event Policies and Event Scripts
Chapter 10: Junos SNMP Scripts
- Junos OS SNMP Scripts
- Case Study
- Lab: Junos SNMP Scripts
Chapter 11: Salt
- Salt Overview
- Junos and Salt
- Junos Execution Module
- Salt States and Junos State Module
- Case Studies
- Lab: Automating Junos with Salt
Chapter 12: JSNAPy
- JSNAPy Overview and Installation
- Configuration Files
- JSNAPy Commands
- Test Files
- Integration with Other Tools
- Lab: Using JSNAPy
Chapter 13: YANG
- YANG Overview
- YANG Statements and Syntax
- Junos YANG Modules
- Custom YANG Modules for Junos
- Custom Configuration and Translation Script Example
- Custom RPC and Action Script Example
Chapter 14: OpenConfig
- OpenConfig Overview
- OpenConfig Package
- Using OpenConfig
- OpenConfig Telemetry
- Lab: Implementing OpenConfig
Chapter 15: Juniper Extension Toolkit
- Overview of JET
- gRPC and JET IDL Files
- JET Service API
- JET Notification API
- Lab: Using JET
Chapter 16: Junos Telemetry
- Junos Telemetry Overview
- Native Sensors for JT
- OpenConfig and gRPC Sensors for JTI
- Contrail HealthBot Overview
- Contrail HealthBot Rules and Playbooks
- Case Study
- Lab: Using Junos Telemetry
Appendix A: Zero Touch Provisioning
- Understanding Zero Touch Provisioning
- ZTP in Action: A Working Example
Appendix B: Using JET Virtual Machine
- Setting Up the JET VM
- Creating Signed JET Applications