Ansible and OpenStack introduction
Ansible is a configuration management tool. It can take a YAML file describing how the result should look like (e.g. list of installed sotware or given config options) called playbook and perform steps to make it happen. It uses SSH for connection to the target machines (called inventory), so no agent or other special software is needed on controlled machines. One of very nice features of Ansible is idempotency - if the playbook runs multiple times on already configured machine, nothing is changed.