This course introduces delegates to Ansible as a tool for change management, provisioning, orchestration and automation. The course begins with a optional primer day on Linux and SSH to act as a foundation for using Ansible within a Linux environment. Then all major features of Ansible are covered with practical exercises using virtual machines.


Introduction to Linux

  • The history and evolution of Linux
  • The Linux Kernel and its responsibilities
  • Understanding processes and scheduling
  • The filesystem, mounting devices and inodes
  • Interacting with the OS using the shell
  • An overview of commonly used shells

Using the Core Commands

  • The philosophy of many single-purpose commands
  • Connecting commands using pipelines and indirection
  • Discovering and altering your system configuration
  • Creating, displaying and modifying files
  • Investigating the permissions and ownership of files
  • An in-depth exploration of the find command
  • Searching files using egrep
  • Viewing, signalling and killing processes
  • Creating archives and transferring files

Editing Files Using Terminals

  • Terminal text editors - VI, Nano
  • Opening files, making changes and saving your edits
  • Searching for text and making substitutions

Introduction to SSH

  • The history of SSH - Telnet and unsecure remote login
  • Protocol architecture
  • Public and private key authentication
  • Remoting into a terminal over SSH command line
  • Using GUI SSH clients - Putty
  • Port forwarding and tunnelling
  • SCP, rsync, SFTP and FISH
  • How SSH relates to Ansible

Introduction to Ansible

  • What is Ansible?
  • Ansible features and rationale
  • Controller and Nodes
  • Execution types
  • Virtualisation
  • Installing and configuring Ansible
  • Running ad-hoc commands using Ansible

Ansible Inventories, Modules and Playbooks

  • Defining hosts and groups
  • Defining and structuring variables
  • Specifying configuration via YAML
  • Configuring authentication
  • Core modules and Ansible Galaxy
  • Defining playbooks and plays
  • Defining roles
  • Discovering and using Facts
  • Programmatic Ansible
  • Using Jinja2

Advanced Ansible

  • Creating your own modules
  • Security and Ansible Vault
  • Green-Blue deployments with rolling updates
  • Dynamic Inventory
  • Ansible Tower
  • Best practices
  • Comparison to Puppet and Chef