Qualquer uma das excelentes ferramentas de gerenciamento de configuração existentes ( Puppet , que é a minha favorita, Chef , CFEngine , Ansible ) irá ajudá-lo a gerenciar o estado de uma máquina (ou seja, qualquer tipo de configuração, pacotes instalados, etc). Você está familiarizado com o gerenciamento automático de configurações? Se não, você tem muito a aprender, mas valerá a pena.
Para provisionar máquinas e gerenciar seu ciclo de vida, há também algumas ferramentas disponíveis, nem todas elas igualmente maduras. Nós usamos o Foreman com grande sucesso, mas há outros, como Navalha e Caminhada no Espaço . Assim como no gerenciamento de configurações, se você não estiver familiarizado com os conceitos de provisionamento sem recurso / kickstart e como as várias ferramentas implementam esses conceitos, você tem muito a aprender. E como no gerenciamento de configurações, valerá muito a pena.
Esta é uma resposta muito ampla, mas você fez uma pergunta muito ampla. Sinta-se à vontade para fazer perguntas detalhadas separadamente.