Ir para o conteúdo

Tela cheia

Tutorial de Instalação

4 de Dezembro de 2014, 16:24 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.

 

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

http://jdbc.postgresql.org/download.html

       

 

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

 

 2.3.2.   Execução do Sistema

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:

<system-properties>
  <property name="org.apache.catalina.connector.URI_ENCODING" value="UTF-8"/>
  <property name= "org.apache.catalina.connector.USE_BODY_ENCODING_FOR_QUERY_STRING" value="true"/>
  <property name="org.apache.jasper.compiler.Parser.STRICT_QUOTE_ESCAPING" value="false"/>
  <property name="org.apache.tomcat.util.http.Parameters.MAX_COUNT" value="2000"/>
</system-properties>

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

 <system-properties>
  <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION" value="on"/>
  <property name="org.apache.coyote.http11.Http11Protocol.COMPRESSION_MIME_TYPES"
          value="text/javascript,text/css,text/html,text/xml,text/json,image/png,image/jpg,image/jpeg,image/gif"/>
</system-properties>

 

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

 

<datasources>
 <datasource jndi-name="java:/env/jdbc/cit-portal" pool-name="/env/jdbc/cit-portal" enabled="true" use-java-context="true">
   <connection-url>jdbc:postgresql://${ip_do_servidor}:${porta}/citgrp</connection-url>
   <driver>postgres</driver>
   <pool>
      <min-pool-size>10</min-pool-size>
      <max-pool-size>100</max-pool-size>
      <prefill>true</prefill>
   </pool>
   <security>
      <user-name>${nomeDoUsuario}</user-name>
      <password>${senha}</password>
   </security>
   <timeout>
      <blocking-timeout-millis>60000</blocking-timeout-millis>
      <idle-timeout-minutes>1</idle-timeout-minutes>
   </timeout>
 </datasource>
<datasources>

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:

 <datasources>
   <xa-datasource jndi-name="java:/env/jdbc/cit-portal" pool-name="/env/jdbc/cit-portal" enabled="true" use-java-context="true">
      <xa-datasource-property name="ServerName">
         ${database.server.host}
     
</xa-datasource-property>

      <xa-datasource-property name="PortNumber">
         ${database.server.port}
     
</xa-datasource-property>

      <xa-datasource-property name="DatabaseName">
         citgrp
     
</xa-datasource-property>

      <driver>postgresql</driver>
      <security>
        <user-name>${nomeDoUsuario}</user-name>
        <password>${senha}</password>
      </security>
      <validation>
        <valid-connection-checker class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLValidConnectionChecker"/>
        <background-validation>true</background-validation>
        <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.postgres.PostgreSQLExceptionSorter"/>
      </validation>
      <timeout>
            <blocking-timeout-millis>5000</blocking-timeout-millis>
            <idle-timeout-minutes>1</idle-timeout-minutes>
      </timeout>
      <statement>
            <prepared-statement-cache-size>1000</prepared-statement-cache-size>
            <share-prepared-statements>true</share-prepared-statements>
      </statement>
</xa-datasource>

 

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:

 

 <?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.postgres">
   <resources>
       <resource-root path="postgresql-9.3-1103-jdbc41.jar"/>
   </resources>
   <dependencies>
       <module name="javax.api"/>
       <module name="javax.transaction.api"/>
       <module name="javax.servlet.api" optional="true"/>
   </dependencies>
</module>

 

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:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="javax.persistence.api">
   <dependencies>
       <module name="javax.api" export="true"/>
   </dependencies>
   <resources>
       <resource-root path="hibernate-jpa-2.1-api-1.0.0.Final.jar"/>
   </resources>
</module>

 

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:

<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.1" name="org.javassist">
   <properties>
       <property name="jboss.api" value="private"/>
   </properties>
   <resources>
       <resource-root path="javassist-3.18.1-GA.jar"/>
   </resources>
</module>

 

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 

# 1 - Quando for autenticacao via banco de dados direto o arquivo spring-security
# 2 - Quando for autenticacao via jasig-cas o arquivo spring-security-cas
metodo.autenticacao=2
cas.return.url=https://localhost:8443/cit-portal-web/
authentication.url=https://localhost:8443
authentication.method=spring-security-cas.xml

# PROPRIEDADES DE MINIFICAÇÃO
# utilize "environment=prod" para arquivos minificados 
environment=dev

# PROPRIEDADES DE PERSISTENCIA

hibernate.show.sql=false
hibernate.format.sql=true
hibernate.generate.ddl=true
hibernate.hbm2ddl.auto=update
hibernate.use_sql_comments=false
hibernate.generate_statistics=true
hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect

# PROPRIEDADES DO ESI
# local broker.url=tcp://localhost:61616
broker.url=tcp://localhost:61616
esi.input.queue=esi.input.queue
esi.output.queue=esi.output.queue
esi.service.users=esi_service_users
esi.service.groups=esi_service_groups
esi.service.notification=esi_service_notification
esi.show.objects=false
esi.url=https://localhost:8443/cit-esi-listener-web/

# PROPRIEDADES DE EMAIL
mail.enabled=true
mail.host=localhost
#mail.protocol=smtp
mail.port=25
mail.from=sender
mail.username=user
mail.password=pwd
mail.smtp.auth=false
#mail.smtp.ssl.enable=true
mail.smtp.starttls.enable=true
#mail.smtp.quitwait=false
#mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
#mail.smtp.socketFactory.fallback=false
mail.debug=true

 

modules.xml 

<module xmlns="urn:jboss:module:1.1" name="br.com.citsmart-grp">
   <resources>
        <resource-root path="."/>
   </resources>
</module>

 

 

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:

  1. O arquivo estará disponibilizado na página do Software Público (http://www.softwarepublico.gov.br/ListaSoftwares);
  2. Acesse a página e realize o download do arquivo necessário;
  3. O arquivo será salvo no local de download padrão no computador;
  4. Após conclusão do download, abra a pasta na qual o arquivo está armazenado e descompacte o mesmo;
  5. 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 2​​2, 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.


Essa comunidade não possui posts nesse blog