Customizing Ansible (Ansible 301)

This course is designed to move students beyond Ansible Essentials and join Ansible with other DevOps skill sets, including Python scripting, utilizing Ansible Galaxy, running automated solutions with Jenkins, syncing code with Git and GitHub, continuous integration, debugging/linting, and much more! The lessons are built around the current concepts observed within enterprises using Ansible.


Class is a combination of lecture by demonstration, coding along with the instructor, and hands-on labs. Students are invited to help customize this course by bringing their own projects, solutions, and ideas to ensure class subjects remain as relevant as possible.

Course Information

Price: Private Inquiries Only
Duration: 4 days
Certification: Mastering Ansible - Certification Project
Exam: 
Learning Credits:
Course Delivery Options

Check out our full list of training locations and learning formats. Please note that the location you choose may be an Established HD-ILT location with a virtual live instructor.

Train face-to-face with the live instructor.

Access to on-demand training content anytime, anywhere.

Attend the live class from the comfort of your home or office.

Interact with a live, remote instructor from a specialized, HD-equipped classroom near you. An SLI sales rep will confirm location availability prior to registration confirmation.

All Sunset Learning dates are guaranteed to run!

Register

Prerequisites:

  • Coding experience in another language serves as an adequate prerequisite
  • Ansible Essentials 

 

Target Audience:

  • DevOps Engineers
  • System and Cloud Administrators
  • Network Engineers and Developers
  • Python Developers 

 

Course Objectives:

  • Version controlling code with Git
  • winrm sessions and pass commands to remote servers
  • Basic Python for automation applications
  • Ansible collections for server automation
  • Understanding plugin architecture of Ansible modules written with Python
  • Best practices for automation

 

Course Outline:

Introduction to Environment

  • Running with GitHub
  • Syncing Git and GitHub
  • Cloning repos
  • Commits
  • Push and Pull operations
  • Master and Branches
  • Documenting work
  • Moving HEAD
  • GitHub Desktop for GUIs

Ansible and Jenkins

  • Syncing GitHub Playbooks to Jenkins
  • Running Playbooks with Jenkins
  • Building Jenkins Jobs
  • Jenkins and Plugins to know

Roles and Galaxy

  • Building an Ansible Role
  • Role Testing with Molecule
  • Using a Role within a Playbook (review)
  • Pushing Role to GitHub
  • Syncing Ansible Galaxy to GitHub
  • Making Role Highly Available with Galaxy
  • Updating Roles on Galaxy
  • Documenting Roles

Advanced Ansible

  • Blocks & Rollback
  • Asynchronous Actions and Polling
  • Check Mode (’Dry Run’)
  • Playbook Debugger
  • Delegation, Rolling Updates, and Local Actions
  • Setting the Environment (and Working With Proxies)
  • Working With Language-Specific Version Managers
  • Error Handling In Playbooks
  • Advanced Syntax
  • Working With Plugins
  • Prompts
  • Tags
  • Using Vault in Playbooks
  • Start and Step
  • Playbook Keywords
  • Lookups
  • Module defaults

Critical Python Catchup & Review (moving target – depends on students previous knowledge)

  • Overview of Python and Ansible
  • Conditional expressions
  • Relational and Boolean operators
  • Lists, Tuples, Dictionaries
  • Indexing and slicing
  • Built-in functions
  • Writing custom functions
  • Getting at methods
  • Iterating with Loops (for and while)
  • Working with files
  • Getting at RESTful interfaces with Python
  • Working with JSON
  • Python, Ansible and Paramiko
  • Using Paramiko to SSH with keys and passwords
  • Python and Jinja templating

Python in Playbooks

  • Using methods within playbooks
  • Python methods vs Jinja2 filters
  • Calling Scripts with Ansible
  • Writing Python Scripts for Customer Environment
  • Returning JSON when our script finishes
  • Ansible callback plugins – returning data other than JSON

Extending the Ansible Library

  • Extending Ansible to support (Your Unsupported Ansible Vendor Here)
  • Galaxy for new Ansible modules
  • GitHub for new Ansible modules

Creating Ansible Modules

  • Writing a Python Script
  • Adopting a Python Script to function as an Ansible Module
  • Pushing our new module to GitHub
  • Documenting our new module
  • Classes of Ansible Modules available

Ansible and for Enterprise

  • Hiding credentials
  • Using Ansible Vault
  • Collaborating on Playbooks
  • Options for logging results
  • Options for running Ansible Jobs in an Enterprise
  • Jenkins
  • Ansible Tower
  • Logging Results
  • Rolling Back bad jobs & other jobs