A list of managed nodes provided by one or more 'inventory sources'. Your inventory can specify information specific to each node, like IP address.
It is also used for assigning groups, that both allow for node selection in the Play and bulk variable assignment.
To learn more about inventory, see :ref:`the Working with Inventory<intro_inventory>` section. Sometimes an inventory source file is also referred to as a 'hostfile'.
They contain Plays (which are the basic unit of Ansible execution). this is both an 'execution concept' and how we describe the files on which ``ansible-playbook`` operates on.
Playbooks are written in YAML and are easy to read, write, share and understand. To learn more about playbooks, see :ref:`about_playbooks`.
Plays
-----
The main context for Ansible execution, this playbook object maps managed nodes (hosts) to tasks.
The Play contains variables, roles and an ordered lists of tasks and can be run repeatedly.
It basically consists of an implicit loop over the mapped hosts and tasks and defines how to iterate over them.
Roles
.....
A limited distribution of reusable ansible content (tasks, handlers, variables, plugins, templates and files) for use inside of a Play.
To use any Role resource, the Role itself must be imported into the Play.
Tasks
.....
The definition of an 'action' to be applied to the managed host. Tasks must always be contained in a Play, directly or indirectly (Role, or imported/included task list file).
You can execute a single task once with an ad hoc command ``ansible`` or ``ansible-console`` (both create a virtual Play).
Handlers
........
Special form of a Task, that only execute when notified by a previous task which resulted in a 'changed' status.
The code or binaries that Ansible copies and executes on each managed node (when needed) to accomplish the action defined in each Task.
Each module has a particular use, from administering users on a specific type of database to managing VLAN interfaces on a specific type of network device.
You can invoke a single module with a task, or invoke several different modules in a playbook.
Ansible modules are grouped in collections. For an idea of how many collections Ansible includes, see the :ref:`list_of_collections`.
Collections are a distribution format for Ansible content that can include playbooks, roles, modules, and plugins. You can install and use collections through `Ansible Galaxy <https://galaxy.ansible.com>`_. To learn more about collections, see :ref:`collections`. Collection resources can be used independently and discretely from each other.
Short for 'Ansible Automation Platform'. This is a product that includes enterprise level features and integrates many tools of the Ansible ecosystem: ansible-core, awx, galaxyNG, and so on.