NETWORK AUTOMATION COURSE DESCRIPTION
This course is not a soft skills course covering the concepts of DevOps but
instead concentrates on the technical side of tools and languages for network
DevOps. Particular technologies focussed on are ansible, git and Python enabling
delegates to leave the course ready to starting automating their network. Hands
on sessions follow all major sections. More detailed courses on individual
aspects of this course are available.
WHAT WILL YOU LEARN
* Evaluate network automation tools.
* Automate tasks with ansible.
* Use git for version control.
* Use Python to manage network devices.
* Use Python libraries for network devices.
NETWORK AUTOMATION COURSE DETAILS
* Who will benefit:
Network engineers.
* Prerequisites:
TCP/IP foundation for engineers.
* Duration
5 days
NETWORK AUTOMATION COURSE CONTENTS
* What is DevOps
Programming and automating networks, networks and clouds, AWS, OpenStack,
SDN, DevOps for network operations.
* Initial configuration
Configuring SSH, ZTP, POAP.
Hands on Initial lab configuration.
* Getting started with ansible
The language, the engine, the framework. Uses of ansible, orchestration. The
architecture, Controlling machines, nodes, Agentless, SSH, modules.
Configuration management, inventories, playbooks, modules, roles.
Hands on Installing ansible, running ad hoc commands.
* Ansible playbooks
ansible-playbook, YAML, plays, tasks, handlers, modules. Playbook variables.
Register module, debug module.
Hands on Running playbooks.
* Ansible Inventories
/etc/ansible/hosts, hosts, groups, static inventories, dynamic inventories.
Inventory variables, external variables. Limiting hosts.
Hands on Static inventories, variables in inventory files.
* Ansible modules for networking
Built in modules, custom modules, return values. Core modules for network
operations. Cisco and/ or Juniper modules. ansible_connection. Ansible 2.6
CLI.
Hands on Using modules.
* Ansible templating and roles
Configuration management, full configurations, partial configurations. The
template module, the assemble module, connection: local, Jinja2 templates,
variables, if, for, roles.
Hands on Generating multiple configurations from a template.
* Network programming and modules
Why use Python? Why use ansible? alternatives, ansible tower, Linux network
devices.
* Programming with Python
Scripting versus application development, Python interactive mode, Python
scripts, Python 2.7 vs Python 3. A simple Python script. Variables, loops,
control statements, operators. PEP style guide. Python IDEs.
Hands on Simple Python programs.
* More Python programming
Functions. Classes, objects and instances, modules, libraries, packages.
Python strings, Python file handling, pip list, pip install,
Hands on Python programming with pyping.
* Git
Distributed version control, repositories, Git and GitHub, Alternatives to
GitHub, Installing git, git workflows, creating repositories, adding and
editing files, branching and merging, merge conflicts. Hands on working with
Git.
* Python and networking
APIs, Sockets, Telnetlib, pysnmp, ncclient, ciscoconfparse.
* Paramiko SSH and Netmiko
Integrating Python and network devices using SSH. Netmiko, Netmiko methods.
Hands on Netmiko.
* PyEZ
Juniper, NETCONF, installing PyEZ, a first pyEZ script, pyEZ configuration
management.
Hands on Juniper configuration management with pyEZ.
* NAPALM
What is NAPALM, NAPALM operations, getters, Replace, merge, compare, commit,
discard.
Hands on Configuration with NAPALM. Integrating ansible and NAPALM.
* Python and REST
REST APIs, enabling the REST API. Accessing the REST API with a browser,
cURL, Python and REST, the request library.
Hands on Using a REST API with network devices.