Deploy em varios servidores
08/08/2012 14:29
1
Olá pessoal

Tenho minha aplicação concluída e o meu .war esta pronto para ser colocado no servidor, como cada cliente tem o seu servidor local eu tenho que entrar em cada um e parar o servidor e banco de dados, colar o .war na pasta do apache tomcat e depois iniciar tudo, bom até agora esta tranquilo pois tenho poucos clientes, porém analisando um futuro não tão distante o bixo vai pegar :) , pergunto aos amigos alguem conhece ou desenvolveu algo que possa me ajudar a criar uma auto atualização do meu .war?

Abraço a Todos
Fernando
Tags: war, deploy, servidor, tomcat, atualização, update


0
Fizemos alguns shellscripts pra automatizar o deploy, que executam tarefas bem parecidas com o que você descreveu.

Mas acredito que existam soluções mais espertas.
08/08/2012 15:03


0
Oi Fernando,

fácil de resolver: configure sua aplicação para que no environment production a obtenção do banco de dados seja feita via JNDI. Ai vai bastar você configurar a fonte de dados via jndi em cada servidor aonde será feito o deploy e seu problema está resolvido.

Outra alternativa interessante consiste em você externalizar seu arquivo de configuração de DataSources. Assim bastaria que você o editasse para obter resultado similar.


0
certo Mussatto tipo busca num ftp e ve a data do .war né se for maior baixa e executa, mas ai vc fez um sheelscript para cada SO?


0
Então Kico é que cada cliente tem a sua base de dados na empresa mesmo, já uso JNDI para configurar a base de dados mas o meu problema e realizar uma atualização automatizada sabe, tipo colocar o .war no ftp e o sistema se auto atualizar no servidor


0
No nosso caso subimos coisas por ssh, e deixamos numa pasta, mas pode adaptar pra pegar por ftp sim

Tem uma variavel de ambiente que é a "versão" que eu vou puxar
$MEU_APP = versao_bacana_0.1.war

Dae eu tenho uma variável de sistema que tem o caminho do(s) tomcat(s) daquele servidor
exemplo:
servidor 1: $TOMCAT_PRODUCAO=/opt/tomcat-numero-1
servidor 2: $TOMCAT_PRODUCAO=/path/to/tomcat

daí o shellscript fica o mesmo, mas fica customizavel com essas variaveis!

espero que ajude!
08/08/2012 17:19


1
Acho que expliquei meio confuso, vou algoritmizar o shellscript:

- parar o BD
- parar o tomcat
- apagar tudo o que tem na pasta $TOMCAT_PRODUCAO/webapp
- pegar o arquivo $MEU_APP e e colcoar em $TOMCAT_PRODUCAO/webapp
- startar o tomcat

se vc deu fez um:
export $MEU_APP=/caminho/para/app.war
e
export $TOMCAT_PRODUCAO=/caminho/para/apache_tomcat

Acho que sairia alguma coisa do tipo:


# !/bin/bash
sudo service mysqld stop
./$TOMCAT_PRODUCAO/bin/shutdown.sh
sudo rm -rf * $TOMCAT_PRODUCAO/webapps
sudo cp $MEU_APP $TOMCAT_PRODUCAO/webapps
./$TOMCAT_PRODUCAO/bin/startup.sh
08/08/2012 17:29


1
Oi Fernando, entendi.

Uma alternativa interessante neste caso é você ter um servidor de integração contínua como Hudson ou Jenkins configurado.

Neste caso, você teria um job que seria o "pai" de todos os outros com o comportamento automatizado e um job especializado por cliente. Já fizemos algo similar e deu muito certo.


0
entendi ai quando vc instala no cliente vc coloca esse script lá e coloca no cron ou gerenciador de tarefas caso seja ruindows ai por exemplo ele faz isso sozinho no servidor.

vou implementar aki curti a idéia

vc faz isso ai na sua empresa? só por curiosidade :)


0
Vixe, essa alternativa do Jenkins / Hudson que o Kico falou é bem massa. (estudarei isso em breve hehe)

Então, não usamos cron aqui não, executamos vários scripts (esses de trocar os .war são parte deles) e vamos analisando a cada ponto.
Toda subida aqui é programada e assistida, pra caso ocorram erros.
08/08/2012 18:26


0
bem legal a idéia Kiko pra quem precisar achei esse link que dá uma idéia
Integração Jenkins



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto