1. INTRODUÇÃO
1.1. Propósito
Este Manual tem a finalidade de fornecer as orientações necessárias para efetuar a instalação do Citsmart-GRP no ambiente Linux.
1.2. Citsmart GRP
O Citsmart GRP é uma plataforma de gerenciamento integrado inteligente, que visa unificar informações dos departamentos em diversos órgãos em âmbito federal. O nome Citsmart GRP vem da junção dos acrônimos Central IT e Government Resource Planing (do inglês) com propósito semelhante aos sistemas ERP (Enterprise Resource Planing) porém com foco estritamente governamental. Uma tradução livre para o nome em inglês GRP seria Sistema Integrado de Gerenciamento Governamental.
Este sistema consiste no módulo de gerenciamento de bens patrimoniais, possibilitando gerenciar com eficiência aquisições, numerações de patrimônios, transferências, detentores de bens, desfazimento e demais operações inerentes.
1.3. Visão Geral
Este documento está organizado em 5 seções. Cada seção delimita um aspecto da instalação do sistema que deve ser considerado pela equipe no momento de instalação:
- Seção 1: Descreve o contexto deste documento;
- Seção 2: Descreve os requisitos para instalação do software;
- Seção 3: Descreve o processo de instalação do software;
- Seção 4: Descreve a premissa sobre a primeira instalação do software.
2. REQUISITOS DE INSTALAÇÃO
2.1. Requisitos de Hardware
Hardware |
Requisitos (Mínimos) |
Processador |
Intel Core i5, 64 bits |
Memória |
Quantidade mínima de 8 GB |
Espaço em disco |
Quantidade mínima de 10 GB |
Resolução de vídeo |
Resolução mínima de 1280 x 720 px (pixels) |
2.2. Requisitos de Software
Sistema Operacional |
Versão |
Service Pack ou outra restrição |
|
CentOS |
6.3 ou superior |
Arquitetura de 64bits |
|
Banco de Dados |
Versão |
||
PostgreSQL |
9.1 ou superior |
||
Servidor de Aplicação (WEB) |
Versão |
||
JBoss |
AS 7.1.1 |
||
Navegador Web |
Versão |
||
Internet Explorer |
10 ou superior |
||
Mozilla Firefox |
24 ou superior |
||
Google Chrome |
30 ou superior |
||
Biblioteca/Componente |
Versão |
Onde pode ser obtido? |
|
JDBC Postgresql Driver |
4 |
||
2.3. Pré-requisitos do ambiente
2.3.1. Banco de Dados
O Sistema Citsmart GRP foi projetado para utilizar o banco de dados PostgreSQL 9.3. Para que o sistema possa inicializar com sucesso é preciso que exista previamente instalado no sistema operacional o PostgreSQL 9.3, o qual pode ser obtido no site oficial (http://www.postgresql.org/download/).
Após instalado é preciso que seja criado a base de dados da aplicação que deve ser nomeada por citgrp. Isto pode ser feito através da linha de comandos usando o programa createdb localizado na pasta bin do postgres:
$ sudo su
# su - postgres
$ createdb citgrp
Devido ao software ser desenvolvido na linguagem Java, é necessário efetuar a instalação do JRE (Java Runtime Environment) na versão 1.7.0_71 ou superior.
Obs.: O software foi testado na versão 1.7 do Java. Atualizar o Java para versão 1.8 pode gerar possíveis incompatibilidades ainda não testadas.
2.3.3. Configuração dos Artefatos
Não é necessário configurar nenhum artefato.
2.3.4. Configuração do Servidor de Aplicação
2.3.4.1. Instalação do servidor de aplicações
O Sistema Citsmart GRP é executado sobre o servidor de aplicações JBoss AS 7.1.1. Este pode ser baixado no site oficial (http://jbossas.jboss.org/downloads) e após instalado deve ser configurado os arquivos:
- conf;
- xml;
- Module do driver JDBC de conexões ao banco de dados.
Tais arquivos serão descritos nos tópicos seguintes.
2.3.4.2. Configuração do standalone.conf
No arquivo standalone.conf do diretório /bin do JBoss, abaixo da linha if [ "x$JAVA_OPTS" = "x" ]; then (perto da linha 49), substituir o que está entre esta linha e o “else” pelo valor da variável de ambiente JAVA_OPTS mostrado abaixo:
JAVA_OPTS="-Xms1024m -Xmx1024m -Xss32m -XX:MaxPermSize=1024m -XX:+UseParallelGC -XX:+UseNUMA -XX:+HeapDumpOnOutOfMemoryError -XX:ParallelGCThreads=4"
JAVA_OPTS="$JAVA_OPTS -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.modules.system.pkgs=$JBOSS_MODULES_SYSTEM_PKGS -Djava.awt.headless=true"
JAVA_OPTS="$JAVA_OPTS -Djboss.server.default.config=standalone.xml"
Obs.: Caso queira utilizar o debug remoto, no arquivo standalone.conf do diretório /bin descomente a linha:
#JAVA_OPTS="$JAVA_OPTS –Xrun
jdwp:transport=dt_socket,address=8787,server=y,suspend=n"
2.3.4.3. Configuração do standalone.xml
No arquivo standalone.xml (/standalone/configuration/standalone.xml) adicione entre </extensions> e <management> o conteúdo a seguir:
|
Para evitar Timeout ao subir a Aplicação, no arquivo standalone.xml (/standalone/configuration/standalone.xml) altere a linha de deployment-scanner conforme mostrado abaixo:
<deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" deployment-timeout="1000"/>
Habilitação da Compressão de Arquivos
Adicione na seção system-properties os parâmetros abaixo para a compressão de todos os arquivos nos formatos:
- Texto: javascript, css, html, xml e json
- Imagens: png, jpg, jpeg e gif
|
Configuração do Datasource
Configure o datasource que a aplicação utilizará para conexão com o banco de dados, conforme exemplos mostrados abaixo.
No exemplo apresentado abaixo, onde estiver ${} substitua pelos valores respectivos. Lembrando que deve especifica um datasource para cada módulo .war.
- cit-portal (exemplo abaixo)
- cit-adm-materiais
- cit-alcada
- cit-almoxarifado
- cit-contratos
- cit-esi
- cit-esi-listener
- citgrp-patrimonio
- cit-tabelas-corp
|
Obs.: Caso a infraestrutura seja em ambiente distribuído e permita implantação do JBoss XA configure os dataSources de acordo com o exemplo abaixo:
|
Configurando conexão segura HTTPS
No tópico 3.2 será mencionado sobre o serviço central de autenticação CAS. O CAS provê a autenticação única para os módulos (Single Sign On) e autorização para os módulos do Citsmart-GRP. Para alcançar esse objetivo é preciso que seja habilitado o conector de conexão segura HTTPS
no JBoss. É preciso que seja configurado um certificado digital válido e confiável nesta configuração. Um certificado digital pode ser adquirido junto a uma entidade certificadora (mais recomendado) ou ser gerado auto-assinado (menos recomendado) e configudado conforme instruções abaixo:
Adicione no standalone.xml dentro do grupo do subsystem xmlns="urn:jboss:domain:web:1.1" logo abaixo do conector HTTP já existente o seguinte trecho:
<connector name="https" protocol="HTTP/1.1" scheme="https" socket-binding="https" secure="true"> <ssl name="https" key-alias="<NOME_DO_KEYSTORE>" password="<SENHA_DO_KEYSTORE>" certificate-key-file="<LOCALIZAÇÃO_DO_ARQUIVO_KEYSTORE>"/> </connector>
|
Neste trecho acima os seguintes campos devem ser alterados seus valores com os valores apropriados:
- key-alias="<NOME_DO_KEYSTORE>"
- password="<SENHA_DO_KEYSTORE>"
- certificate-key-file="<LOCALIZAÇÃO_DO_ARQUIVO_KEYSTORE>"
Obs.: Para os casos que for escolhido um certificado auto-assinado é importante salientar que o campo "nome" ("first and last name") a ser gerado no keystore deve ser exatamente igual ao IP ou a URL do domínio do servidor onde está o Jboss.
2.3.4.4. Configurando module do driver de conexão JDBC
- Baixe o jar do postgres versão 9.3 no seguinte link: https://jdbc.postgresql.org/download/postgresql-9.3-1103.jdbc41.jar
- Navegue até a pasta /jboss-as-7.1.1.Final/modules e crie a seguinte estrutura de diretórios: org/postgres/main dentro desta pasta. A estrutura de diretórios no final será: /jboss-as-7.1.1.Final/modules/org/postgres/main
- Adicione o jar do postgres recém baixado na pasta main citada no sub-tópico anterior.
- Neste mesmo diretório /jboss-as-7.1.1.Final/modules/org/postgres/main crie também um arquivo com a extensão .xml nomeado xml e adicione nele o seguinte conteúdo:
|
Note que é de extrema importância que o nome do arquivo jar no campo do arquivo modules.xml:
<resource-root path="postgresql-9.3-1103-jdbc41.jar"/>
Seja exatamente igual o nome do jar baixado do site do postgres.
2.3.4.5. Configurando modules para persistência no banco de dados
- Faça o download do arquivo hibernate-jpa-2.1-api-1.0.0.Final.jar no seguinte link:
http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.1-api/1.0.0.Final
- Navegue até a pasta /jboss-as-7.1.1.Final/modules e crie a seguinte estrutura de diretórios: /javax/persistence/api/main dentro desta pasta. A estrutura de diretórios no final será:
/jboss-as-7.1.1.Final/modules/javax/persistence/api/main
- Adicione o jar do hibernate-jpa recém baixado na pasta main citada no sub-tópico anterior.
- Neste mesmo diretório /jboss-as-7.1.1.Final/modules/javax/persistence/api/main crie também um arquivo com a extensão .xml nomeado xml e adicione nele o seguinte conteúdo:
|
Note que é de extrema importância que o nome do arquivo jar no campo do arquivo modules.xml seja exatamente igual o nome acima citado.
<resource-root path="hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
Outra dependência muito importante de ser adicionada é o javassist-3.18.1-GA.jar, o processo de configuração é semelhante ao citado neste mesmo tópico alterando apenas o diretório e o nome do artefato. Para realizar esta modificação faça:
- Faça o download do arquivo javassist-3.18.1-GA.jar no seguinte link:
http://central.maven.org/maven2/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar
- Navegue até a pasta /jboss-as-7.1.1.Final/modules e crie a seguinte estrutura de diretórios: /org/javassist/main dentro desta pasta. A estrutura de diretórios no final será:
/jboss-as-7.1.1.Final/modules/org/javassist/main
- Adicione o jar do javassist recém baixado na pasta main citada no sub-tópico anterior.
- Neste mesmo diretório /jboss-as-7.1.1.Final/modules/org/javassist/main crie também um arquivo com a extensão .xml nomeado xml e adicione nele o seguinte conteúdo:
|
Note que é de extrema importância que o nome do arquivo jar no campo do arquivo modules.xml seja exatamente igual o nome acima citado.
<resource-root path="javassist-3.18.1-GA.jar"/>
2.3.4.6. Configuração de modules
Segue passo a passo de como configurar o modulo no JBoss AS 7.1.1 para configurações do sistema:
- Criar a estrutura de diretórios /br/com/citsmart-grp/main dentro da pasta modules na raiz do JBoss; e
- Dentro desta pasta criar o arquivo citapp.properties e o arquivo module.xml, conforme abaixo:
ctiapp.properties
|
modules.xml
|
2.3.4.7. Inicialização do JBoss AS 7.1.1 no Linux
Segue passo a passo de como configurar o JBoss AS 7.1.1 para subir na inicialização do Sistema Operacional (Linux):
1. Criar arquivo de inicialização do JBoss. Segue o comando:
# vi /usr/local/jboss-as-7.1.1.Final/bin/startJboss7
2. Inserir o conteúdo abaixo:
rm -r /usr/local/jboss-as-7.1.1.Final/standalone/log
rm -r /usr/local/jboss-as-7.1.1.Final/standalone/tmp
JBOSS_HOME=/usr/local/jboss-as-7.1.1.Final/
JAVA_HOME=/usr/java/jdk1.7.0_71/jre
JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true -Xms512m -Xmx512m -XX:MaxPermSize=1024m"
export JAVA_OPTS JBOSS_HOME
sh $JBOSS_HOME/bin/standalone.sh -Djboss.bind.address=0.0.0.0 -Djboss.bind.address.management.0.0.0.0 &
3. Tornar o arquivo executável. Segue o comando:
# chmod +x /usr/local/jboss-as-7.1.1.Final/bin/startJboss7
4. Colocar o arquivo para subir na inicialização. Segue o comando:
# vi /etc/rc.local
5. Inserir a linha abaixo:
sh /usr/local/jboss-as-7.1.1.Final/bin/startJboss7
6. O arquivo de inicialização do servidor web fica no seguinte caminho:
/usr/local/jboss-as-7.1.1.Final/bin/standalone.sh
7. Para iniciar o JBoss execute o seguinte comando como super-usuário:
sh startJboss7
8. Para parar o Servidor, execute o comando dentro da pasta bin:
/jboss-cli.sh --connect command=:shutdown
2.3.5. Fontes para Relatórios
É necessário realizar a instalação de fontes Microsoft para os relatórios. E uma das formas de realizar essa instalação, está especificada no link: http://corefonts.sourceforge.net/
3. INSTALAÇÃO
3.1. Implantação no Servidor de Aplicação (WEB)
Realize o download do arquivo necessário para implantação no Servidor de Aplicação JBoss AS 7, conforme os passos descritos abaixo:
- O arquivo estará disponibilizado na página do Software Público (http://www.softwarepublico.gov.br/ListaSoftwares);
- Acesse a página e realize o download do arquivo necessário;
- O arquivo será salvo no local de download padrão no computador;
- Após conclusão do download, abra a pasta na qual o arquivo está armazenado e descompacte o mesmo;
- Copie os arquivos descompactados na extensão .war para pasta deployments do JBoss (\jboss-as-7.1.1.Final\standalone\deployments).
3.2. Implantando serviço central de autenticação (CAS)
Os módulos GRP utilizam o projeto Central Authentication Service (CAS) para autenticar os usuáiros em um serviço centralizado (Single Sign-on). O site do projeto pode ser acessado via: http://jasig.github.io/cas/4.0.x/index.html. A versão utilizada no projeto Citsmart-GRP foi a 3.5.2.
O projeto CAS é uma aplicação web que é implantada no servidor juntamente com os módulos Citsmart-GRP. Esta aplicação web foi personalizada para atender as configurações do projeto GRP usando o cas-overlay-project (https://github.com/UniconLabs/simple-cas-overlay-template).
Configure o artefato "cas.properties" localizado dentro do arquivo cas-db-1.0.0-RELEASE.war na pasta "\WEB-INF"\cas.properties linhas 22, 32, 33, 34, 35, respectivamente:
server.name=https://localhost:8443
cas.database.jdbc.driver=org.postgresql.Driver
cas.database.jdbc.url=jdbc:postgresql://localhost:5432/citgrp
cas.database.jdbc.user=postgres
cas.database.jdbc.password=postgres
Levando em consideração que esta configuração é para a mesma base de dados que está configurada no datasource do JBoss.
3.3. Passo a Passo para Instalação do Citsmart-GRP
O sistema Citsmart-GRP foi projetado para criar automaticamente as tabelas no banco de dados assim que é iniciado. Entretanto, especificamente nesta primeira versão, o software não cria automaticamente os dados necessários para seu próprio funcionamento, nestas tabelas.
Após a criação da base de dados explicada no tópico 2.3.1 e a inicialização do servidor de aplicações JBoss explicado no tópico 2.3.4.5 o software Citsmart-GRP irá conectar na base de dados e iniciar o procedimento automatizado de criação das tabelas.
Após criado as tabelas é preciso que seja executado o scritp SQL data.sql. Este arquivo é entregue na pasta compactada da aplicação. Isto pode ser feito executando o seguinte comando no terminal:
$sudo psql –U postgres –W –d citgrp –f <diretorio>/data.sql
Obs.: O valor <diretorio> deve ser alterado para a real localização do arquivo em seu ambiente.
Reinicie o servidor JBoss com o comando de parada e inicialização do JBoss informado no final do tópico: 2.3.4.5.
Após implantação no Servidor de Aplicação JBoss e inicialização do mesmo, abra o navegador, informe a URL (http://localhost:8080/cit-portal-web ou http://IPdoServidor:porta/cit-portal-web) para acesso ao sistema e logo em seguida será apresentada a tela inicial da aplicação.
Obs: É representado a porta 8080 como acesso, por ser a porta default da instalação do JBoss, esta pode ser alterada conforme as mudanças de configuração do servidor WEB.
Os dados de acesso à aplicação são:
Usuário: admin
Senha: admin
4. PREMISSA SOBRE A PRIMEIRA INSTALAÇÃO
Parte do processo de instalação do Citsmart-GRP é automatizado e tem como premissa principal que a integridade do resultado somente pode ser garantida se as execuções de determinadas etapas forem bem-sucedidas.
No caso de ocorrer alguma exceção ou problema operacional durante alguma etapa do processo de instalação, esta etapa deve ser realizada novamente a fim de obter sucesso para que as etapas seguintes consigam ser executadas corretamente.