Introduction to Junos Platform Automation and DevOps
(IJAUT)
This three-day course demonstrates how to automate the Junos OS using DevOps automation tools, protocols, and technologies. This course introduces basic DevOps principles, Junos APIs, and the Network Configuration Protocol (NETCONF). It focuses on using Python, Junos PyEZ, Ansible, and the Junos Representational State Transfer (REST) API to automate Junos platforms. Extensible Markup Language (XML), JavaScript Object Notation (JSON), and YAML Ain't Markup Languate (YAML) are introduced as data formats that facilitate Junos automation.
Through demonstrations and hands-on labs, students will gain experience automating the Junos operating system. This course uses Junos OS Release 20.2R2.11, Python 3.6.8, Junos PyEZ 2.54, and Ansible 2.9.5.
Course Level
Introductory
Audience
Individuals responsible for configuring and monitoring devices running the Junos OS
Prerequisites
- Basic understanding of the OSI model and the TCP/IP protocol suite
- Basic understanding of computer networking concepts.
Objectives
- Describe DevOps principles and practices.
- Explain how DevOps benefits an IT organization.
- Discuss Network Reliability Engineering.
- List and describe the various APIs Junos provides for automation.
- Discuss the frameworks, libraries and tools used to automate Junos devices.
- Describe XML document format.
- Explain how the Junos OS uses XML.
- Use XPath to navigate a Junos XML document.
- Describe the NETCONF protocol.
- Use NETCONF and the XML API to issue Junos RPCs.
- List available XML API programming languages.
- Configure Junos device using NETCONF.
- Describe JSON syntax.
- Explain how JSON is used in Junos.
- Describe YAML syntax.
- Explain how Junos automation tools use YAML.
- Use JSON and YAML documents.
- Verify an Ansible installation.
- Retrieve information from Junos devices using Ansible.
- Use Ansible to configure Junos devices.
- Explain fundamental Python concepts.
- Use the Python 3 interactive interpreter.
- Modify and run Python scripts.
- Install Junos PyEZ.
- Use Junos PyEZ to connect to Junos devices and retrieve facts.
- Use Junos PyEZ to execute Junos RPCs.
- Use Junos PyEZ to modify Junos device configuration.
- Describe Python exception handling with PyEZ.
- Describe the capabilities of the Junos OS REST API.
- Generate REST API RPC queries.
- Use the REST API Explorer.
- Describe the Junos operating system and its basic design architecture.
- Explain transit and exception traffic processing.
- Describe the Junos CLI and its features.
- List and perform initial configuration tasks.
- Describe interface types and perform basic interface configuration tasks.
Associated Certification
- JNCIA-DevOps
Course Content
Course Introduction
Introduction to DevOps
- Why DevOps?
- The Benefits of DevOps
Junos Automation
- The Junos Automation Stack
- Junos XML API Overview
- Junos REST API Overview
- Junos JET API Overview
- Overview of Junos Automation Tools
XML and XPath
- Basic XML Syntax
- XML in the Junos OS
- Navigating XML using XPath
- Lab 1: XML and XPath
XML and NETCONF
- NETCONF
- Junos XML API
- Junos XML API Programming Languages
- Lab 2: XML and NETCONF
Python Fundamentals
- Python Basics
- Data Types and Variables
- Lists, Dictionaries, Sets, and Tuples
- Python Libraries
- Python Script Examples
- Lab 3: Python Fundamentals
Junos PyEZ Operations
- Junos PyEZ
- Execute Junos RPCs
- Perform Device Operations
- Lab 4: Junos PyEZ Operations
Junos PyEZ Configuration
- Junos PyEZ Configuration
- Junos PyEZ Exception Handling
- Junos PyEZ and Jinja2
- Lab 5: Junos PyEZ Configuration
JSON and YAML
- Data Formatting
- JSON Basics
- JSON Support in Junos
- YAML Basics
- Junos Automation and YAML
- Lab 6: JSON and YAML
Junos REST API
- REST API Overview
- Configuring the REST API
- Using the REST API
- REST API Explorer
- Lab 7: Junos REST API
Appendix: Introduction to Junos
- Junos OS Basic Design Architecture
- Traffic Processing
- CLI Modes and Features
- Initial Configuration Tasks
- Interface Types and Configuration
- Lab 8: Introduction to Junos
Appendix: Introduction to Ansible
- Ansible Architecture and Capabilities
- Ansible Playbook Basics
- Using Ansible to Retrieve Junos Status Information
- Using Ansible to Retrieve and Modify Configuration Information
- Lab 9: Ansible