Configuration management involves modifying servers from an existing state to a desired state. Numerous tools exist to modify the state in a controlled way, including Puppet, Chef, SaltStack, and Ansible. Puppet and Chef are written in Ruby, while SaltStack and Ansible are written in Python.
Configuration management tools such as Chef, Puppet, Ansible, and SaltStack are not useful for performing ad hoc tasks that require interactive responses. Fabric and Invoke are used for interactive operations, such as querying the database from the Django manage.py shell.
Ansible is an open source configuration management and application deployment tool built in Python.
Python for Configuration Management with Ansible slides from PyCon UK 2013
Multi-factor SSH authentication with Ansible and Duo Security
Idempotence, convergence, and other silly fancy words we often use