Ansible
Ansible is a kick ass open-source automation engine that automates a lot of your everyday admin tasks. Its built using python, ssh, sudo and a number of other techniques. So these need to work correctly!
Since Ansible is built on the before mentioned techniques bootstrapping it to a system is a chicken and egg thing. Basically you need to provide a use with sudo rights to get it working.
Ansible expresses configurations, deployment, and orchestration in Playbooks. Playbooks are yaml files with a scenario specific instructions.
Ansible provides a number of internal variables and Facts used in Playbooks. Facts can be locally extended to provide needed information to the Playbooks.
Playbooks can be combined into roles. These roles easily created downloaded from Ansible Galaxy. Roles are referenced in Playbooks.
Hosts are defined in an inventory and the playbooks specify the host groups where they apply to.
The ansible config can specify the location of the inventory.