Deploy Automatizado de Projeto Java no Linux com RM no VSTS

Tempo de leitura: menos de 1 minuto

E ai pessoal, tudo bem?

Em continuação ao post sobre Compilando seu projeto Java com o VSTS no Linux, vamos falar um pouco hoje, sobre o Deploy Automatizado de seu projeto Java, utilizando o VSTS em uma máquina Linux.

No artigo anterior, nós vimos que a Microsoft disponibilizou uma versão do Agente de Build do VSTS que roda em Linux, como podemos visualizar na imagem a seguir.

agente

Algo que muitas pessoas não sabem (ou não notaram) é que o agente de Build, é o mesmo que o utilizado no Release Management, ou seja, se podemos realizar nossas builds em um servidor Linux, porque não podemos realizar nossas implantações também em um servidor Linux?

Quem acompanha meu trabalho, sabe que eu gosto demais do Release Management, e sempre estou falando dele, então, quando eu vi que o agente de build para Linux estava disponível, fiquei empolgado para testar se seria possível realizar as implantações facilmente no Linux, tendo isso em mente, eu gostaria de compartilhar com vocês, que sim, é possível realizar implantações com Release Management em servidores Linux!

Vamos dar uma olhada em como isso funciona?

No artigo anterior, já vimos o processo de build funcionando, então, vamos partir para a parte do Release Management.

Em seu VSTS, acesse o menu release, como na imagem abaixo:

menurelease

Vamos então, criar uma nova Release Definition, com Template vazio, em seguida, teremos que informar qual a Build Definition será utilizada.

bldconfig

Nesta nova release, será trazido o primeiro Environment, chamado Environment 1, sem nenhuma Task. Como nós vamos realizar nosso Deploy em uma máquina Linux, vamos incluir uma nova Task para Executar Shell Script.

shell

Após incluir essa task, será necessário configurar a localização do script shell que será executado, neste caso, vamos apontar o arquivo rm.sh que será utilizado para realizar a nossa implantação. fileFolder

Este Script é bem simples, ele apenas verifica se existe uma determinada pasta em nossa maquina Linux, e caso não exista, ele irá cria-la, e também, irá realizar a cópia dos arquivos gerados pelo Build para esta pasta que foi criada.

Este Script possui duas variáveis de ambiente para seu funcionamento, que são:

$ DIR_DEST que em nosso exemplo, iremos configurar como: /tmp/Release/Dev (para o ambiente de Dev, para Homolog e Produção será alterado)

$ ORIGIN_FOLDER que em nosso exemplo será a pasta de origem dos arquivos, através da build, e nesse exemplo será: $(System.DefaultWorkingDirectory)/MvnBld/drop/example/target/

Vamos configurar 3 environments, um para Dev, um para Homolog e um para Prod.

rmConfigurado

Após tudo isso configurado, vamos iniciar uma nova Release, que irá implantar de maneira automatizada nos 3 ambientes.

Após o processo ser concluído no RM, podemos ver que os diretórios existem no linux.

RMConcluido

AgenteRMClo

 

Bem legal não?

Até a próxima então pessoal… 🙂