Ansible fundamentals
Simple, agentless IT automation that anyone can use
Course overview
Back in 2012, Michael DeHaan proposed an alternative to Configuration Management tools such as SaltStack, Puppet and Chef by introducing Ansible. Ansible is easier to use because of its SSH based communication mode between machines and its completely decentralized operation. This eliminates the need for a very rigid master-slave relationship or configuration. Since then, Ansible has evolved while keeping the simplicity of the beginnings. It was later bought by RedHat Inc., integrated into its DevOps platform, which lead to Ansible Galaxy.
At the end of this training, you will master the fundamentals as well as some of the most advanced concepts of Ansible. You will be able to use the tools of the Ansible ecosystem to your advantage in order to deploy your packages on servers as efficiently and as quickly as possible. You will find the happiness of maintaining servers without the side of management of deployment errors.
Target audience
- Master the fundamentals of Ansible
- Produce roles and playbooks
- Produce, deploy and test roles
- Deploy in production
Prerequisites
System administrators, system engineers
Course Outline
- Be comfortable with server administration
- Be comfortable with command line
- Know how to clone a git repository
- Be comfortable with users rights and permissions
- Know how to launch a shell command
- Have a basic understanding of Python
Module 1 : Introduction
- History
- Timeline
- Configuration Management main advantages
Module 2 : First Steps with Ansible
- Installation
- Configuration
- Commands discovery
Lab :
- Ansible installation
Module 3 : Ansible Concepts
- Control Node
- Managed Nodes
- Inventory
- Modules
- Idempotency principle
- Tasks
- Roles
- Playbooks
Lab :
- Commands discovery
Module 4 : Ansible Syntax
- The variables and the Facts
- YAML and JINJA
- Variables interpolation and precedence in Playbooks and Templates
- Conditionals
- Loops
Demo :
- An example role : Security, Docker, Mysql, Kubernetes, Elasticsearch
Lab :
- Role and playbook Creation
Module 5 : Testing Strategies
- Ansible Internal module for testing presentation
- External testing middlewares
- TestInfra
- Molecule
- TestKitchen
Lab :
- Test scenario creation
Module 6 : Cooperation
- Ansible-Galaxy introduction
- Ansible-Vault introduction
- Ansible-Tower introduction
Labs :
- Files encryption
- Rôles creation with Ansible-Galaxy
Module 7 : In production
- Inventories
- Static inventories
- Dynamic Inventories by scripts, by plugins
- Bastions / Jump-Hosts
- Continuous Integration and Continuous Delivery
Demo:
- Ansible Tower/AWX and git webhooks
Lab:
- Cloud deployment