Este é um problema que me incomoda há algum tempo - finalmente queria escrever sobre isso. Sinta-se à vontade para me dar um tapa no pulso se isso já foi discutido em outra pergunta no Superusuário.
Neste momento, eu faço a maior parte do meu desenvolvimento de software em alguns aspectos do Windows (XP, Win7, Win8). Normalmente, acabo configurando uma nova estação de trabalho de desenvolvimento para mim a cada 6-9 meses, seja em um novo laptop ou desktop, no trabalho ou em casa (ou devido a uma fatalidade de hardware). Como é de se esperar, geralmente há muita coisa para instalar manualmente, das ferramentas de produtividade do IDE ao escritório. Muito demorado, tedioso e um pouco inconsistente definitivamente viola o princípio DRY em minha mente. Eu também preferiria ficar longe de ambientes de máquinas virtuais para essa questão.
Estou procurando sugestões sobre como automatizar isso. Alguns requisitos:
-Assumo que eu já tenho uma instalação do Windows 7 com todos os seus patches e vacinas. Suponha também que não posso simplesmente clonar uma imagem do disco rígido.
-Eu quero ser capaz de usar um arquivo de script de algum tipo para controlar o que está instalado.
-O arquivo de script em si deve ser apenas um arquivo de texto (ou uma série de arquivos de texto), algo que pode ser facilmente verificado no controle de versão
-O script de instalação deve ser inteligente o suficiente para saber onde baixar um instalador para um determinado aplicativo (algum tipo de endereço de rede / URI), eu estaria bem apontando para onde eles viveram.
-Instalar o mecanismo de script / executável na própria estação de trabalho não é um problema.
-Executar o script de instalação pode acontecer na linha de comando.
- A única coisa que estou realmente tentando evitar é ter que configurar muita infraestrutura adicional para suportar isso (configurar uma unidade de rede é bom, configurar alguns servidores adicionais não é).
-Idealmente, esta solução seria relativamente portátil, algo que eu poderia usar em casa ou no trabalho.
-A solução deve ser barata (< $ 100), se não for de graça, além do meu tempo para escrever os scripts, etc.
Algo ingenuamente, isso parece algo como construir / projetar scripts (Make, Ant, Maven, etc.) cruzados com scripts de shell. O PowerShell seria adequado para tal tarefa? Meu primeiro pensamento foi usar o Puppet / Chef, mas não tenho certeza de quão adequado eles são para um ambiente Windows?
Apenas procurando pensamentos, sugestões, conselhos úteis.
Obrigado.