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
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.
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.
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.
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.
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.