Is there a good way to test configuration changes before they go live on the server?
Sim, existe e é exatamente o que você está tentando evitar, configurando um ambiente de desenvolvimento:
- Use o mesmo sistema operacional
- O mesmo software instalado
- Mesma configuração
- Conheça as suas ferramentas e saiba o que você está fazendo. IOW invista tempo para ser exposto.
- Por último, mas não menos importante, use o controle de origem, por exemplo, git
Basicamente, crie um espelho da sua configuração ao vivo. Então, você pode ajustar o dev até ficar satisfeito e então fazer essas mudanças no ambiente ao vivo. Poderia ficar bastante detalhado, mas de uma maneira geral é como fazer isso. Atrevo-me a dizer que esta é uma maneira padrão de fazer isso.
Is there a better way to do this, short of virtualizing everything and working with snapshots?
Poderia haver, mas eu não estou ciente de um nem usei um.
Melhor da sorte:)