Arrow Electronics, Inc.

Junos Platform Automation (JAUT)


LENGTH: 40 Hours (5 days)

PRICE: €4 750,00


This four-day course is designed to provide students with Junos platform automation knowledge through hands-on development. Students receive hands-on experience with tools and languages relevant to Junos platforms. The course includes an overview of Extensible Markup Language (XML), Stylesheet Language Alternative Syntax (SLAX), the Junos template and function library, commit scripts, operation (op) scripts, and event scripts. It also covers an introduction to the Python and Ruby languages as well as automation/DevOps tools such as PyEZ, RubyEZ, Puppet, and Ansible. Through demonstrations and hands-on labs, students will gain experience in automating the Junos operating system and device operations.

This course is based on the Junos OS Release 14.2R2.6.


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

• Describe the benefits of using Junos OS automation.
• Describe the differences between commit, op, and event scripts.
• Describe the format of an XML document.
• Describe how the Junos OS uses XML for commands and configuration.
• Explain how commit, op, and event scripts interact with XML.
• Describe the SLAX script structure.
• Describe SLAX variables and flow control.
• Create and test SLAX scripts.
• Describe the benefits of the Junos extension functions.
• Explain the different Junos extension functions.
• 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.
• Configure and enable commit scripts.
• Describe the use of op scripts.
• Execute op scripts remotely.
• Explain how to define arguments and call operational-mode commands.
• Describe how to make configuration changes with op scripts.
• Configure op scripts.
• Describe the usage of event policies and scripts.
• Configure event scripts.
•Describe the benefits of the Python and Ruby languages.
•Describe the Python and Ruby script/program structure.
•Describe Python and Ruby variables and flow control.
•Create and test Python and Ruby scripts/programs.
•Describe the benefits of the PyEZ package and RubyEZ gem.
•Explain how to use PyEZ to operate Junos.
•Explain how to use RubyEZ to operate Junos.
•Describe Ansible.
•Explain the YAML syntax.
•Explain the Jinja2 syntax.
•Create Ansible playbooks.
•Operate Junos infrastructure using Ansible.
•Explain the benefits of Puppet.
•Describe the difference between a Puppet class, resource, and manifest.
•Explain how to operate Junos using Puppet.
•Describe Chef fundamentals.


This course benefits individuals responsible for configuring and monitoring devices running the Junos OS.


Students should have intermediate-level networking knowledge and an understanding of the Open Systems Interconnection (OSI) model and the TCP/IP protocol suite. Students should also have familiarity with a programming language such as C, C++, Perl, Python, Ruby, or Java. Students should also attend the Introduction to the Junos Operating System (IJOS) course prior to attending this class. Lastly, a high level understanding of object-oriented programming is a plus, but not a requirement.


Day 1

Chapter 1: Course Introduction

Chapter 2: Automation Fundamentals
•Junos Platform Automation Overview
•Introduction to Commit, Op, and Event Scripts
•Automation Solutions
•Introduction to Open Source Automation Solutions
•Introducing DevOps

Chapter 3: XML
•Introduction to XML
•XML in the Junos OS
•Using XML in Scripts
•Lab 1: Working with XML in the Junos OS

Chapter 4: SLAX
•Introduction to SLAX
•XML Tags in SLAX
•Flow Control
•SLAX Script Structure
•Additional References
•Lab 2: Creating SLAX scripts

Chapter 5: Junos Function Library
•Junos Extension Template and Function Library
•Logic Functions
•Data Manipulation Functions
•Input/Output Functions
•Utility Functions
•Lab 3: Working with the Junos Function Library

Day 2

Chapter 6: Commit Scripts
•Introduction to Commit Scripts
•Making Changes
•Custom Warnings and Errors
•Custom Configuration Syntax
•Configuring Commit Scripts
•Lab 4: Configuring Commit Scripts

Chapter 7: Op Scripts
•Introduction to Op Scripts
•Simple Example
•Defining Arguments
•Calling Operational Mode Commands
•Configuration Changes
•Configuring Op Scripts
•Lab 5: Configuring Op Scripts

Chapter 8: Event Scripts
•Introduction to Event Scripts
•Configuring Event Handling
•Event Policies
•Writing Event Scripts
•Lab 6: Configuring Event Handling

Day 3

Chapter 9: Python
•Introduction to Python
•Overview of Packages and Modules
•Introducing Python Types
•Overview of Flow Control and Operators
•Writing Python Code
•Lab 7: Writing Python Code

Chapter 10: PyEZ
•Introduction to the PyEZ package
•Overview of PyEZ Modules
•Introduction to Exception Handling
•Writing Python scripts using PyEZ
•Lab 8: Using PyEZ to Operate Junos

Chapter 11: Ansible
•Introduction to Ansible
•Introducing YAML
•Overview of Playbooks
•Introduction to Jinja2
•Operating Junos using Ansible
•Lab 9: Configuring Junos Devices Using Ansible

Day 4

Chapter 12: Ruby
•Introduction to Ruby
•Overview of Ruby Gems
•Introducing Ruby Data Structures
•Overview of Flow Control and Operators
•Introducing Classes and Objects
•Writing Ruby Code
•Lab 10: Writing Ruby Code

Chapter 13: RubyEZ
•Introduction to RubyEZ
•Overview of RubyEZ providers
•Overview of Ruby exception handling
•Writing Ruby scripts using RubyEZ
•Lab 11: Operating Junos Using RubyEZ

Chapter 14: Puppet
•Introduction to Puppet
•Overview of Resources, Classes, Manifests, and Modules
•Deploying Puppet to Operate Junos
•Lab 12: Operating Junos Using Puppet

Appendix A: XSLT
•Introduction to XSLT
•Flow Control
•XSLT Script Structure
•Additional References

Appendix B: Chef
•Chef Fundamentals


JAUT is an intermediate-level course.

Session Dates