I use Ansible to setup my servers, and also all my workstations.
The first step is to run a bootstrap script, then run a tailor made playbook for each situation.
Those specific playbooks haven't been made public, but I wrote something[0] last year about how to setup an Android development environment using Ansible, and as part of that shared my bootstrap script.