• Aucun résultat trouvé

Na versão do SIGUAN entregue ao final do projeto de extensão contava com um processo de implantação manual. Além disso, toda as configurações do servidor eram feitas de maneira não sistemática, isto é, para configurar dois servidores aptos a receber o SIGUAN todo o processo de instalação e configuração de software era reproduzido do zero tornando a replicação do servidor um processo custoso e propenso a erros. Em vias de suprimir as questões apontadas, essa seção apresenta um novo processo de implantação, realizado a partir da configuração de containers e da configuração do processo de implantação automática.

Para que a implantação seja feita de forma pragmática, é necessário que os testes implementados na seção 3.2 NECESSIDADE DE CRIAÇÃO DE UM MÓDULO DE TESTES sejam feitos de acordo com o ambiente de produção. Visto que alguns testes de software afetavam o banco de dados com a criação de uma massa de dados, houve a necessidade da criação de um ambiente de testes idêntico ao ambiente de produção.

Tais ambientes foram configurados através da conveniência da ferramenta do Docker, onde múltiplos ambientes independentes podem ser idênticos devido as imagens, conforme explicada na seção 2.1 DOCKER.

Sendo assim, o container Docker foi divido em dois ambientes, produção e testes. Estes dois ambientes serão configurados utilizando Java 8, Tomcat 8.5,

MySQL 5.7, e no ambiente de testes, além destas configurações, terá a

todo o processo de implantação do SIGUAN no servidor. A seguir são abordados os detalhes dessas configurações.

Primeiramente foi necessário especificar uma imagem customizada da ferramenta do Jenkins, pois algumas configurações eram necessárias para que ocorresse o processo de implantação automática. Tais configurações são relatadas nos Trecho de código 6, referindo a configuração da ferramenta do Jenkins.

1 #Utilização da imagem do Jenkins fornecida no Docker hub

2 FROM jenkins/jenkins:2.172

3 #Utilização do usuário administrador do sistema 4 USER root

5 #Instalação do java 8

6 RUN apt-get update && apt-get install -y make git openjdk-8-jdk

7 #Criação de pasta que receberá o backup do Jenkins

8 RUN mkdir /srv/backup && chown jenkins:jenkins /srv/backup

9 #Utilização do usuário configurado pela imagem do Jenkins 10 USER Jenkins

11 #Remoção das telas de configurações quando inicia o Jenkins 12 RUN echo 2.172 >

/usr/share/jenkins/ref/jenkins.install.UpgradeWizard.state

13 RUN echo 2.172 >

/usr/share/jenkins/ref/jenkins.install.InstallUtil.lastExecVersion

14 #Copia os plugins que serão instalados assim que a imagem for implantada

15 COPY plugins.txt /usr/share/jenkins/ref/plugins.txt

16 #Instala os plugins que foram copiados 17 RUN /usr/local/bin/install-plugins.sh <

/usr/share/jenkins/ref/plugins.txt

18 #Configurando a varíavel de ambiente do java 19 ENV JAVA_HOME /usr/lib/jvm/java-8-openjdk-amd64

20 #Copia o backup antigo para dentro do Jenkins

21 COPY --chown=jenkins:jenkins config_jenkins /var/jenkins_home Trecho de código 6. Configuração do Dockerfile da imagem do Jenkins.

O Trecho de código 6 apresenta um Dockerfile que configura a imagem do Jenkins que será utilizada no processo de implantação automática. Na linha 2 é declarada a importação de uma imagem com configurações iniciais do

Jenkins. Nas linhas 6 e 7 estão detalhados os passos necessários para a

instalação do Java 8 e criação de uma pasta que servirá como backup da imagem, respectivamente. Nas linhas 12 e 13, ocorre a remoção das páginas iniciais de configurações do Jenkins, desnecessários ao projeto. As linhas 15 e 17 ilustram o processo de instalação de alguns plugins necessários (como foi explicado na seção 2.2 JENKINS). Na linha 19, a variável de ambiente Java é configurada para habilitar o uso do Java 8. Por fim, na linha 21, o Docker verifica

a existência de uma pasta com as configurações de backup, caso exista ele realiza a cópia de tais configurações para dentro imagem.

Posteriormente, observando a estrutura necessária para executar a aplicação do SIGUAN, houve a necessidade de especificar uma imagem customizada do servidor Tomcat. O Trecho de código 7 relata as especificações para atender o servidor Tomcat configurado.

1 #Utilização da imagem do tomcat fornecida no Docker hub 2 FROM tomcat:8.5.39

3 #Define o diretório de trabalho 4 WORKDIR ${CATALINA_HOME}

5 #Copia os arquivos para dentro da imagem

6 COPY manager.xml conf/Catalina/localhost/manager.xml 7 COPY tomcat-users.xml conf/tomcat-users.xml

8 COPY context.xml conf/context.xml 9 COPY server.xml conf/server.xml 10 COPY web.xml conf/web.xml

Trecho de código 7. Configuração do Dockerfile da imagem do Tomcat.

O Trecho de código 7 apresenta um Dockerrfile de configuração do

Tomcat, na linha 2 a imagem do Tomcat disponibilizada no Docker Hub é

importada. Na linha 4 é definido que o diretório de trabalho do servidor é o diretório do padrão do Tomcat. Nas linhas seguintes são executados comandos para realizar cópias dos arquivos de configuração do Tomcat. O detalhamento desses arquivos está disponível na seção de Apêndice B.

Para imagem do MySQL foi especificado nenhum Dockerfile, pois não houve necessidade de realizar configurações personalizadas já que a imagem do MySQL disponível no Docker Hub apresenta todas as configurações necessárias ao SIGUAN.

Para que o ambiente de produção e o ambiente de testes sejam executados utilizando as imagens que foram especificadas no Trecho de código 6 e Trecho de código 7 é necessária a utilização do docker-compose conforme explicado na seção 2.1 DOCKER. Sendo assim, foram especificados dois arquivos docker-compose, um para ambiente de produção (Trecho de código

8) e outro para ambiente de testes (Trecho de código 9).

2 version: "3" 3 services:

4 #imagem personalizada do tomcat 5 tomcat: 6 image: fbio15/tomcat:0.1 7 ports: 8 - "8280:8080" 9 links: 10 - db

11 #imagem padrão do mysql 12 db: 13 image: mysql:5.7 14 command: --lower_case_table_names=1 15 environment: 16 MYSQL_ROOT_PASSWORD: tomcat 17 MYSQL_DATABASE: siguan 18 MYSQL_USER: tomcat 19 MYSQL_PASSWORD: tomcat 20 volumes: 21 - ./var/lib/dbteste

Trecho de código 8. Configuração do docker-compose do ambiente de produção.

O Trecho de código 8 apresenta a configuração do ambiente de produção do SIGUAN. A linha 2 declara a versão utilizada do docker-compose. A partir da linha 3 são descritos os serviços que estarão contidos dentro do

container. Este container utiliza para configuração de seus serviços duas

imagens, elas são: a imagem do Tomcat, configurada no Trecho de código 7, e a imagem do MySQL, padrão do Docker Hub. Da linha 5 até a 10 é feita a configuração do serviço da imagem do Tomcat. Da linha 12 até 21 é feita a configuração do serviço da imagem do MySQL, como por exemplo a configuração do uso de letras minúsculas para as tabelas como apresentado na linha 14. Para que a comunicação entre o Tomcat e o MySQL aconteça, é necessário que ocorra uma configuração dentro do container, como ilustrado na linha 9 e 10.

1 #ambiente-teste 2 version: "3" 3 services:

4 #imagem personalizada do Jenkins 5 jenkins:

6 image: fbio15/jenkinstcc:0.1 7 ports:

9 - "50000:50000"

10 #imagem personalizada do tomcat 11 tomcat: 12 image: fbio15/tomcat:0.1 13 ports: 14 - "8380:8080" 15 links: 16 - db

17 #imagem padrão do mysql 18 db: 19 image: mysql:5.7 20 command: --lower_case_table_names=1 21 environment: 22 MYSQL_ROOT_PASSWORD: tomcat 23 MYSQL_DATABASE: siguan 24 MYSQL_USER: tomcat 25 MYSQL_PASSWORD: tomcat 26 volumes: 27 - ./var/lib/dbprod

Trecho de código 9. Configuração do docker-compose-test do ambiente de teste

O Trecho de código 9 apresenta a configuração do ambiente de testes do SIGUAN. Este container utiliza para configuração de seus serviços três imagens disponibilizadas no Docker Hub, elas são: a imagem do Jenkins, configurada no Trecho de código 6; a imagem do Tomcat, configurada no Trecho de código 7, e a imagem do MySQL, padrão do Docker Hub.

Da linha 5 até a 9 é feita a configuração do serviço da imagem do Jenkins. Da linha 11 até a 16 é feita configuração do serviço do Tomcat. E, por fim, da linha 18 até a 26 é feita a configuração do serviço do MySQL. Dentre as configurações feitas em sobre a versão do docker-compose e a comunicação entre a imagem do Tomcat e MySQL, seguem o mesmo exemplo do Trecho de

código 8.

Sendo assim, para que sejas executados tais arquivos do Trecho de

código 8 e do Trecho de código 9 é necessário a instalação do Docker. Após

sua instalação é necessário executar o comando “docker-compose up” no diretório do arquivo do Trecho de código 8 e do Trecho de código 9, e assim o Docker inicializará os ambientes de produção e de teste.

Dans le document Assembler H Version 2 Application Programming: (Page 184-187)