Use roles to share responsibilities.
Depend variables on the environment.

In case the playbook is run inside a docker container, use different
variables to test things like git checkouts.
Use Docker as a self contained test suite.

The Dockerfile in tests can be used to build a docker image based on the
latest Fedora base image and run the playbook against it.
Install more tools I want for my desktop