Sim! Este é um grande negócio e incrivelmente comum. E existem duas abordagens básicas. Uma maneira é simplesmente com instalações com script, como por exemplo usadas no kickstart do Fedora, RHEL ou CentOS. Confira no guia de instalação do Fedora: Instalações de Kickstart . Para o seu caso simples, isso pode ser suficiente. (Tome isso como um exemplo; existem sistemas similares para outras distros, mas já que eu trabalho no Fedora é isso que eu estou familiarizado.)
A outra abordagem é usar gerenciamento de configuração . Este é um grande tópico, mas olhe para o Puppet, Chef, Ansible, cfengine, Salt e outros. Nesse caso, você pode usar um kickstart genérico muito básico para provisionar uma máquina mínima e a ferramenta de gerenciamento de configuração para colocá-lo em sua função adequada.
À medida que suas necessidades e infraestrutura aumentam, isso se torna incrivelmente importante. Usar o gerenciamento de configuração para todas as suas alterações significa que você pode recriar não apenas a instalação inicial, mas o estado evoluído do sistema, à medida que você introduz os inevitáveis ajustes e correções causados pela interação com o mundo real.
We figured that automating as much of this process as possible would make it easiest to repeat as needed in the future.
Você está absolutamente no caminho certo - este é o princípio fundamental da administração de sistemas profissionais. Nós até temos uma imagem memética para isso:
Geralmente, é moderadamente mais difícil de configurar inicialmente, e pode haver uma grande curva de aprendizado para alguns dos sistemas mais avançados, mas ela se paga para sempre. Mesmo se você tiver apenas um punhado de sistemas, pense em quanto você quer trabalhar para recriá-los no caso de uma catástrofe no meio da noite, ou quando você estiver de férias.