TTDV7580: Introduction to Ansible / Automation with Ansible
About this Course
Hands-on Ansible / Introduction to Automation with Ansible is a three-day, lab-intensive course geared for toward those responsible for automation of configuration management; consistent and repeatable application deployment; provisioning and deployment of development, testing, and production servers; and (optionally) integration with DevOps CI/CD workflows. Throughout the course participants will explore core Ansible features such as automatic provisioning, configuration management, service deployment and operational processes. This course also covers enterprise topics such as managing sensitive data (Ansible Vault), Ansible Tower, and integrating with Docker (optional). Attendees might include Linux system administrators, DevOps engineers, infrastructure automation engineers, and systems design engineers.
Audience Profile
This is an Introductory level course for experienced Linux system administrators, DevOps engineers, infrastructure automation engineers, and systems design engineers. Ideally students should have familiarity with basic Python scripting. Attendees without programming skills can follow along with the scripting portion of the labs.
At Course Completion
This course is approximately 50% hands-on, combining expert lecture, real-world demonstrations and group discussions with machine-based practical labs and exercises. Working in a hands-on learning environment led by our expert practitioner attendees will explore how to:
• Describe Ansible concepts and install Red Hat Ansible Engine (optional – we can pre-install is as well if desired, depending on the audience)
• Deploy Ansible and Configure Ansible to manage hosts and run ad hoc Ansible commands.
• Implement playbooks
• Write a simple Ansible playbook and run it to automate tasks on multiple managed hosts.
• Manage variables and facts
• Write playbooks that use variables to simplify management of the playbook and facts to reference information about managed hosts.
• Implement task control; Manage task control, handlers, and task errors in Ansible playbooks.
• Deploy files to managed hosts
• Deploy, manage, and adjust files on hosts managed by Ansible.
• Manage large projects
• Write playbooks that are optimized for larger, more complex projects.
• Simplify playbooks with roles
• Use Ansible roles to develop playbooks more quickly and to reuse Ansible code.
• Troubleshoot Ansible
• Troubleshoot playbooks and managed hosts.
• Automate Linux administration tasks
• Automate common Linux system administration tasks with Ansible.
Outline
Ansible Overview
• Overview of Architecture
• Overview of Deployments
• Inventory
Deploying Ansible
• Installing
• Configuration Files
• Running Ad Hoc Commands
• Dynamic Inventory
Playbooks
• Writing YAML Files
• Modules
Variables and Inclusions
• Variables
• Facts
• Inclusions
Task Control
• Constructing Flow Control
• Handlers
• Tags
• Handling Errors
Jinja2 Templates
• Jinja2 Templates
• Jinja2 Templates
Roles
• Role Structure
• Creating Roles
• Deploying Roles with Ansible Galaxy
Optimizing Ansible
• Configuring Connection Types
• Configuring Delegation
• Configuring Parallelism
Ansible Vault
• Configuring Ansible Vault
• Executing with Ansible Vault
Troubleshooting Ansible
• Troubleshooting Playbooks
• Troubleshooting Managed Hosts
Ansible Tower
• Ansible Tower overview
• Installing
• Account management
• Hosts
• Jobs
Optional: Ansible in a DevOps Environment
• Provisioning Vagrant Machines
• Deploying Vagrant in a DevOps Environment
• Deploying Docker in a DevOps Environment
Prerequisites
Attendees should have incoming experience similar to the topics listed in the course(s) below or should have attended these as a pre-requisite:
• TTPS4800 Introduction to Python Programming Basics – 3 days
• TTLX2103 Introduction to Linux – 3 days