Skip to content

Instalando o REMAR (em um container Docker)

Delano Beder edited this page Jan 9, 2018 · 12 revisions

Este documento descreve os passos necessários para instalar e configurar uma versão do REMAR em ambiente de produção utilizando um container Docker. Na descrição do passo a passo desse documento foi utilizado uma máquina rodando Ubuntu 16.04 LTS. Porém acredita-se que esses passos possam ser replicados em outros ambientes pois o Docker possibilita o empacotamento de uma aplicação ou ambiente inteiro dentro de um container, e a partir desse momento o ambiente inteiro torna-se portável para qualquer outro Host que contenha o Docker instalado.

Nota: <SENHA> deve ter o mesmo valor em todos os comandos utilizados (ou seja, a senha do usuário admin no REMAR, do root no Tomcat/MySQL/MongoDB deve ser a mesma).

1. Instalação das dependências

Atualização do Ubuntu

sudo apt-get update

sudo apt-get upgrade

Instalação do Java e Git

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get -y install git curl zip oracle-java8-installer oracle-java8-set-default

Configuração do JAVA_HOME

sed -i '$ a export JAVA_HOME=/usr/lib/jvm/java-8-oracle' ~/.bashrc

Instalação do Grails

curl -s get.sdkman.io | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk install grails 2.4.5

Instalação do Docker

Tutorial de instalação do Docker: https://www.digitalocean.com/community/tutorials/como-instalar-e-usar-o-docker-no-ubuntu-16-04-pt

sudo apt-get update && sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D

sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main' && sudo apt-get update

sudo apt-get install -y docker-engine

sudo systemctl status docker

Para verificar se a instalação está ok:

docker --version

Instalação do Docker Compose

Tutorial de instalação do Docker Compose: https://docs.docker.com/compose/install/

sudo -i

<root> curl -L https://github.com/docker/compose/releases/download/1.12.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose

<root> exit

sudo chmod +x /usr/local/bin/docker-compose

Para verificar se a instalação está ok:

docker-compose --version

Instalação do Docker Convoy

Tutorial de instalação do Docker Convoy: https://github.com/rancher/convoy

wget https://github.com/rancher/convoy/releases/download/v0.5.0/convoy.tar.gz

tar xvzf convoy.tar.gz

sudo cp convoy/convoy convoy/convoy-pdata_tools /usr/local/bin/

sudo mkdir -p /etc/docker/plugins/

sudo bash -c 'echo "unix:///var/run/convoy/convoy.sock" > /etc/docker/plugins/convoy.spec'

2. Setup do Docker e Convoy

Criação dos Docker volumes

mkdir $HOME/electron_docker
mkdir $HOME/volume_docker_remar

Criação dos Convoy devices

truncate -s 100G $HOME/data.vol
truncate -s 1G $HOME/metadata.vol

3. Setup da plataforma REMAR

Clone do repositório:

Clone o código fonte da plataforma REMAR no diretório $HOME/source

git clone https://github.com/loa-sead/projeto-remar source

Sincronização com o repositório do código-fonte dos jogos:

cd source
git submodule init
git submodule update --recursive --remote

Configuração da plataforma

Crie o arquivo $HOME/source/ProjetoREMAR/grails-app/conf/env.properties de acordo com o seu ambiente:

users.password=<SENHA>
dataSource.username=<SENHA>
dataSource.password=<SENHA>
dataSource.url=jdbc:mysql://mysql/remar
dataSource.dbHost=mongodb
recaptchaSecret=RECAPTCHA_SECRET
sendGridApiKey=SENDGRID_API_KEY

Nota: No código-fonte, presente no repositório, já contempla uma configuração padrão do recaptchaSecret e sendGridApiKey.

Caso deseje alterar a configuração padrão, a recaptchaSecret pode ser obtida gratuitamente neste link e sendGridApiKey pode ser obtida gratuitamente criando uma conta em https://sendgrid.com.

Em /source/Docker/ existe um arquivo chamado .env.sample

Crie um outro arquivo com o mesmo conteúdo com o nome .env:

cd $HOME/source/Docker
cp .env.sample .env

Dentro de .env troque as senhas de acordo com as senhas anteriores.

Configuração da utilização do DSpace (opcional)

Crie o arquivo $HOME/source/ProjetoREMAR/grails-app/conf/env-dspace.properties de acordo com o seu ambiente:

dspace.mainCommunityId=<ID da comunidade REMAR no DSpace>
dspace.restUrl=<URL do REST do DSpace>
dspace.jspuiUrl=<URL do JSPui do DSpace>
dspace.email=<email(login) do DSpace>
dspace.password=<password do login informado>

Compilação da plataforma

cd $HOME/source/ProjetoREMAR
grails war

Deploy dos arquivos WAR (Web Archive)

cp target/ProjetoREMAR-0.1.war $HOME/volume_docker_remar/ROOT.war
cp $HOME/source/tools/manager.war $HOME/volume_docker_remar

4. Execução da plataforma

Para a execução da plataforma são necessárias a execução de alguns comandos em 2 terminais distintos.

Ao término da execução, a plataforma REMAR poderá ser acessada na seguinte url: http://localhost.

Observações::

  • Para acesso a plataforma deve-se utilizar o seguinte par (usuário/senha): admin/<SENHA> (a senha definida anteriormente).

  • Nenhum modelo de jogo estará disponível na plataforma. Para submeter um modelo de jogo, deve-se compilá-lo e utilizar a área de desenvolvedor. O usuário admin tem o perfil de desenvolvedor/administrador. Portanto, ele tem permissões de submeter e aprovar novos modelos de jogos.

Execução do Convoy

No terminal 1 execute os seguintes comandos:

sudo losetup /dev/loop5 $HOME/data.vol
sudo losetup /dev/loop6 $HOME/metadata.vol
sudo convoy daemon --drivers devicemapper --driver-opts dm.datadev=/dev/loop5 --driver-opts dm.metadatadev=/dev/loop6

Execução do Docker Composer

No terminal 2 execute os seguintes comandos:

cd $HOME/source/Docker
sudo docker-compose up