Best way to clean hosts after changing roles?

Let’s say I have a role called ‘foo’ and that runs a playbook which installs a debian package ‘foo’.

If I remove host0 from the foo role, I need it to remove the debian package foo and stop the foo daemon.

How is that best done?

Leaving the daemon running and the package installed could lead to errors…

Removing a role or changing a machine's role is pretty rare. Most
people in that situation would just shutdown that vm and spin up
another with the new role. If you aren't running virtual machines then
I'd suggestion having a separate playbook called something like
"remove-role-X.yml" where X is the name of the role to remove. Then
that playbook would know how to remove and shutdown anything from the
X role. You'd have to work to make sure they are in sync, but again,
changing a machine's role isn't something that's usually done that
often.

Ah… gotcha… I guess that makes sense. We tend to use physical machines but we could just re-image or use docker.

I could have a remove-role that just resets the machine and removes packages.