Ansible is configuration management tool and remote orchestration tool. It's kind of like Puppet, and Fabric had a baby. It can get boxes into a desired state like Puppet, but it can also run commands on a bunch of remote boxes like Fabric. It has a few difference from puppet. Namely that it pushes its configuration on demand to boxes instead of having a puppet dameon periodically check for changes and reset things. It also is configured entirely through yaml files that run tasks, instead of having a DSL for managing state.
Ansible is broken down into three major parts. Inventory, Playbooks, and Roles. I will cover these three briefly. Anyone looking for a more in-depth documentation on ansible should checkout the docs.
An inventory is a document that describes all of the hosts you want to manage, and how they are grouped. Take a look at our master inventory to get a sense of the structure.