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.

https://github.com/svo/my-debian-setup

Since the setup has a great many things within it. I would suggest forking the GitHub repository and modifying it to your needs.

As with the macOS configuration, you can remove roles that you don’t want in your setup by removing the corresponding entry in the roles section of the playbook.yml file.

Ansible Roles

Same goes for seeing what is in a role, as some are bundles of things like e.g. cli-tools, you can browse the roles directory and open the corresponding tasks/main.yml file.

Ansible Roles Directory

Hope it proves helpful and don’t forget to Automate everything!