For physical machines I maintain a debian preseed that runs an ansible playbook post install. Install + setup is fully unattended and generally takes about 15 minutes.
https://wiki.debian.org/DebianInstaller/Preseed
Quite different than bootstrapping a system as described in the OP, but relevant in the context of your comment.