Mudanças entre as edições de "Implantação Teamwork e Hubot para SEDUC"
(Criou página com '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 ex...') |
|||
(21 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 4: | Linha 4: | ||
− | == | + | = 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+ ) | ||
− | * é preciso instalar o '' | + | === Software === |
+ | * Node 4.7.3 | ||
+ | * MongoDB | ||
+ | * pm2 | ||
+ | |||
+ | = Teamwork = | ||
+ | == Gerando pacote == | ||
+ | * é preciso instalar o '''git na máquina do desenvolvedor''', [https://git-scm.com/downloads Git - downloads]. | ||
* é preciso instalar o '''meteor na máquina do desenvolvedor''', para que possamos fazer o build do projeto ( [https://gitlab.mstech.com.br/teamwork/custom/tree/develop Repośitório Teamwork]). | * é preciso instalar o '''meteor na máquina do desenvolvedor''', para que possamos fazer o build do projeto ( [https://gitlab.mstech.com.br/teamwork/custom/tree/develop Repośitório Teamwork]). | ||
* Pegar o arquivos do repositório: [https://gitlab.mstech.com.br/teamwork/custom/tree/develop git@gitlab.mstech.com.br:teamwork/custom.git] | * Pegar o arquivos do repositório: [https://gitlab.mstech.com.br/teamwork/custom/tree/develop git@gitlab.mstech.com.br:teamwork/custom.git] | ||
* executa em um cli( terminal ), '''na raiz do projeto''', o comando de build de pacote: | * executa em um cli( terminal ), '''na raiz do projeto''', o comando de build de pacote: | ||
'''''meteor build ./ --server-only''''' | '''''meteor build ./ --server-only''''' | ||
+ | * será gerado um pacote '''custom.tar.gz''' que será colocado no '''servidor'''. | ||
+ | |||
+ | == Configurando layout == | ||
+ | |||
+ | * É preciso fazer manualmente a alterações em adminstrativo/layout | ||
+ | |||
+ | Segue o parametros e cores: | ||
+ | |||
+ | === COLORS === | ||
+ | content Background color : #FFFFFF | ||
+ | Primary Background Color : #0F7043 | ||
+ | Primary Font Color : #444444 | ||
+ | |||
+ | Primary Action Color : #2F9E68 | ||
+ | Secondary Background Color : #F4F4F4 | ||
+ | Secondary Font Color : #7F7F7F | ||
+ | Secondary Action Color : #FFFFFF | ||
+ | Component Color : #EAEAEA | ||
+ | Success Color : #35AC19 | ||
+ | Pending Color : #FCB316 | ||
+ | Error Color : #D30230 | ||
+ | Selection Color : #FF0000 | ||
+ | theme-color-attention-color : #9C27B0 | ||
+ | Secondary Action Color : #FFFFFF | ||
+ | Secondary Action Color : #FFFFFF | ||
+ | |||
+ | === COLORS(MINOR) === | ||
+ | Custom Scrollbar Color : #@transparent-darker ou #7F7F7F | ||
+ | |||
+ | |||
+ | = Hubot = | ||
+ | == Gerando pacote == | ||
+ | * é preciso instalar o node e npm na máquina do desenvolvedor, [https://nodejs.org/en/download/releases/ NodeJS Download previous releases]. | ||
+ | * Pegar o arquivos do repositório: [https://gitlab.mstech.com.br/teamwork/hubot/tree/develop git@gitlab.mstech.com.br:teamwork/custom.git]. | ||
+ | * executar: '''npm i''' | ||
+ | * gerar um zip '''com toda a pasta raiz''' e colocar no servidor. | ||
+ | |||
+ | = 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 [https://docs.mongodb.com/manual/installation/ instruções para cada sistema].Se seguido corretamento link anterior, o mongo será configurado para iniciar sozinho. | ||
+ | |||
+ | === Configuração de Daemon === | ||
+ | É preciso configurar o serviços para que aceite a configuração de '''replSet''' para [[permitir múltiplas instâncias do serviços]], com o proposito de log. | ||
+ | |||
+ | Assim é preciso adicionar no arquivo '''/etc/mongod.config''' as configurações abaixo: | ||
+ | |||
+ | Habilita replicas. | ||
+ | replication: | ||
+ | replSetName: rs0 | ||
+ | oplogSizeMB: 128 | ||
+ | |||
+ | Habilita máximo de ram que o mongo pode usar para cache. | ||
+ | storage: | ||
+ | wiredTiger: | ||
+ | engineConfig: | ||
+ | cacheSizeGB: 2 | ||
+ | |||
+ | Após isso será é preciso executar o '''mongod'''. | ||
+ | |||
+ | Caso tenha sido executa com sucesso, é preciso habilitar internamente as opções de replica com os comandos: | ||
+ | mongo rocketchat --eval "rs.initiate()" | ||
+ | mongo rocketchat --eval "rs.add('localhost:27017')" | ||
+ | |||
+ | ou: | ||
+ | mongo rocketchat --eval "rs.initiate({ _id: 'rs0', members: [ { _id: 0, host: 'localhost:27017' } ]})" | ||
+ | |||
+ | e habilitar modo slave | ||
+ | mongo rocketchat --eval "rs.slaveOk()" | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Agora vamos configurar o banco para gerar os indexes para agilizar a busca. | ||
+ | |||
+ | É preciso pegar o script '''[https://gitlab.mstech.com.br/teamwork/custom/blob/develop/.scripts/mongo-custom-index.js mongo-custom-index.js]''' na pasta [https://gitlab.mstech.com.br/teamwork/custom/tree/develop/.scripts '''.scripts''' no repositório]( pode estar oculta localmente ). | ||
+ | |||
+ | Para executar faça o seguinte: | ||
+ | * ir na pasta com o script [https://gitlab.mstech.com.br/teamwork/custom/blob/develop/.scripts/mongo-custom-index.js 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 == | ||
+ | === Extrair pacote === | ||
+ | Extrair pacote '''custom.tar.gz''' dentro da pasta '''/opt''' | ||
+ | |||
+ | === Instalar dependências === | ||
+ | Vá para a pasta em que o serviço foi colocado, depois acesso a pasta '''programs/server/''', é preciso fazer as instalação das dependências usando: | ||
+ | '''npm i''' | ||
+ | |||
+ | === Validar pacote === | ||
+ | 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''' | ||
+ | |||
+ | === Configurar serviço automatico === | ||
+ | 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": "8G", | ||
+ | "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": "http://comunicador.seduc.rs.gov.br", | ||
+ | "PORT": "3000" | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | Como é preciso fazer uso de vários núcleos de processamento, e devido a natureza dos serviços em '''nodejs''' se single thread, | ||
+ | |||
+ | é preciso que seja feito um '''json''' contendo '''N-1''' instâncias do serviço, onde '''N''' é o número de cpu. | ||
+ | |||
+ | Segue o modelo: | ||
+ | { | ||
+ | "apps":[ | ||
+ | { | ||
+ | "name": "teamwork", | ||
+ | "max_memory_restart": "2G", | ||
+ | "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": "http://comunicador.seduc.rs.gov.br", | ||
+ | "PORT": "3000" | ||
+ | } | ||
+ | }, | ||
+ | { | ||
+ | "name": "teamwork-'''N'''", | ||
+ | "max_memory_restart": "2G", | ||
+ | "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": "300'''N'''", | ||
+ | "env": { | ||
+ | "MONGO_URL": "mongodb://localhost:27017/rocketchat", | ||
+ | "MONGO_OPLOG_URL": "mongodb://localhost:27017/local", | ||
+ | "ROOT_URL": "http://comunicador.seduc.rs.gov.br", | ||
+ | "PORT": "3000" | ||
+ | } | ||
+ | } | ||
+ | ] | ||
+ | } | ||
+ | |||
+ | |||
+ | '''Atenção aos itens [['name' e 'port']], que precisam ser[[ únicos ]]''' | ||
+ | |||
+ | |||
+ | 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''' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | Caso já exista algum conjunto de serviços configurados é preciso remover antes: | ||
+ | '''pm2 unstartup''' | ||
+ | E depois proceder com os processos anteriores. | ||
+ | |||
+ | = Configurações do sistema = | ||
+ | Caso haja algum problema em que o '''o primeiro login funciona e o restante não''', será preciso habilitar na opções administrativas na parte do LDAP. | ||
+ | |||
+ | O item de '''Mescar usuários já existentes''' para permitir o uso de '''username e email''' para login. | ||
+ | |||
+ | |||
+ | = Múltiplas instâncias = | ||
+ | |||
+ | Após ter configurado como descrito acima ambo os serviços do '''mongodb e teamwork''', usando o '''pm2'''. | ||
+ | |||
+ | É sugerido o seguinte passos para aumentar as instâncias: | ||
+ | |||
+ | |||
+ | * Não deve estar rodando o '''mongod'''. | ||
+ | * pm2 kill, para matar tudo que está rodando. | ||
+ | * pm2 start /opt/teamwork/<json> | ||
+ | * service mongod start | ||
+ | * service httpd restart | ||
+ | |||
+ | |||
+ | = Problemas possíveis = | ||
+ | == Serviços fora do ar == | ||
+ | * É possível que o servidor apache não tenha renovado os arquivos alterados. | ||
+ | == Erro ao iniciar serviço == | ||
+ | * É possível que a '''rota das pastas''' estejam erradas. | ||
+ | * É preciso executar o '''main.js''', no '''pm2''' ( atualmente é usando um arquivo de configuração '''pm2.json''' ) | ||
+ | * É possível que '''falte dependências [[do hubot]]''' . | ||
− | + | = Referências = | |
+ | * [https://nodejs.org/en/download/releases/ NodeJS Download previous releases] | ||
* [https://gitlab.mstech.com.br/teamwork/hubot/tree/develop Repositório Hubot] | * [https://gitlab.mstech.com.br/teamwork/hubot/tree/develop Repositório Hubot] | ||
* [https://gitlab.mstech.com.br/teamwork/custom/tree/develop Repośitório Teamwork] | * [https://gitlab.mstech.com.br/teamwork/custom/tree/develop Repośitório Teamwork] | ||
* [https://gitlab.mstech.com.br/teamwork/custom/blob/develop/MSTECH.md Documentação de instalação, configuração, pré-requisitos, build e deploy do Teamwork] | * [https://gitlab.mstech.com.br/teamwork/custom/blob/develop/MSTECH.md Documentação de instalação, configuração, pré-requisitos, build e deploy do Teamwork] | ||
+ | * [https://rocket.chat/docs/ Rocket.Chat Docs] | ||
+ | * https://rocket.chat/docs/installation/minimum-requirements Minimum Requirements for Server Deployment] | ||
+ | * [https://docs.mongodb.com/manual/tutorial/write-scripts-for-the-mongo-shell/#execute-a-javascript-file Executando script no mongodb] | ||
+ | * [https://rocket.chat/docs/installation/manual-installation/multiple-instances-to-improve-performance/ Rodando múltiplas instâncias do rocket.chat] | ||
+ | * [https://docs.mongodb.com/manual/reference/configuration-options/ Configurando mongodb no linux] |
Edição atual tal como às 12h22min de 21 de junho 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.
Índice
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
- é preciso instalar o git na máquina do desenvolvedor, Git - downloads.
- é preciso instalar o meteor na máquina do desenvolvedor, para que possamos fazer o build do projeto ( Repośitório Teamwork).
- Pegar o arquivos do repositório: git@gitlab.mstech.com.br:teamwork/custom.git
- executa em um cli( terminal ), na raiz do projeto, o comando de build de pacote:
meteor build ./ --server-only
- será gerado um pacote custom.tar.gz que será colocado no servidor.
Configurando layout
- É preciso fazer manualmente a alterações em adminstrativo/layout
Segue o parametros e cores:
COLORS
content Background color : #FFFFFF Primary Background Color : #0F7043 Primary Font Color : #444444 Primary Action Color : #2F9E68 Secondary Background Color : #F4F4F4 Secondary Font Color : #7F7F7F Secondary Action Color : #FFFFFF Component Color : #EAEAEA Success Color : #35AC19 Pending Color : #FCB316 Error Color : #D30230 Selection Color : #FF0000 theme-color-attention-color : #9C27B0 Secondary Action Color : #FFFFFF Secondary Action Color : #FFFFFF
COLORS(MINOR)
Custom Scrollbar Color : #@transparent-darker ou #7F7F7F
Hubot
Gerando pacote
- é preciso instalar o node e npm na máquina do desenvolvedor, NodeJS Download previous releases.
- Pegar o arquivos do repositório: git@gitlab.mstech.com.br:teamwork/custom.git.
- executar: npm i
- gerar um zip com toda a pasta raiz e colocar no servidor.
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.
Configuração de Daemon
É preciso configurar o serviços para que aceite a configuração de replSet para permitir múltiplas instâncias do serviços, com o proposito de log.
Assim é preciso adicionar no arquivo /etc/mongod.config as configurações abaixo:
Habilita replicas.
replication: replSetName: rs0 oplogSizeMB: 128
Habilita máximo de ram que o mongo pode usar para cache.
storage: wiredTiger: engineConfig: cacheSizeGB: 2
Após isso será é preciso executar o mongod.
Caso tenha sido executa com sucesso, é preciso habilitar internamente as opções de replica com os comandos:
mongo rocketchat --eval "rs.initiate()" mongo rocketchat --eval "rs.add('localhost:27017')"
ou:
mongo rocketchat --eval "rs.initiate({ _id: 'rs0', members: [ { _id: 0, host: 'localhost:27017' } ]})"
e habilitar modo slave
mongo rocketchat --eval "rs.slaveOk()"
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
Extrair pacote
Extrair pacote custom.tar.gz dentro da pasta /opt
Instalar dependências
Vá para a pasta em que o serviço foi colocado, depois acesso a pasta programs/server/, é preciso fazer as instalação das dependências usando:
npm i
Validar pacote
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
Configurar serviço automatico
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": "8G", "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": "http://comunicador.seduc.rs.gov.br", "PORT": "3000" } } ] }
Como é preciso fazer uso de vários núcleos de processamento, e devido a natureza dos serviços em nodejs se single thread,
é preciso que seja feito um json contendo N-1 instâncias do serviço, onde N é o número de cpu.
Segue o modelo:
{ "apps":[ { "name": "teamwork", "max_memory_restart": "2G", "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": "http://comunicador.seduc.rs.gov.br", "PORT": "3000" } }, { "name": "teamwork-N", "max_memory_restart": "2G", "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": "300N", "env": { "MONGO_URL": "mongodb://localhost:27017/rocketchat", "MONGO_OPLOG_URL": "mongodb://localhost:27017/local", "ROOT_URL": "http://comunicador.seduc.rs.gov.br", "PORT": "3000" } } ] }
Atenção aos itens 'name' e 'port', que precisam ser únicos
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
Caso já exista algum conjunto de serviços configurados é preciso remover antes:
pm2 unstartup
E depois proceder com os processos anteriores.
Configurações do sistema
Caso haja algum problema em que o o primeiro login funciona e o restante não, será preciso habilitar na opções administrativas na parte do LDAP.
O item de Mescar usuários já existentes para permitir o uso de username e email para login.
Múltiplas instâncias
Após ter configurado como descrito acima ambo os serviços do mongodb e teamwork, usando o pm2.
É sugerido o seguinte passos para aumentar as instâncias:
- Não deve estar rodando o mongod.
- pm2 kill, para matar tudo que está rodando.
- pm2 start /opt/teamwork/<json>
- service mongod start
- service httpd restart
Problemas possíveis
Serviços fora do ar
- É possível que o servidor apache não tenha renovado os arquivos alterados.
Erro ao iniciar serviço
- É possível que a rota das pastas estejam erradas.
- É preciso executar o main.js, no pm2 ( atualmente é usando um arquivo de configuração pm2.json )
- É possível que falte dependências do hubot .
Referências
- NodeJS Download previous releases
- Repositório Hubot
- Repośitório Teamwork
- Documentação de instalação, configuração, pré-requisitos, build e deploy do Teamwork
- Rocket.Chat Docs
- https://rocket.chat/docs/installation/minimum-requirements Minimum Requirements for Server Deployment]
- Executando script no mongodb
- Rodando múltiplas instâncias do rocket.chat
- Configurando mongodb no linux