A resposta curta é "Gerenciamento de implantação de SO", "Gerenciamento de configuração" e "Empacotamento de software". A resposta longa segue.
Eu gostaria de acrescentar à resposta de Daniel Pittman com uma análise do que forma um "sistema" na administração de sistemas.
Um sistema ou ambiente será composto por:
- Servidores
- Sistema operacional
- Configuração
- Pacotes de fornecedores; e
- Pacotes locais
Envolver estes serão processos como:
- Implantação ou geração de SO
- Gerenciamento de configurações
- Gerenciamento de pacotes de software
- Auditoria / registro
- Monitoramento
- Backups
E você gostaria que eles se combinassem para ajudá-lo a alcançar objetivos não funcionais, como:
- Repetibilidade
- Manutenção
- Mensurabilidade
- atuação
- Rastreabilidade
- Testabilidade
- Mudança
Este é um despejo rápido do cérebro. Estou certo de que mais poderia ser adicionado a todas as listas.
Sua pergunta aborda várias delas sem usar as palavras específicas. Por exemplo, você deseja poder implantar facilmente e reverter, ou seja, deseja manutenção; você deseja fazer isso em um ambiente de teste e testar até que ele passe, ou seja, repetibilidade, testabilidade e mensurabilidade; você está pensando em colocar imagens vm no controle de versão, porque gostaria de repetir as implantações de sistema operacional e configuração.
Existem muitas ferramentas para ajudá-lo com isso, algumas delas mencionadas por Daniel. Alguns outros são:
- Kickstarts (baseado em RedHat), Preseed (baseado em Debian), WDS (MS Windows) para implantar ambientes de SO conhecidos
- Spacewalk / Satellite (baseado em RedHat), Diretivas de Grupo (MS Windows) para gerenciamento de configuração e pacotes
- Sistemas de empacotamento YUM e APT para gerar, implantar, atualizar e remover pacotes (conjuntos de binários, dados e configuração que incluem um software)
- Nagios, OpenNMS e SCOM para monitoramento
- Amanda, Bacula e Windows Backup Server para backups
- Munin, PCP e Hyperic para monitoramento de desempenho
- CVS, SVN, GIT ou Bazaar para controle de versão
- Hudson e Jenkins para gerenciamento de compilação
- Selênio e robô para testes
- Bugzilla, Request Tracker e Jira para gravação, comunicação e rastreamento
Novamente, essa não é uma lista abrangente, mas algo que guardo na minha cabeça para me guiar e espero que também o ajude.