Como automatizo a distribuição complexa de software?

3

Nosso cliente tem uma solução que inclui vários produtos que cooperam entre si. Quando atualizamos qualquer parte da solução, temos que fornecer um guia do administrador para cada sistema operacional (XP, Windows 7, Windows Server 2008 e.t.c.). O guia diz:

  • Quais serviços e processos devem ser interrompidos antes da atualização
  • Quais arquivos devem ser armazenados em backup
  • Quais chaves de configuração devem ser atualizadas
  • Quais programas / módulos devem ser desinstalados
  • Quais programas / módulos devem ser instalados
  • Como verificar se a atualização foi bem sucedida
  • Etapas de recuperação
  • e.t.c

Basicamente, colocamos os arquivos de instalação em uma pasta de rede e fornecemos o script powershell que deve ser executado nas estações de trabalho que o cliente deseja atualizar. Esse script pode ser bastante complexo e pode mudar drasticamente da instalação para a instalação.

Eu acho que existe alguma plataforma para facilitar essa distribuição?

    
por user149691 07.04.2014 / 14:57

3 respostas

0

Não há nenhuma "bala mágica" que possa lidar com esse tipo de coisa para você. Eu ficaria cético em relação a quem disser que existe.

Eu venho de um histórico de usar scripts de construção verificados em um VCS, então meu viés provavelmente vai aparecer aqui.

Vou abordar alguns itens que outros mencionaram:

O Windows Installer certamente parece atraente à primeira vista, mas não é um "almoço grátis". Se você optar por criar os pacotes do Windows Installer, você só precisará encapsular as dependências e a lógica do seu script no pacote do instalador, possivelmente com muita fealdade, como grandes quantidades de ações personalizadas. Com efeito, você estaria usando o Windows Installer como um ambiente de script com várias peculiaridades e limitações internas.

Se você usar um sistema de gerenciamento de configuração (Configuração de Estado Desejado, Marionete, etc), você ainda precisará modelar as dependências e a lógica. Com um sistema de gerenciamento de configuração, ouso dizer que você vai se deparar com os limites da capacidade da plataforma de descrever suas dependências, e nesse ponto você precisará complementar com scripts de qualquer maneira.

Eu acho que você começou o caminho certo com o seu script Powershell. Gostaria de comentar o heck fora do script e eu trabalharia muito para construir um único script (ou, mais provavelmente, um conjunto de scripts menores que são chamados a partir de um único script central) que pode Lidar com todos os seus vários cenários de instalação. Eu usaria o software de controle de versão para manter esses scripts. Na medida em que seja viável para os produtos que você está instalando a partir de blobs binários opacos, eu criaria uma lógica de teste para validar se esses instaladores estão realmente funcionando.

    
por 08.04.2014 / 00:49
1

Use um instalador padrão (.msi), isso cuida da maioria das coisas. Dê uma olhada no WiX para obter uma plataforma de código aberto para criar o instalador.

    
por 07.04.2014 / 15:36
0

Você pode querer olhar para o Puppet. Eu usei para gerenciar a configuração de computadores baseados em Unix, mas também funciona com o sistema operacional Windows.

link

    
por 07.04.2014 / 17:49