Detailed Course Outline
Day 1 – Critical Python Catchup & Review
- Overview of Python and Ansible
- Python white space rules & best practices
- Printing and more Printing
- Date types and Variables
- Packing and Unpacking Variables
- f Strings
- Conditional expressions
- Relational and Boolean operators
- Lists, Tuples, Dictionaries
- Indexing and slicing
- Built-in functions
- Iterating with Loops (for and while)
- Working with files
- Software Control Management (SCM) (Git, Github, Bitbucket, Cloudshare, etc.)
- Using Python to access REST interfaces
- Working with JSON
- Python, Ansible and Paramiko
- Using Paramiko to SSH with keys and passwords
- RESTful API review
- API keys
- Paramiko Review
- Using Paramiko to SFTP with keys and passwords
Day 02 – Python and Network Automation
- Introduction to Netmiko (automating routers and switches)
- Using Netmiko to send commands to / from network devices
- Working with YAML
- Converting JSON to YAML with Python
- Ansible keywords
- YAML and JSON for data exchange
- Ansible and YAML
- Ansible Playbook components
- Tying together Python and Ansible – Using Python within Ansible
- Ansible Network Modules
- What is new in Ansible (most current updates / release notes)
- Network Agnostic modules
- Writing network playbooks
- Reviewing the construction of network playbooks
- Writing Ansible playbooks that respond to network failures
Day 03 – Blending Python and Ansible Skillsets
- Review how to use Python within Ansible
- Calling Python scripts with Ansible
- Jinja2 Templating Engine for Python (and Ansible)
- Using Templates in Ansible playbooks
- Jinja2 filters, looping, and other useful tricks for automating with Ansible
- Playbook tagging for selective runs
- When to use Python and when to use Ansible
- “Big Picture” options for using Python & Ansible within your Network
- Ansible Roles
Day 04 – Customizing Ansible with Python
- Review – Running Scripts with Ansible
- Prompting for Ansible user input
- Ansible Galaxy & Getting at Roles
- Writing a custom Ansible Module with Python
- Ansible “Engine” vs Ansible “Tower” – marketing hype, capabilities, costs, etc.
- Case Study: Automate your Enterprise Network
- When to use Python and when to use Ansible
- Writing your own Ansible modules in Python
- “Big Picture” options for using Python & Ansible within your Network
- Overview – NETCONF / YANG and what they mean for Python and Ansible
- Molecule – Testing your roles