← Back to Skills Library

Ansible

Information Technology > Infrastructure as code (IaC)

Description

Ansible is an open-source automation tool used to automate software provisioning, configuration management, and application deployment. It uses a simple language (YAML) that allows you to describe your automation jobs in a way that approaches plain English. Ansible works by connecting to your nodes and pushing out small programs called 'Ansible modules' to them. These programs are written to be resource models of the desired state of the system. Ansible then executes these modules over SSH and removes them when finished. The managing machine where Ansible is installed controls the orchestration of tasks on the nodes.

Expected Behaviors

LEVEL 1

Fundamental Awareness

At the fundamental awareness level, an individual should have a basic understanding of what Ansible is and its use cases. They should be familiar with Ansible's terminology and have a general idea of how an Ansible playbook is structured. They should also know how to install Ansible.

🌱
LEVEL 2

Novice

A novice should be able to write simple Ansible playbooks and understand what an Ansible inventory file is. They should be able to use basic Ansible modules and run Ansible commands from the command line. They should also have an understanding of Ansible facts and variables.

🌍
LEVEL 3

Intermediate

An intermediate user should be capable of writing complex Ansible playbooks and using advanced Ansible modules. They should understand Ansible roles and be able to create them. They should be able to manage errors in Ansible and use Ansible Vault for secure data management. They should also understand dynamic inventories in Ansible.

LEVEL 4

Advanced

An advanced user should be able to optimize Ansible performance and use advanced features in Ansible playbooks such as tags and handlers. They should be able to integrate Ansible with other tools like Jenkins and Docker, troubleshoot complex Ansible issues, and understand and use Ansible Tower/AWX.

🏆
LEVEL 5

Expert

An expert should have a deep understanding of Ansible's internal workings and be able to customize Ansible's behavior through plugins and callbacks. They should be capable of managing large-scale, complex systems with Ansible and contributing to the Ansible open source project. They should also have expertise in securing Ansible at scale.

Micro Skills

LEVEL 1

Fundamental Awareness

Knowledge of configuration management concepts
Awareness of the benefits of automation
Understanding of how Ansible fits into DevOps practices
Understanding of terms such as 'playbook', 'inventory', 'module', 'role'
Awareness of the difference between 'task' and 'play'
Understanding of YAML syntax
Knowledge of the basic structure of a playbook (plays, tasks)
Awareness of how to define hosts and variables in a playbook
Understanding of system requirements for Ansible
Ability to install Ansible on different operating systems
Awareness of how to verify Ansible installation
🌱
LEVEL 2

Novice

Knowledge of basic YAML data types
Ability to write YAML files
Understanding of the command module
Understanding of the shell module
Understanding of the copy module
Understanding of the file module
Understanding of task structure
Ability to order tasks
Knowledge of playbook sections
Ability to write a playbook
🌍
LEVEL 3

Intermediate

Understanding and usage of loops and conditionals in Ansible
Usage of advanced playbook features like tags and handlers
Ability to manage errors and exceptions in playbooks
Understanding and usage of playbook roles
Understanding and usage of system modules
Understanding and usage of command and shell modules
Understanding and usage of file modules
Understanding and usage of database modules
Knowledge of role directory structure
Ability to create reusable roles
Understanding and usage of role dependencies
Ability to distribute roles via Ansible Galaxy
Understanding of common error messages
Ability to debug playbooks using ansible-playbook --check and --diff
Usage of ignore_errors and failed_when playbook attributes
Understanding and usage of block/rescue/always structure for error handling
Understanding of Ansible Vault
Ability to encrypt sensitive data using vault
Usage of vault IDs
Ability to integrate vault with playbooks and roles
Understanding of static vs dynamic inventories
Usage of inventory scripts
Understanding and usage of constructed and advanced inventory features
Ability to integrate dynamic inventories with cloud providers
LEVEL 4

Advanced

Understanding of Ansible's execution flow
Knowledge of strategies for playbook optimization
Ability to use profiling to identify performance bottlenecks
Understanding of how to manage and tune Ansible facts gathering
Understanding of the purpose and usage of tags
Ability to create and use handlers
Knowledge of conditional execution in playbooks
Understanding of how to use loops and iterators in tasks
Understanding of how to use Ansible with Jenkins for continuous integration/continuous deployment
Ability to create Docker containers using Ansible
Knowledge of how to integrate Ansible with cloud platforms like AWS or Azure
Understanding of how to use Ansible with version control systems like Git
Understanding of Ansible's error messages and logs
Ability to use verbose mode for troubleshooting
Knowledge of common issues and their solutions
Understanding of how to debug Ansible playbooks and roles
Understanding of the benefits and features of Ansible Tower/AWX
Ability to install and configure Ansible Tower/AWX
Knowledge of how to use the Ansible Tower API
Understanding of how to manage and monitor jobs with Ansible Tower/AWX
🏆
LEVEL 5

Expert

Understanding of Ansible's architecture
Knowledge of how Ansible executes tasks
Understanding of Ansible's event-driven model
Familiarity with Ansible's source code
Understanding of Ansible's plugin system
Ability to write custom Ansible plugins
Knowledge of how to use callbacks to hook into Ansible events
Ability to write custom callback plugins
Experience with using Ansible in large production environments
Ability to design and implement scalable Ansible architectures
Knowledge of performance tuning for large Ansible deployments
Experience with complex playbook and role organization strategies
Familiarity with the Ansible community and contribution guidelines
Experience with Git and GitHub
Ability to write clean, maintainable Python code
Understanding of testing and continuous integration practices in Ansible development
Understanding of security best practices for Ansible
Knowledge of how to use Ansible Vault effectively
Experience with securing Ansible Tower/AWX
Understanding of network security considerations in Ansible deployments

Skill Overview

  • Expert2 years experience
  • Micro-skills85
  • Roles requiring skill11

Sign up to prepare yourself or your team for a role that requires Ansible.

LoginSign Up