For even longer than I have been using Ansible to manage my macOS setup, I have been using the same process for Debian (was previously Ubuntu, but was converted). I have also put a Vagrant configuration around it so I can test the inclusion of packages prior to running on my actual machine.
For quite some time I have been using Ansible to manage my OS X / macOS setup. Though fiddly, I have also put a Vagrant configuration around it so I can test the inclusion of packages prior to running on my actual machine.
I have been working on some things to help you and your organisation 🎉
http://organisation-template.qual.is/
Fork this GitHub repository and modify it to your hearts content.