One chicken-and-egg-problem with setting up servers is taking care of secrets. Secrets are hard, and they’re especially hard to keep secret. When working with systems management, you really want to keep your secrets secret, but you also want to share them with your peers. In essence, this is a conflict of interests and a hard problem to solve in a truly usable manner. But it’s not impossible.
Lately, i’ve been re-introducing myself to Ansible because it’s a way to efficiently communicate intent between peers.