About this course
Course Overview
The three-day AJAUT course gives students hands-on experience with DevOps and infrastructure as code (IaC) with devices running the Junos OS. Students will learn the tools needed to operate an open-source DevOps environment. Specifically, students will learn to use Docker, GitLab, Ansible, The Robot Framework, and Jenkins. Students will learn and utilize the tools to build a working DevOps project using two Juniper vMX devices.
This course uses Junos OS Release 17.3R1, PyEZ 2.1, Python 2.7, Git 2.17, and Ansible 2.4.
Target Audience
This course benefits individuals responsible for configuring, monitoring, and automating devices running the Junos OS.
Course Objectives
Upon completion of this course, you should be able to:
- Understand DevOps and how the DevOps process can improve Junos Automation.
- Create, configure, and manage Docker Containers.
- Use GitLab as a repository for code and configuration data.
- Use Ansible and Jinja2 templates to configure multiple Junos devices.
- Use Ansible to enforce design constraints using templates.
- Use Ansible to build Ansible playbooks that work in multi-vendor environments.
- Install and configure Robot to perform automated tests on Junos devices.
- Use Jenkins to implement continuous code and configuration integration.
- Implement a DevOps automated lab testing solution
Course Content
Day 1
1 COURSE INTRODUCTION
2 Introduction to DevOps and Event Driven Infrastructure
- DevOps
- Infrastructure as Code
- Event Driven Infrastructure (EDI)
3 Using Docker for DevOps
- Introduction to Docker Containers
- Installing and Configuring Docker
- Managing Docker Networking
- Managing Applications Running in Docker
- Monitoring and Troubleshooting Docker
LAB 1: Using Docker Containers
4 Using GitLab as a Configuration and Code Repository
- Version Control Benefits
- Git and GitLab Explained
- GitLab Install Overview
- Creating GitLab Projects
- Creating Git Repositories
- Staging and Committing Files
- Cloning and Pushing Repository Data
- Branching and Merging
- Resolving Merge Conflicts
LAB 2: Using GitLab
Day 2
Using Ansible to Manage Networking Devices
- Review of Ansible Basics
- Using Ansible with Jinja2 Templates
- Using Ansible to Enforce Network Design Constraints using Templates
- Using Ansible for (NOOB) Deployments while Maintaining Idempotency
Managing Devices Running Junos OS using Ansible Roles
- Creating Multivendor Playbooks
- Using GitLab with Ansible for Automated Version Control
- Using Ansible for Auditing
- Using Ansible with Vagrant
LAB 3:
Using Ansible in a DevOps Environment
Day 3
Robot Framework
- Robot Overview
- Examine the pybot_jrouter Module
- Creating Robot Framework Keywords
- Creating Robot Framework Resource Files
- Perform Automated Testing using Robot
- Automated Testing - Use Case
LAB 4: Automation Testing with the Robot Framework
7 Jenkins
- Jenkins Overview
- Creating Process Automation using Jenkins
- Installing and using the Robot Plugin for Jenkins
- Retrieving Repository Data from a Git Repository
- Executing Ansible Playbooks from within Jenkins
- Lab 5: Junos Process Automation with Jenkins
LAB 5: Using Jenkins to Implement Continuous Integration
Course Prerequisites
Students should have taken the Junos Platform Automation and DevOps (JAUT) course or have equivalent knowledge.