Mudanças entre as edições de "Implantação Teamwork e Hubot para SEDUC"

De MSTECH wiki
Ir para: navegação, pesquisa
(Configuração do serviços)
(Configuração do serviços)
Linha 44: Linha 44:
  
  
[[Os passos abaixo precisam ser '''executados como root!''']]
+
'''[[Os passos abaixo precisam ser executados como root!]]'''
  
  

Edição das 14h53min de 30 de março de 2017

Nessa página será explicado o processo de implantação do serviço de customização do teamwork e hubot para a SEDUC.

Nas referências estão todos os dados que serão explicados nessa tópico.


Servidor

Configuração de hardware e software para execução dos serviços.

Requisitos mínimos

Hardware

  • CPU 1.7 GHz, 6 core, 4GB Ram, 500GB HD
  • SO: Ubuntu 14.04 LTS ( CentOS 6.6+ )

Software

  • Node 4.7.3
  • MongoDB
  • pm2

Teamwork

Gerando pacote

 meteor build ./ --server-only
  • será gerado um pacote custom.tar.gz que será colocado no servidor.

Hubot

Gerando pacote


Configuração do serviços

A configuração será feita através do pm2, serviço de monitoramento e gerenciamento de serviços e processos, além de configurar o auto-start dos serviços de forma automática.

Aqui é preciso que esteja instalado o seguinte itens:node, npm, mongodb, pm2.

É preciso que os passos sejam executado seguindo os tópicos seguintes.

É fortemente sugerido que os serviços e suas pastas sejam criados na pasta opt ( para evitar problemas com atualização de sistema ).


Os passos abaixo precisam ser executados como root!


MongoDB

É preciso instalar o mongodb no sistema seguinto as instruções para cada sistema.Se seguido corretamento link anterior, o mongo será configurado para iniciar sozinho.

Agora vamos configurar o banco para gerar os indexes para agilizar a busca.

É preciso pegar o script mongo-custom-index.js na pasta .scripts no repositório( pode estar oculta localmente ).

Para executar faça o seguinte:

  • ir na pasta com o script mongo-custom-index.js.
  • executar verificar se os scripts estão olhando para o banco nomeado rocketchat:
mongo localhost:27017/rocketchat mongo-custom-index.js


Teamwork

Vá para a pasta em que o serviço foi colocado, é preciso fazer as instalação das dependências usando:

npm i


Agora é preciso executar o serviço pm2 start main.js --name teamwork, para validar se o serviço esta rodando execute o comando:

pm2 m

Agora será possível ver os logs do serviço e se está executando corretamente.Após iniciar o serviço é preciso acessar e cadastra um admin.


O primeiro login do teamwork sempre será o admin, e daí em diante será possível fazer o resto das configurações.


Agora é preciso parar o serviço com :

pm2 stop teamwork

vamos criar um arquivo teamwork.json na pasta do projeto para configurar o serviço e executa-lo no pm2.


Segue o modelo:

{
 "apps":[
  {
   "name": "teamwork",
   "max_memory_restart": "8192M",
   "log_date_format": "YYYY-MM-DD HH:mm:ss SSS",
   "script": "/opt/teamwork/main.js",
   "out_file": "/var/log/teamwork/app.log",
   "error_file": "/var/log/teamwork/err.log",
   "port": "3000",
   "env": {
    "MONGO_URL": "mongodb://localhost:27017/rocketchat",
    "MONGO_OPLOG_URL": "mongodb://localhost:27017/local",
    "ROOT_URL": "https://comunicador.seduc.rs.gov.br", 
    "PORT": "3000"
   }
  }
 ]
}


Agora execute comando:

pm2 start teamwork.json --watch


Hubot

Vá para a pasta em que o serviço foi colocado.

É preciso instalar as dependências globais do hubot, com o seguinte comando:

npm i -g coffee-script


Será preciso adicionar o caminho correto dentro do arquivo bin/hubot na linha com exec node_modules/.. para exec /opt/<pasta>/node_modules/..

vamos criar um arquivo hubot.json na pasta do projeto para configurar o serviço e executa-lo no pm2.


Segue o modelo:

{
 "apps":[ 
  {
   "name": "bot",
   "max_memory_restart": "2048M",
   "log_date_format": "YYYY-MM-DD HH:mm:ss SSS",
   "script": "/opt/rockbot/bin/hubot",
   "out_file": "/var/log/bot/app.log",
   "error_file": "/var/log/bot/err.log",
   "port": "1337"
  }
 ]
}

Agora execute comando:

pm2 start hubot.json --watch


pm2

Essa parte deverá ser executada somente quando todos os serviços estiverem rodando corretamente e em paralelo !

Agora que os arquivos .json foram criados e executados podemos memorizar esses processos e suas ordem com o comando:

pm2 save


Isso irá salver a lista de processos, e agora vamos configurar o sistema para executar isso todas vez que a máquina for iniciada.

pm2 startup


Após isso reinicie a máquina e execute o comando abaixo para validar se os serviços estão rodando corretamente:

pm2 m ou pm2 status

Referências