Pergunta

Estou planejando uma procedue para liberar nosso software para nossos clientes usando uma versão avançada de um procedimento existente que usa scripts do Windows lote. Estou esperando para melhorar este processo e automatizar a instalação dos seguintes itens:

  • Arquivos. Os arquivos são simplesmente copiado para um destino.
  • MSSQL Databases. Acho que vou usar o comando OSQL para executar estes contra um banco de dados.
  • O IIS diretórios virtuais. versões de servidor do Windows geralmente têm o IIS Toolkit instalado, que tem algumas ferramentas para a criação de diretórios virtuais e outros enfeites a partir da linha de comando por isso vou usar isso. Eu acho que o "iiscnfg" é o que eu usar para inserir arquivos de configuração salvas anteriormente no IIS .
  • Windows Services. Os nossos serviços têm a capacidade de instalar eles mesmos a partir da linha de comando.

Assim, para cada implantação aplicativo eu tenho uma estrutura como esta:

Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc

Então, basicamente você abra um terminal e CD para o diretório Lançamentos, executar um comando algo como:

get-release "Release3"

que irá executar uma série de comandos em todos os aplicativos no diretório LIBERAR 3 e copiar todos os arquivos, configurações, instalar todos os bancos de dados e diretórios virtuais do IIS.

Há um pouco mais que ele faz como fazer backup do diretório de destino para os arquivos, etc., mas a sua irrelevantes para o momento.

A minha pergunta é se alguém tem alguma experiência fazendo uma implantação como esta e se houver qualquer erro que posso aprender com outras experiências povos.

Infelizmente não podemos ir com pacotes MSI ou que NullSoft um (cujo nome me escapa no momento). Se não o seu feito assim que é feito manualmente, então eu estou realmente tentando me ajudar aqui.

Foi útil?

Solução

Já rolou vários scripts como este, e as partes mais feias para lidar com são o tratamento de erros - como você detectar erros, o que você faz quando ocorrem, você pode reverter todas as alterações feitas até à data, e assim em. Relativamente simples se você estiver fazendo uma nova instalação, não quase tão simples se você estiver atualizando um sistema existente. (Você nunca deve assumir que vai funcionar perfeitamente o tempo todo -. Atualização MS de amanhã pode quebrar roteiro de hoje, depois de tudo)

Existem apenas algumas coisas;) você não pode razoavelmente fazer a partir de um arquivo de lote. você pode deslizar em scripts VB, scripts java, algumas chamadas PowerShell, ou qualquer outra coisa para lidar com as coisas difíceis?

Outras dicas

Eu não vejo nenhum problema em fazer coisas como esta com um arquivo em lotes. No entanto, você vai ter que dar um pouco sobre o que algumas das diferenças entre máquinas (diretórios ausentes, diretórios já existentes, arquivos já existentes, versões de arquivos, etc.) pode ser, endereço deles e teste realmente bem em um variedade de máquinas.

É muito ruim você não pode usar um instalador, porque instaladores já mitigar a maioria desses problemas para você. Em essência, você estará rolando seu próprio instalador, e você não vai beneficiar de lições aprendidas, melhores práticas, etc., que um instalador vai lhe dar.

Outra coisa que você pode não ser capaz de fazer sem um instalador é instalar um arquivo que está sendo bloqueado pelo sistema operacional. Instaladores lidar com isso, copiar o arquivo para um local temporário, colocando uma "carga sobre restart" entrada no registro e, em seguida, pedir que o usuário reinicie o computador.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top