A3ANS201: Ansible 201 – Network Automation with Python and Ansible
About this Course
Continue your studies of Ansible, with a focus on automating common elements within the network. In addition to Ansible, students will study enough Python to understand Ansible’s plugin architecture. Lessons and labs focus on using both Python and Ansible to interact with and configure your network devices. At the conclusion of this course you will return to work empowered with skills necessary to automate network management. This class is a combination of live demonstrations and hands-on labs with virtual network devices and endpoints as targets for your configuration.
Review course outline here: https://alta3.com/courses/napya
Audience Profile
• Network Administrators
• Ansible Developers
• Python Developers
• Administrators interested in Automation
• Individuals interested in DevOps, specifically for networking
At Course Completion
• Version controlling code with Git
• Open SSH sessions and pass commands to remote servers
• Remotely open CLI to network devices
• Move files via SFTP
• Overview of Ansible modules
• Ansible collections for network automation
• Custom Ansible modules with Python
• Best practices for automating the management and configuration of network devices
• AI LLM prompt engineering for Python snippets and jumpstarting solutions
Outline
Certification
• 💻 Lecture + Lab: Network Automation with Python and Ansible - Alta3 Research Certification Project
AI LLM Toolkit
• 💻 Lecture + Lab: Large Language Model toolkit for AI Solution Assistance
Software Control Management
• 💻 Lecture + Lab: SCM Option #1 - GitHub
• 💻 Lecture + Lab: SCM Option #2 - GitLab
Python and Ansible Overlap
• 💬 Lecture: Introducing Python
• 💻 Lecture + Lab: Getting dir(obj) help() and pydoc
• 💬 Lecture: Data Types for Python and Ansible
• 💻 Lecture + Lab: Python Lists
• 💻 Lecture + Lab: Python Dictionaries
• 💬 Lecture: Ansible Playbook Components
• 💻 Lecture + Lab: Running a Playbook
• 💻 Lecture + Lab: Debug and URI Module
• 💻 Lecture + Lab: Debug, Loops, and YAML Lists
API Operations
• 💬 Lecture: RESTful APIs and JSON
• 💻 Lecture + Lab: Exploring Open APIs
• 💻 Lecture + Lab: Ansible Keywords: register and when
• 💻 Lecture + Lab: API Tokens with Python and Ansible
SSH Operations
• 💬 Lecture: SSH Operations
• 💻 Lecture + Lab: Paramiko vs Ansible - SSH with RSA Keys
• 💻 Lecture + Lab: Paramiko - SFTP with UN and PW
• 💬 Lecture: Ansible for SSH operations
• 💻 Lecture + Lab: Ansible “raw” Module
Ansible Tools
• 💻 Lecture + Lab: Jinja2 Filters
• 💻 Lecture + Lab: Ansible, Python Methods, and Jinja Filters
Switches and Routers
• 💬 Lecture: Netmiko
• 💻 Lecture + Lab: Running Netmiko
• 💻 Lecture + Lab: Network Playbooks, Set Fact, and Fail
• 💻 Lecture + Lab: Ansible Get Switch Config and Archive
• 💻 Lecture + Lab: Agnostic Network Modules
• 💻 Lecture + Lab: Ansible and TextFSM
Playbook Design
• 💻 Lecture + Lab: Network Playbook Error Handling
• 💻 Lecture + Lab: Network Playbook Precheck
• 💻 Lecture + Lab: Network Playbooks with Roles and Rollbacks
Ansible Workflow
• 💻 Lecture + Lab: Ansible Collections
• 💬 Lecture: Ansible Workflow
• 💻 Lecture + Lab: ansible-runner
Security
• 💻 Lecture + Lab: Securing Playbooks with Vault
• 💻 Lecture + Lab: Playbook Vars Prompts
Building out Playbooks
• 💻 Lecture + Lab: Ansible Module - template
• 💻 Lecture + Lab: Ansible and APIs
Python and Ansible
• 💻 Lecture + Lab: Running a script with Ansible
• 💻 Lecture + Lab: YAML, JSON, Dynamic, and Cloud Inventories
• 💻 Lecture + Lab: Writing an Ansible Module with Python
• 💻 Lecture + Lab: When to Use Python or Ansible
Playbook Tests
• 💻 Lecture + Lab: Roles and Molecule
Case Study
• 💻 Lecture + Lab: Ansible for Palo Alto PanOS and Panorama
Prerequisites
Optional Prerequisites
• Ansible 101 - Ansible Essentials
• Coding experience in another language serves as an adequate prerequisite