Course Overview
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.
This course uses Junos OS Release 18.3R1, Junos PyEZ 2.2, and Ansible 2.7.
Who should attend
This course benefits individuals responsible for configuring and monitoring devices running the Junos OS.
Prerequisites
- Intermediate-level networking knowledge.
- Understanding of the Open SystemsInterconnection (OSI) model and the TCP/IP protocol suite.
- Attendance of the Introduction to Introduction to Junos Platform Automation and DevOps (IJAUT) course prior to attending this class.
Course Objectives
- 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
Course Content
- Course Introduction
- Junos Automation Fundamentals
- Ansible Intermediate
- SLAX
- Jinja2
- Advanced Junos PyEZ
- Junos Op Scripts
- Junos Commit Scripts
- Junos Event Policies and Event Scripts
- Junos SNMP Scripts
- JSNAPy
- YANG
- Juniper Extension Toolkit
- Junos Telemetry
- Salt
- OpenConfig
- Appendix: Zero Touch Provisioning
- Appendix: Using JET Virtual Machine