Tutorial de instalação atualizado


#1

Prezados. Segue abaixo o tutorial atualizado de instalando da plataforma Openredu. O sistema operacional utilizado foi o Ubuntu-Server 14.04.

Obs: Foram atualizados pacotes e modos de instalação.

Roteiro

  1. Instalando o cURL e dependências
  2. Instalando o RVM
  3. Instalando a versão 1.9.3 do ruby
  4. Instalando o MySQL
  5. Instalando o Rails
    6)Instalalando o git
    7)Instalando o MongoDB
  6. Baixando o código do OpenRedu
  7. Rodando o OpenRedu
  8. Criando as tabelas
  9. Inicializando os Submodules
  10. Inserindo dados essenciais no BD
  11. Iniciando o servidor de aplicação Openredu

Neste tutorial a instalação da plataforma é realizada apenas via terminal linux.
Todos os comandos linux estão em negrito.
Por ser um tutorial para facilitar a didática, boas práticas de segurança não são prioridade (A segurança ficará a critério do responsável pela infraestrutura)

  1. Instalando o cURL e dependências

Tornando administrador do sistema.
$ sudo -i

Instalando pacotes e dependências
# apt-get install libssl-dev libreadline6-dev zlib1g-dev curl libxslt-dev libxml2-dev gnupg2

  1. Instalando o RVM

Baixando o repositório do rvm via ppa
# apt-add-repository ppa:rael-gc/rvm

Em seguida é necessário atualizar os pacotes
# apt-get update

Instalando o rvm
# apt-get install rvm

a) Verificando se o RVM está sendo carregado como função do bash

Iniciando o rvm
# /etc/profile.d/rvm.sh

Em seguida será verificado o funcionamento do rvm
# type rvm | head -n 1

Deve retornar:
rvm is a function

(Muito importante) → Caso contrario, você pode editar manualmente o arquivo ~/.profile (adicionar no usuario comum e no root) acrescentando ao final do arquivo:

export PATH="$PATH:$HOME/.rvm/bin" # Add RVM to PATH for scripting
[[ -s “$HOME/.rvm/scripts/rvm” ]] && source “$HOME/.rvm/scripts/rvm” # Load RVM into a shell session as a function

Verificado novamente o funcionamento do rvm
# type rvm | head -n 1

É preciso retornar:
rvm is a function

Se der erro novamente, reveja a edição do arquivo ~/.profile (No usuário comum e root).

  1. Instalando a versão 1.9.3 do ruby
    # rvm install 1.9.3
    # rvm use 1.9.3

a)Criando uma Gemset para o OpenRedu
# rvm gemset create OpenRedu
# rvm gemset use OpenRedu

Verificando se o ambiente está correto
# rvm current

Deve retornar:
ruby-1.9.3-p551@OpenRedu

  1. Instalando o MySQL

Instalando o MySQL
# apt-get install mysql-client mysql-server libmysqlclient-dev

Durante a instalação do Banco de Dados MySQL será necessário criar uma senha de acesso ao banco de dados

  1. Instalando o Rails

Instalando a versão 3.1.0 Rails
# gem install rails --version 3.1.0

6)Instalalando o git

Instalando o Git
# apt-get install git-core

Obs: O git e as chaves SSH de acordo com este tutorial do GitHub
http://github.com/guides/

7)Instalando o MongoDB

No debian, seguir esse tutorial:
https://docs.mongodb.com/v3.0/

Para Ubuntu:

Atualizando pacotes
# apt-get update

Instalando o MongoDB
# apt-get install -y mongodb

  1. Baixando o código do OpenRedu

Basta executar o comando clone do git:
# git clone https://github.com/Openredu/Openredu

  1. Rodando o OpenRedu

Criar arquivo database.yml
Inicialmente você deve criar uma base de dados para o OpenRedu. Em seguida, escrever o database.yml, segundo as configurações do seu Banco de Dados. O arquivo database.yml.example, localizado na pasta Openredu/config, pode ser usado como base. Copie-o, e renomeie para database.yml. Então, basta adicionar as credenciais de conexão com o banco de dados previamente instalado.

Acessando Openredu/config:
# cd Openredu/config

Copiando o database.yml.example database.yml:
Openredu/config # cp database.yml.example database.yml

Editando o arquivo database.yml (adicione as credenciais de conexão com o banco de dados (Senha do administrador do banco de dados MySQL) previamente instalado)
Openredu/config # nano database.yml

Instalando Gems necessárias ao OpenRedu
Esta tarefa é feita pelo Gem Bundler. Portanto, basta acessar o diretório raiz do projeto.
Acessando o diretório raiz do projeto:
# cd Openredu

Atualizando
/Openredu # gem update debugger-ruby_core_source

Instalando Gems
/Openredu # bundle install

Se aparecer a mensagem “bundler: command not found.”
/Openredu # gem install bundler

Execute novamente o /Openredu # bundle install

  1. Criando as tabelas

Executando o rake task create para criar os bancos de dados.
/Openredu # rake db:create

Executando o rake task schema load para que todas as tabelas sejam criadas.
/Openredu # rake db:schema:load

Executando a rake task migrate para rodar alguma modificação ainda pendente.
/Openredu # rake db:migrate

Você pode executar a rake task migrate antes da rake task schema load caso você tenha problemas com seu load.

  1. Inicializando os Submodules

O OpenRedu ainda utiliza alguns plugins que estão como submodules do git (has_friends por exemplo), então precisamos executar dois comandos:

/Openredu # git submodule init
/Openredu # git submodule update

  1. Inserindo dados essenciais no BD

Executando a rake task all para que todos os dados necessários sejam inseridos no Banco de Dados.
/Openredu # rake bootstrap:all

Voltando a raiz do sistema.
/Openredu# cd…

  1. Iniciando o servidor de aplicação Openredu

Iniciando o MySQL
# /etc/init.d/mysql start

Iniciando o servidor de busca solr
OBS: A execução do servidor de busca necessita da instalação do JAVA, que pode ser verificada pelos comandos.

Instalando o Java
# apt-get install default-jre

Verificando as versões
# dpkg -l | grep jre
# java -version

Inciando o servidor de busca solr
# cd Openredu
/Openredu # rake sunspot:solr:start

Iniciando o servidor do OpenRedu:
/Openredu # rails s

Por fim, para acessar o Openredu via browser, o usuário deverá usar o endereço lógico do servidor (IP) + a porta utilizada pela aplicação Openredu (3000). Exemplo:

http://192.168.0.1:3000


Quais Requisitos para Instalação do OpenRedu ?
#2

@Yves Depois coloca lá no wiki, acho bom deixar isso bem visível.


#3

Maravilha @mvml, que alegria ver essa atualização do setup tão solicitada pela comunidade! Parabéns pela contribuição! :clap: :tada:

Gostaria de aproveitar o momento para discutir algumas práticas:

1) Se não me engano, a função do curl no setup é apenas baixar o script de instalação do RVM. Com a atualização do processo de instalação do RVM via ppa, possivelmente alguns(ou todos) desses pacotes libssl-dev libreadline6-dev zlib1g-dev curl libxslt-dev libxml2-dev gnupg2 não precisariam ser instalados. Dessa forma o item 1) ficaria apenas com as instruções de uso do sheel de root:

$ sudo -i

Ps: Você sabe dizer como a instalação por ppa trata as restrições de uso do RVM por usuário? Pergunto porquê na instalação via script executar os comandos como root pode dar bronca, já que a instalação é feita no $HOME do usuário que rodou o comando.

.
.
.

2) Para deixar o tutorial mais ‘clean’ poderíamos substituir essa item a) por um link, direcionando toda discussão de ajuda ao uso/instalação do RVM para um tópico especifico aqui no fórum.

.
.
.

3) Já que o uso de Gemsets é facultativo e na maioria das vezes o bundler é suficiente, poderíamos informar que esse item é opcional ou até mesmo remove-lo pra deixar o tutorial ‘clean’.

.
.
.

4) Apesar do tutorial ser explicito quanto a versão do S.O. utilizada (Ubuntu-Server 14.04), o comportamento do apt-get é instalar a versão padrão do pacote para o S.O. ou seja, ao executar o apt-get install mysql-client mysql-server libmysqlclient-dev em versões mais recentes (ex:. Ubuntu 16.04) resultará em erros como já foi apontado aqui no fórum [1] [2]. Acho que a melhor abordagem para o problema seria sugerir a instalação dos pacotes na versão 5.6 apt-get install mysql-client-5.6 mysql-server-5.6 libmysqlclient-dev-5.6 e informar que caso se deseje utilizar a versão 5.7 deve-se executar o comando SET GLOBAL sql_mode = 'TRADITIONAL'; no console do seu mysql.

Ps: Removi o sudo do inicio do comando, já que a instalação esta usando o shell de root. sudo -i

.
.
.

5) A instalação do Rails também pode ficar por conta do bundler para evitar conflito de versão, inclusive hoje estamos usando o 3.2.22.5.

.
.
.

6) Dei uma conferida nos submodules e me parece que essa dependência adicionada ao setup em 2011 foi substituída pela adoção da gem “redu-has_friends” em 2013. Como o .gitmodules hoje aponta para um repositório deprecated e um subdiretório inexistente, Creio que remover essa inicialização dos submodules não vai afetar o setup.

:two_men_holding_hands: #tmj


#4

@jctv Posso atualizar sim, mas já que a wiki é aberta para edição acho que o próprio @mvml deveria fazê-lo, deixando a contribuição registrada em seu nome.


#5

Acredito que podeiramos sentar e ver isso. Acredito que seja mais recomendável criar um usuário Openredu e fazer uma Integração com o APPARMOR, e definir acesso como root deste usuario Openredu


#6

É um caso a se testar.


#7

Meu objetivo foi para esse momento deixar o tutorial o mais detalhado possível. Pois várias pessoas que tentaram instalar tiveram dificuldade, inclusive alunos. Mas concordo com você, o tutorial precisar estar mais limpo.


#8

Olá @Yves, excelente contribuição. :slight_smile:


#9

Muito bom @mvml! parabéns pela contribuição :slight_smile::tada:


#10

Uma Maravilha!! Parabéns @mvml!


#11

@mvml, qual a configuração do servidor que vc esta usando?

Exclusivamente memória e disco alocado para esta instalação?


#12

Segui o tutorial na minha máquina e aconteceram dois problemas:

  1. No MySQL, ele reclamou do host no arquivo config/database.yml. Para solucionar, apenas comentei o host.
    Acredito que esse host seja para fazer a conexão com o Docker. No tutorial o docker não é instalado, então pode comentar essa linha do host.

  2. Ele da o seguinte erro no MongoDB: “Failed to connect to a master node at localhost:27017”. Para resolver, também comentei nas configurações do mongo a linha que tem o host. Essas configurações ficam em config/mongoid.yml. Acredito que esse host seja para fazer a conexão com o Docker. No tutorial o docker não é instalado, então pode comentar essa linha do host.

Lembrando que caso utilize o Docker, acredito que é necessário adicionar essa linha do host


#13

Obrigado pelas dicas @rafael_aquino !


#14

Ótima dica, passei um tempo apanhando com esse erro do mongo. No meu caso invés de comentar a linha eu coloquei localhost e passou.


#15

Seja muito bem vindo, @juliocesar.

Eu recomendo conheceres o Guia para novos desenvolvedores criado pela @hscs:
http://forum.openredu.org/t/guia-para-novos-desenvolvedores/383

E o guia de instalação atualizado pelo @mvml:
http://forum.openredu.org/t/tutorial-de-instalacao-atualizado/254


#16

Olá, boa noite, estava vendo exatamente isso, e notei que tem uma VM já pronta, isso já facilita a vida da pessoa, vou baixá-la e fazer todos os passos…


#17

Uma dúvida/sugestão. Como citado pelo @juliocesar de que já há uma VM pronta, não seria interessante criar um “docker” ou uma VM “oficial” para ser usada? Isso poderia facilitar quem planeja fazer deploy na Amazon, por exemplo. :slight_smile:


#18

Olá Yeltin, temos buscado dockerizar sim. @hscs tá trabalhando nessa atividade. Assim que terminar tenho certeza que ficará melhor para as contribuições no código.


#19

boa noite! você trabalha na parte de instalação do openredu ?


#20

@wanderson75 acho que você já conseguiu, mas tente segue esse tutorial: Setup para desenvolvimento com Docker, ele vai ser atualizado com alguns informações quanto a mudança da ambientação de para produção e desenvolvimento e vice-versa, já que esse tutorial é somente para desenvolvimento. O branch master já está dockerizado, podes encontrar as modificacoes feitas aqui https://github.com/Openredu/Openredu/pull/226.