-
Notifications
You must be signed in to change notification settings - Fork 3
Instalacao da Ferramenta
Inicialmente será necessário instalar e configurar o docker, que será responsável por criar uma instância do ambiente de produção da ferramenta de TCC de forma simplificada.
As instruções para criar esta instância do ambiente está no repositório da ferramenta de TCC, disponível no Github.
Após baixar o repositório da ferramenta de TCC na máquina onde será executada a ferramenta, será necessário executar shell scripts para a geração das Imagens docker. Estas imagens docker serão, então, instanciadas para a execução da ferramenta de TCC. No entanto, antes de sua execução, configurações da ferramenta de TCC serão necessárias para o correto funcionamento.
Para o procedimento inicial ficar mais simples, serão instaladas bases de dados de demonstação, onde todas as ligações da ferramenta de TCC com o Moodle já estarão corretamente configuradas. Desta forma será possivel ver o ambiente operacional e replicar para o ambiente de produção posteriormente, bastando apenas ajustes na configuração e redirecionamento de localizações de configurações e base de dados.
O detalhamento das configuirações da Ferramenta de TCC será necessário para a compreensão dos dados contidos no ambiente de demonstração e para a correta configuração do ambiente de produção final.
Após restaurada a base de demonstração e verificadas as configurações da ferramenta de tcc poderá ser relizada a geração das imagems docker para sua execução. Com as imagens geradas já é possível executar a ferramenta de TCC
Ubuntu 16.04 e superior:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
chmod a+x /usr/local/bin/docker-compose
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt update
sudo apt-get install docker-ce
Os passos a seguir podem ser usados nas máquinas de desenvolvimento, para facilitar a utilização dos comandos docker, no entanto, para as máquinas de produção o docker não deve ter permissão de super usuário, por questões de segurança
Siga os passos descritos na documentação do Docker
Adicione permissões para que não seja preciso executar o Docker Compose com o super usuário:
sudo groupadd docker
sudo usermod -aG docker $USER
Use este comando para testar:
docker run hello-world
Caso o último comando resulte em erro, mude as permissões de seus arquivos.
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
Se ainda assim o problema persistir, faça logout e login novamente para atualizar as permissões.
Após algum tempo de uso, o Docker mantém arquivos que podem ser apagados para liberação de espaço em disco. Para remover imagens, contâiners e volumes não utilizados:
docker images --no-trunc | grep '<none>' | awk '{ print $3 }' | xargs -r docker rmi
docker ps --filter status=dead --filter status=exited -aq | xargs docker rm -v
docker volume ls -qf dangling=true | xargs -r docker volume rm
Para baixar o repositório da ferramenta de TCC será necessário executar o comando a seguir:
git clone [email protected]:UFSC/moodle-tcc.git moodle-tcc-tool -b TCC_2_8_1 --recursive
Este comando já inicializa os repositório relacionados com o repositório principal, o da ferramenta de TCC.
Dados de demonstração foram preparados para facilitar a configuração e execução inicial da ferramenta de TCC.
- Backup do Moodle 3.5 de demonstração
- Backup do Moodle 3.6 de demonstração
- Backup da ferramenta de TCC de demonstração
Os usuários pré-cadastrados são:
Nome | Login | Senha | |
---|---|---|---|
Admin | Admin | Admin#123 | [email protected] |
Aluno A | aluno.a | Alunoa#0 | [email protected] |
Aluno B | aluno.b | Alunob#0 | [email protected] |
Aluno C | aluno.c | Alunoc#0 | [email protected] |
Aluno D | aluno.d | Alunod#0 | [email protected] |
Coordenador AVEA | coord.avea | Coordavea#0 | [email protected] |
Coordenador Tutoria | coord.tutoria | Coordtutoria#0 | [email protected] |
Orientador E | orientador.e | Orientadore#0 | [email protected] |
Orientador F | orientador.f | Orientadorf#0 | [email protected] |
Tutor G | tutor.g | Tutorg#0 | [email protected] |
Tutor H | tutor.h | Tutorh#0 | [email protected] |
Para as configurações existentes o nome da base de dados para a ferramenta de
TCC deve ser tcc_github
. O nome desta base de dados pode ser alterada, para
isso o arquivo ./config/database.yml
deve ser alterado, na variável database
para conter o novo nome, se for necessário.
O arquivo de backup da ferramenta de TCC de demonstração
deve ser restaurado no database tcc_github
antes que a imagem docker seja executada.
Criar uma configuração de vhost no nginx. Existe um exemplo desta configuração no repositório: https://github.com/UFSC/moodle-tcc/blob/TCC_2_8_1/docker/staging_passenger/config/nginx-app-local.conf
Este passo configura o proxy nginx com chaves de segurança para acesso via https.
Foram criadas chaves de segurança auto-assinadas que servem apenas para teste.
Estas chaves estão em docker/staging_passenger/config/cert.crt
e
docker/staging_passenger/config/cert.key
e devem ser colocadas na máquina onde o proxy
nginx estará atuando. Estes arquivos devem ser copiados para o diretório
/etc/ssl/certs_app
na máquina do proxy nginx, para que as chaves possam ser validadas.
No entanto a comunicação entre o proxy nginx e o container onde estará rodando a
ferramenta de TCC será realizada via http normal, pois a segurança das chaves será
feita no proxy nginx antes da chamada do container.
Havendo a necessidade de troca de chaves, para a chave definitiva do site a ser utilizado,
deve-se sobrepor os arquivos docker/staging_passenger/config/cert.crt
e
docker/staging_passenger/config/cert.key
antes da geração da imagem, pois estes
arquivos serão utilizados dentro do docker.
O arquivo de configuração do vhost para o proxy nginx da ferramenta de TCC pode ser
copiado do arquivo docker/staging_passenger/config/nginx-app-local.conf
para o diretório
de configurações do nginx, conforme comandos a seguir:
sudo cp docker/staging_passenger/config/nginx-app-local.conf /etc/nginx/sites-available/tcc-docker.conf
sudo ln -s /etc/nginx/sites-available/tcc-docker.conf /etc/nginx/sites-enabled/tcc-docker.conf
sudo service nginx restart
Caso não seja necessária a utilização de https, com chaves de segurança, utilizando
apenas http, então o arquivo a ser usado como configuração deverá ser o
docker/staging_passenger/config/nginx-app-local.conf.80
sudo cp docker/staging_passenger/config/nginx-app-local.conf.80 /etc/nginx/sites-available/tcc-docker.conf
sudo ln -s /etc/nginx/sites-available/tcc-docker.conf /etc/nginx/sites-enabled/tcc-docker.conf
sudo service nginx restart
Variáveis de ambiente deverão ser configuradas para o sistema.
Estas variáveis de ambiente estarão localizadas no arquivo docker/.env
. No entanto
este arquivo não existe no repositório, pois ele é transitório. Um exemplo pode ser copiado
do arquivo docker/.env.example
cp docker/.env.example docker/.env
As sequintres variáveis poderão ser inicializadas:
Nome (variável) | Padrão | Descrição |
---|---|---|
DB_USERNAME | root | Nome do usuário do banco de dados |
DB_PASSWORD | root | Senha do usuário do banco de dados |
DB_DATABASENAME | tcc_github | Nome do banco de dados |
DB_HOST_IP | homologacao-database | Host ou IP da localização do banco de dados. Esta variável será inicializada no arquivo docker/docker-compose.staging_passenger.yml na seção web_stg_passenger / extra_hosts
|
DB_PORT | 3306 | Porta da máquina onde o banco de dados será acessado |
RAILS_ENV | production | Nome do ambiente (contexto) em que o sistema será executado |
Após a cópia das variáveis de ambiente exemplo, os valores definitivos devem ser alterados, contemplando os valores reais do sistema.
(Passo opcional)
Caso a ferramenta de TCC esteja em DNS de teste, como no caso do ambiente de demonstação,
poderá ser adicionado o dns deste serviço (server_name) homologacao-tcc-docker.ifes.br
em uma linha no arquivo /etc/hosts da máquina que irá ser testado o sistema
(na máquina do usuário).
Deve-se editar o arquivo /etc/hosts e adicionar a linha a seguir:
192.168.1.8 homologacao-tcc-docker.ifes.br
Onde 192.168.1.8
deverá ser o IP da máquina onde está rodando o docker da ferramenta de TCC
(Passo opcional)
Caso o Moodle também esteja em DNS de teste, como no caso do ambiente de demonstação,
deverá ser informado em qual IP o server_name do serviço está rodando. Neste caso o
arquivo docker/docker-compose.staging_passenger.yml
deverá ser editado, conforme
informações a seguir:
...
web_stg_passenger:
...
...
extra_hosts:
- "homologacao-database:192.168.1.6"
# Caso seja um DNS local, para testes, então adicionar host abaixo
- "homologacao-moodle35.ifes.br:192.168.1.7"
volumes:
- assets_stg:/home/app/repo/shared/assets
...
Onde 192.168.1.6
deverá ser o IP da máquina onde está rodando o Moodle
com os dados restaurados de demonstração.
O arquivo docker/docker-compose.staging_passenger.yml
será utilizado para
executar a imagem da ferramenta de TCC, por isso esta configuração deve ser
realizada antecipadamente à sua execução.
Outra configuração que deve ser conferida é o IP do serviço de banco de dados,
neste caso a configuração contida no extra_hosts
na linha
homologacao-database:192.168.1.7
, onde homologacao-database
é o DNS de
acesso do serviço de banco de dados, localizado no IP 192.168.1.7
, onde foi
restaurada a base de dados de demonstaração da ferramenta de TCC.
O DNS homologacao-database
será utilizado no arquivo de configuração da
ferramenta de TCC (database.yml
) para direcionar o acesso ao banco de dados MySQL.
Duas tabelas necessitam ser configuradas diretamente pelo banco de dados, pois
não possuem interface de edição durante a execução da ferramenta. As tabelas são
tcc_definition
e chapter_definition
, detalhada nos capítulos a seguir.
As outras tabelas e configurações poderão ser realizadas via interface, durante a execução da ferramenta.
Importante: O arquivo /db/seed.rb
é utilizado para a inicialização do banco de dados,
isto é, sempre será executado durante a incialização da aplicação para manter a integridade
dos dados. Desta forma um dado inserido neste arquivo, para a inicialização do banco
de dados, deverá ser alterado também por este arquivo, caso contrário toda a alteração
realizada diretamente no banco de dados será perdida e sobreposta com as informações
deste arquivo. Inicialmente os dados de demonstração foram inseridos neste arquivo para
exemplificar seu funcionamento. Deve-se verificar se a URL do moodle (atividade LTI do TCC)
per manece a mesma, caso mude, o arquivo também deve ser alterado e não somente a
base de dados.
Esta tabela conterá a ligação com o Moodle e a qual atividade do curso cada turma de TCC estará vinculada.
Campo | Default | Descrição |
---|---|---|
id | auto | Auto incremental, este valor será utilizado na chamada da ferramenta de TCC dentro da atividade do Moodle, asim como como chave de ligação (primária) para a tabela chapter_definition
|
internal_name | 'Tcc teste - Turma A' | Nome curto da turma/curso |
activity_url | 'http://homologacao-moodle35.ifes.br/mod/lti/view.php?id=2' | URL da atividade do Moodle onde será chamada a ferramenta de TCC. |
course_id | 2 | É o identificador da URL no curso/modulo moodle, URL quando acessa o curso/modulo Ex.: http://homologacao-moodle35.ifes.br/course/view.php?id=2, neste exemplo o id do curso é 2 |
moodle_instance_id | 2 | É o identificador da instância LTI dentro da base de dados do Moodle |
Para encontrar o valor do moodle_instance_id
basta executar o SQL a seguir dentro da base de dados do Moodle:
SELECT id AS moodle_instance_id
FROM moodle_35_tcc.lti
WHERE course = 2
# WHERE course = [course_id, no exemplo é 2]
Os outros campos poderão ser criados/alterados na interface edição da ferramenta durante sua execução. Somente o Corrdenador de AVEA e o Administrador do Sistema terão acesso a estas configurações. Estudantes e Orientadores não terão acesso às configurações da ferramenta.
Esta tabela fará a definição da estrutura de capítulos do TCC.
Para cada novo curso/turma um conjunto de chapter_definition
deve ser criado para
definir sua estrutura de capítulos.
A vinculação entre chapter_definition
e tcc_definition
será feita pelo
campo tcc_definition_id
que deverá conter o id
do novo curso/turma em um
novo registro na tabela tcc_definition
.
Campo | Default | Descrição |
---|---|---|
id | auto | Auto incremental |
tcc_definition_id | 1 | Valor do id identificador do tcc_definition , 1 na base de demonstração. Para novos cursos o numero deve ser outro |
title | 'Introdução' | Nome do capítulo, este valor será apresentado como nome do capítulo tanto nas telas quanto na impressão final do texto |
coursemodule_id | [null ou 3] | Caseja informado um valor, ele deverá ser o de uma atividade de Texto-on-line do Moodle, para que o texto possa ser importado. |
position | 1 | Ordem em que os capítulos serão apresentados, tanto na tela quanto na impressão |
is_numbered_title | [0 ou 1] | Define se o capítulo receberá numeração, geralmente a introdução não recebe numeração de caítulo |
verify_references | [0 ou 1] | Define se o capítulo avisará quando não houver referências. Geralmente alguns capítulos são fortemente indicados a possuir referências biliográficas, como exemplo um capítulo de Revisão da Literatura
|
created_at | 2019-02-08 18:39:58 | Data da criação do registro |
updated_at | 2019-02-08 18:39:58 | Data de alteração do registro |
Os seguintes passos devem ser seguidos para a geração das imagens do docker para a criação do ambiente da ferramenta de TCC:
Inicialmente deve-se entrar no diretório do repositório.
cd moodle-tcc-tool
Copiar dados de configuração, usando como base os arquivos de exemplo, caso eles ainda não existam:
cp config/database.yml.example config/database.yml
cp config/email.yml.example config/email.yml
cp config/sidekiq.yml.example config/sidekiq.yml
cp config/secrets.yml.example config/secrets.yml
cp config/tcc_config.yml.example config/tcc_config.yml
Alguns ajustes devem ser realizados nos arquivos de configuração para que os dados de demonstração possam funcionar corretamente.
-
No arquivo database.yml o valor de
host
deve conter o IP ou DNS (homologacao-database
) onde a base de dados em MySQL com os dados de demonstração foram restaurados e estão disponíveis, assim como adequar o usuário e senha para o acesso ao servidor MySQL. -
No arquivo tcc_config.yml o valor de
moodle_url
deve conter a url onde o Moodle está instalado e respondendo às requisições. Neste local/url os dados de demonstração do Moodle devem ter sido restaurados previamente para o Moodle, para que a demonstração da ferramenta de TCC possa funcionar corretamente. Posteriormente esta url deverá apontar para a versão definitiva do Moodle.
Entrar no diretório do docker
cd moodle-tcc-tool
cd docker
Para que a instância do ambiente de produção possa ser executada, será necessário gerar a imagem deste ambiente:
cd moodle-tcc-tool
cd docker
./stg_build_all.sh
O script docker/stg_build_all.sh
fará a geração automática de todas as imagens
intermediárias e final necessárias para o ambiente de produção para a ferramenta de TCC.
Dentro do diretório moodle-tcc-tool/docker
executar o comando a seguir
para executar a ferramenta de TCC.
./stg_up.sh
No camando apresentado anteriormente, assim que o computador for reiniciado, o serviço da ferramenta de TCC não será reiniciado, até que o comando seja executado novamente.
Para que o serviço seja sempre inicializado, mesmo que o computador seja reiniciado, o comando a seguir deve ser executado:
./stg_up_always.sh
- Home
- Funcionalidades
- Instalação da Ferramenta
- Configuração do Moodle
- Desenvolvimento Colaborativo