Ansible Essentials (ANS-101) – Outline

Detailed Course Outline

1. Getting Started with Ansible

  • IT automation
  • What is Ansible?
  • Secure Shell (SSH)
  • Why Ansible?
  • Installing Ansible
  • Creating a test environment with QEMU and KVM
  • Version control system
  • Using Ansible with Git

2. Automating Simple Tasks

  • YAML
  • Hello Ansible
  • Working with playbooks
  • Ansible verbosity
  • Variables in playbooks
  • Creating the Ansible user
  • Configuring a basic server
  • Installing and configuring a web server
  • Publishing a website
  • Jinja2 templates

3. Scaling to Multiple Hosts

  • Working with inventory files
  • Working with variables
  • Working with dynamic inventory
  • Working with iterates in Ansible

4. Handling Complex Deployment

  • Working with the local_action feature
  • Delegating a task
  • Working with conditionals
  • Working with include
  • Working with handlers
  • Working with roles
  • Execution strategies
  • Tasks blocks
  • The Ansible template - Jinja filters
  • Security management

5. Getting Notifications from Ansible

  • E-mails
  • Nagios

6. Creating a Custom Module

  • Using Python modules
  • Using bash modules
  • Testing modules

7. Debugging and Error Handling

  • The check mode
  • Indicating differences between files using --diff
  • Functional testing in Ansible
  • Functional testing using assert
  • Testing with tags
  • The --skip-tags
  • Managing exceptions
  • Trigger failure

8. Complex Environments

  • Code based on the Git branch
  • A single stable branch with multiple folders
  • Software distribution strategy
  • Preparing the environment
  • Deploying a web app with revision control systems
  • Deploying a web app with RPM packages
  • Building compiled software with RPM packaging
  • Deployment strategies
  • Optimizations