MANUAL DE INSTALAÇÃO TerraMA2 - release 4.1.0 - 16/12/2019 SUMARIO 1 - INSTALAÇÃO LINUX 2 - INSTALAÇÃO MÁQUINA VIRTUAL LINUX 3 - INSTALAÇÂO DOCKER LINUX ----------------------------------------------------------------------------------------------- 1 - INSTALAÇÃO LINUX O pacote de instalação do TerraMA2 para Linux foi testado e compilado para a distribuição Debian. Caso o usuário queira usar outra distribuição Linux poderá compilar a plataforma na distribuição Linux de sua preferência, conforme descrito no item 6. 1.1 - Instalando Pacote Debian O pacote Debian 16.04 tem as seguintes dependências; TerraLib, NodeJs, Postgres/PostGIS, Java e Geoserver. IMPORTANTE: A instalação requer conexão com internet. 1.1.1 - Instalando TERRALIB Baixe a versão 5.4.5 da TerraLib do site http://www.dpi.inpe.br/terralib5. Caso outra versão mais nova esteja disponível, procure na página pela versões anteriores (Previous Releases and previous source code...). Não use uma versão diferente da indicada e testada. Descomprima o arquivo terralib-5.4.5-ubuntu-16.04.tar.gz com comando: Para UBUNTU 16.04: # tar -xvzf terralib-5.4.5-ubuntu-16.04.tar.gz Digite o comando: # ./install.sh Aguarde pela mensagem "Finished successfully!" NOTA: O Aplicativo TerraView versão 5.4.5 é instalado juntamente com a TerraLib 1.1.2 - Instalando NodeJs Para instalar o NodeJs, digite no terminal as seguintes linhas de comando: # sudo apt-get install -y curl # curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash - Aguarde pela mensagem "Reading package lists... Done" # sudo apt-get install -y nodejs Aguarde pelo término da instalação 1.1.3 - Instalando PostgreSQL + PostGIS Para instalar servidor de banco dados PostgreSQL + PostGIS, digite no terminal as seguintes linhas de comando dependendo da versão do Ubuntu de sua preferência. Para UBUNTU 16.04: # sudo apt-get install postgresql-9.5-postgis-2.2 Se aparecer a seguinte mensagem: Do you want to continue? [Y/n] (digite Y para continuar) Por padrão a instalação do PostgreSQL cria uma conta de usuário com login: postgres, porém sem uma senha definida. A plataforma TerraMA2 requer que esta conta tenha uma senha definida, portanto digite no terminal as seguintes linhas de comando, substituindo pela senha desejada: # sudo -u postgres psql # ALTER USER postgres WITH PASSWORD 'postgres'; # \q IMPORTANTE: Não esquecer do Ponto-Virgula ; no comando ALTER acima. Mais alguns conponentes do PostGIS precisam ser instalados, digite: # sudo apt-get install postgis NOTA: Após a definição da senha do usuário "postgres" ou criação de outra conta com login e senha diferentes, será necessário informar qual login e senha o TerraMA2 vai utilizar. Veja procedimento a seguir. Sugerimos a instalação do PgAdmin3 para administração do banco PostgreSql pela interface gráfica. Portanto, digite no terminal a seguinte linha de comando: # sudo apt-get install pgadmin3 Se aparecer a seguinte mensagem: Do you want to continue? [Y/n] (digite Y para continuar) 1.1.4 "Instalando Java, TOMCAT e Geoserver Para a publicação dos dados do TerraMA2 na aplicação Web Instalar o Java 8, Tomcat8 e Geoserver 2.10.3. Para instalar o Java 8 recomendamos utilizar o pacote "default" distribuído pela própria versão do Ubuntu. Digite os comandos: # sudo apt-get update # sudo apt-get install default-jdk Edite o arquivo environment em /etc Use um editor: vi ou gedit # sudo vi /etc/environment OU # sudo gedit /etc/environment Inserir a linha abaixo e salve JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java" Digite o comando para ler as alterações # source /etc/environment Para instalar o Tomcat recomendamos utilizar o pacote "default" distribuído pela própria versão do Ubuntu. Digite os comandos: # sudo apt-get install tomcat8 tomcat8-admin Será necessário editar o arquivo "tomcat-users.xml" que está em /var/lib/tomcat8/conf . Procure o trecho abaixo que está comentado e copie para fora do comentário, como está abaixo. Inclua a regra "manager-gui" em "roles". Utilize comando cd + caminho para abrir local do arquivo, conforme abaixo: # cd /var/lib/tomcat8/conf Novamente utilize um editor de texto vi ou gedit. # sudo vi tomcat-users.xml OU # sudo gedit tomcat-users.xml Antes Depois Reinicie o serviço do Tomcat com: # sudo service tomcat8 restart A seguir será necessário alterar o limite para arquivos *.WAR no Tomcat, pois o arquivo do Geoserver a ser importado ultrapassa o valor default. Abra o arquivo "web.xml" que está em /usr/share/tomcat8-admin/manager/WEB-INF . Note que o valor está em 50MB e o arquivo que iremos importar tem aproximadamente 70MB. Procure pelo trecho abaixo e altere ambos os parâmetros "" e "", da seguinte maneira: # cd /usr/share/tomcat8-admin/manager/WEB-INF # sudo gedit web.xml Procure a sessão abaixo e modifique conforme apresentado a seguir. Antes 52428800 52428800 0 Depois 104857600 104857600 0 Salve as alterações acima e reinicie o serviço do Tomcat com: # sudo service tomcat8 restart O GeoServer testado para ser utilizado pelo TerraMA2 é a versão 2.10.3. Assim descomprima o arquivo "geoserver-2.10.3-war.zip" com comando: # unzip geoserver-2.10.3-war.zip No navegador digite "localhost:8080/manager". Digite o login: tomcat e Senha: tomcat na janela aberta. A tela do navegador deverá apresentar a aplicação de gerencia do Tomcat. No campo "WAR file to deploy" procure pelo arquivo "geoserver.war" que foi descompactado pelo comando acima. Clique em "Deploy". Observe que a aplicação deve aparecer na lista acima. Clique no link "/geoserver" para acessar o menu principal do GeoServer. No navegador digite em - login: admin e - Senha: geoserver para acessar o GeoServer. A instalação do Geoserver vem configurada com um mínimo de utilização da memória do computador. Como as aplicações da plataforma TerraMA2 normalmente demandam muitos dados a serem publicados diariamente, pode ser necessário aumentar ao limites de duas variáveis do tomcat. Na pasta /usr/share/tomcat8/bin edite ou crie o arquivo "setenv.sh" modificando ou inserindo os parâmetros -Xms128M e -Xmx756M para algo em torno de -Xms512M e -Xmx1024M. Assim, a linha de comando deve ficar da seguinte maneira: # cd /usr/share/tomcat8/bin # sudo gedit setenv.sh Digite a linha no arquivo # export CATALINA_OPTS="-Xms512M -Xmx1024M -Duser.timezone=GMT" Reinicie o serviço do tomcat após alteração. Os valores ideais vão depender da máquina disponível. # sudo service tomcat8 restart Para verificar se o tomcat recebeu a alteração dos limites acima, use o comando # ps aux | grep tomcat 1.1.5- Instalando TerraMA2 Para instalar o TerraMA2 com os módulos de administração e monitoramento, digite no terminal a seguinte linha de comando: Para UBUNTU 16.04: # sudo dpkg -i TerraMA2-4.1.0-release-linux-x64-Ubuntu-16.04.deb OBS: Algumas dependências serão instaladas caso não existam na máquina. Neste caso uma mensagem de erro será apresentada no terminal. Para prosseguir com a instalação digite a linha de comando a seguir no terminal: # sudo apt-get install -f -y Para Instalar a documentação # sudo dpkg -i terrama2-doc-4.1.0.deb 1.1.6- Configurando a plataforma TerraMA2 Antes de editar os arquivos de configuração crie os arquivos a partir dos arquivos de exemplo. # cd /opt/terrama2/4.1.0/webapp/config/ # sudo cp db.json.example db.json # sudo cp settings.json.example settings.json IMPORTANTE: Antes de iniciar as duas aplicções WEB do TerraMA2, atente que alguns parâmetros serão considerados padrões das dependências instaladas acima, isto é: - O banco PostgreSQL vai utilizar a usuário: postgres e senha: postgres - A porta para o módulo de administração será a 36000 - A porta para o módulo de monitoramento será a 36001 - Nome do banco e esquema para as tabelas de metadados da plataforma será "terrama2" - Nome do máquina "host" onde será executado as aplicações web será "localhost" ou "127.0.0.1" Caso algum desses parâmetros seja diferente deverá fazer alterações nos arquivos "db.json" e "settings.json" que ficam em /opt/terrama2/4.1.0/webapp/config/ DICA: Para que as aplicações possam ser vistas por outras máquinas na rede local ou internet é importante que a máquina de instalação tenha um IP fixo e esse IP seja configurado nos arquivos acima. 1.1.7- Iniciando a plataforma TerraMA2 Para iniciar as duas aplicções WEB do TerraMA2, temos duas opções. LEMBRE-SE que será considerado os parâmetros "default" da instalação ou com as alterções efetuadas nos arquivos "default.json". OPÇÃO 1: Utilizar o PM2 para inciar automaticamente ao iniciar o sistema operacional. # cd /opt/terrama2/4.1.0/share/terrama2/scripts # sudo chmod +x config_pm2.sh # sudo ./config_pm2.sh OPCAO 2: Abrir 2 terminais de comando e digitar em cado os comandos >>> Terminal 1 <<<<<< # cd /opt/terrama2/4.1.0/webapp # sudo npm start >>> Terminal 2 <<<<<< # cd /opt/terrama2/4.1.0/webmonitor # sudo npm start --------------------------------- IMPORTANTE: Caso ambos os módulos, Administração (webapp) e Monitoramento (webmonitor) já estejam em execução e algum dos arquivos acima forem modificados, será necessário reiniciar os serviços desses módulos. Utilize a seguinte linha de comando no terminal: # sudo pm2 restart webapp webmonitor Para remover o Terrama2 poderá utilizar um dos comandos a seguir. # sudo apt remove terrama2 Remove o TerraMA2 e dependências instaladas. Não remove o diretório onde foi realizada a instalação, arquivo de log e bancos de dados. # sudo apt remove terrama2 --purge Remove o TerraMA2 , dependências instaladas, o diretório onde foi realizada a instalação, arquivo de log e todos os bancos de dados. 1.1.7- Teste dos módulos da plataforma TerraMA2 Para testar os dois aplicativos Web da plataforma TerraMA2 digite as URLs abaixo. * Módulo de Administração - digite: http://localhost:36000 Na janela do navegador digite o login e senha iniciais do administrador são: * Usuário: admin * Senha: admin * Módulo de Monitoramento - digite: http://localhost:36001 2 - INSTALAÇÃO MÁQUINA VIRTUAL LINUX Não Disponível. ------------------------------------------------------------------------------------------------------- 3 - INSTALAÇÂO DOCKER LINUX A instalação via Docker pode ser feita sobre qualquer sistema operacional. Siga as instruções que estão no link https://github.com/TerraMA2/docker ------------------------------------------------------------------------------------------------------- 4 - Variáveis 4.1 WebApplication O arquivo de exemplo pode ser encontrado em "/opt/terrama2/4.1.0/webapp/config/settings.json.exemple". **Lembre-se** que este arquivo é apenas um exemplo. **Ao configurar a plataforma este arquivo será copiado para "/opt/terrama2/4.1.0/webapp/config/settings.json" { "basePath": "/", "port": 36000, "defaultFilePathList": [ "/home//terrama2" ], "defaultExecutablePath": "/opt/terrama2/4.1.0/bin", "defaultExecutableName": "terrama2_service", "disablePDF": true, "debug": true, "OGR2OGR": "ogr2ogr", "SHP2PGSQL": "shp2pgsql", "toolsMenu": [ { "textEn": "TerraMA² Homepage", "textEs": "TerraMA² Homepage", "textFr": "TerraMA² Homepage", "textPt": "TerraMA² Homepage", "url": "http://www.terrama2.dpi.inpe.br/", "openInNewTab": true } ], "webAppId": "default|||$2b$10$olA2TK05Y4ooWaK/kClyaOUylqDg/epXdLgtkwHwjGyFi7u7NENNW" } - "basePath" representa o caminho base da URL do servidor. Altere o valor deste campo quando o TerraMA² for disponibilizado sobre um caminho diferente. Exemplo: http://www.terrama2.dpi.inpe.br/terrama2/admin". O valor deve ser **/terrama2/admin/** - "port" representa porta de execução do TerraMA². Por padrão, **36000** - "defaultFilePathList" representa lista de caminhos base disponíveis para cadastro nos provedores de dados do tipo FILE. Cada caminho representa um diretorio base para listagem dos dados. Quando cadastrar um provedor de dados, os diretorios devem estar contidos dentro desse conjunto de caminhos. - "defaultExecutablePath" caminho do executavel do TerraMA². - "defaultExecutableName" nome do executavel dos serviços do TerraMA² - "disablePDF" Desabilitar a geração de PDF - "debug" Informações complementares de debug internamente. Utilizado para a inicializção do serviço do TerraMA². - "OGR2OGR" Caminho completo para o executavel da ferramenta "ogr2ogr" da GDAL. - "SHP2PGSQL" Caminho completo para o executavel da ferramenta "shp2pgsql" da GDAL. Banco de Dados "db": { "username": "postgres", "password": "postgres", "database": "terrama2", "host": "127.0.0.1", "dialect": "postgres", "define": { "schema": "terrama2" }, "logging": false }, Os parâmetros de conexão devem ser alterados baseados nas credenciais de cada usuário. A chave "schema" representa um agrupamento das tabelas internas do TerraMA² dentro do schema "terrama2". Você pode alterar para o valor que achar melhor. A chave "logging" define mostrar ou esconder os logs associados as operações no banco de dados. Quando habilitado, os comandos SQL gerados pela ORM Sequelize serão impressos no terminal. Extra - Menus "toolsMenu": [ { "textEn": "TerraMA² Homepage", "textEs": "TerraMA² Pagina Principal", "textFr": "TerraMA² Page d'accueil", "textPt": "TerraMA² Pagina Principal", "url": "http://www.terrama2.dpi.inpe.br/", "openInNewTab": true } ] A seção "toolsMenu" define um conjunto de objetos que representam links externos para compor o menu lateral na interface. Em outras palavras, é possivel adicionar links de paginas de outros projetos para um rapido acesso. Para isso é necessário seguir a estrutura abaixo: - "textEn" - Texto em Inglês - "textEs" - Texto em Espanhol - "textFr" - Texto em Francós - "textPt" - Texto em Português - "url" - URL do site - "openInNewTab" - Refere-se ao clicar no link, deva abrir em nova janela ou na atual. 4.2 WebMonitor O arquivo de exemplo pode ser encontrado em "webmonitor/config/sample_instances/default.json". **Lembre-se** que este arquivo é apenas de base. **Ao instalar o TerraMA², este arquivo será movido para** "webmonitor/config/instances/default.json" { "webmonitor": { "basePath": "/", "port": 36001 }, "webadmin": { "protocol": "http://", "basePath": "/", "port": 36000, "host": "127.0.0.1" } } - "basePath" do "webmonitor" representa o caminho base da URL do servidor. Altere o valor deste campo quando o TerraMA² for disponibilizado sobre um caminho diferente. Exemplo: http://www.terrama2.dpi.inpe.br/terrama2/monitor". O valor deve ser **/terrama2/monitor/** - "port" do "webmonitor" representa porta de execução do TerraMA². Por padrão, **36001** **Os valores** contidos dentro da chave "webadmin" são de suma **importância** estarem corretos pois o aplicativo webmonitor **requer** comunicação e acesso ao aplicativo web do TerraMA². - "protocol" protocolo de acesso ao serviço. **http://** or **https://**. - "basePath" do "webapp" representa o caminho base da URL do servidor do WebApp. Altere o valor deste campo quando o TerraMA² for disponibilizado sobre um caminho diferente. Exemplo: http://www.terrama2.dpi.inpe.br/terrama2/admin". O valor deve ser **/terrama2/admin/** - "port" representa porta de execução do TerraMA² **Lembre-se** que é a porta associada a URL de acesso. Em outras palavras, se houver um proxy server, deve-se colocar a porta de proxy. Por exemplo: http://www.terrama2.dpi.inpe.br/terrama2/admin redireciona para o aplicativo Web do TerraMA². Neste caso, a porta é a padrão do navegador "80". - "host" representa um endereço público de acesso ao aplicativo web do TerraMA². ------------------------------------------------------------------------------------------------------- 5. Acesso externo do TerraMA² Basta configurar o servidor Web (Apache, NGINX ou outro) para apontar para a **IP:PORTA** do aplicativo Web. Fique atento na disponibilização do webmonitor. O webmonitor necessita acessar o aplicativo web. Neste caso, edite as configurações do arquivo "webmonitor/config/instances/default.json". Além disso, vá para pagina de Administração de Serviços e selecione o serviço de View. Na seção "Maps Server Parameters", verifique o IP de acesso do GeoServer. Lembre-se de colocar um IP publico de acesso pois o webmonitor realiza requisições no navegador para o GeoServer. Para funcionamento na rede interna, coloque apenas o IP real da maquina do GeoServer com a respectiva porta. # Exemplo com NGINX O exemplo a seguir demonstra o servidor NGINX ouvindo na porta "80" no endereço "terrama2.com.br". As instâncias do TerraMA² estão rodando na mesma maquina. Neste caso, o servidor NGINX faz apenas um proxy, passando a requisição para o respectivo serviço. Por exemplo: Ao acessar "http://terrama2.dpi.inpe.br/adm" será redirecionado internamente para o aplicativo Web do TerraMA². Ao acessar "http://terrama2.dpi.inpe.br/monitor", será redirecionado para o webmonitor. Arquivo: /etc/nginx/site-enabled/default server { server_name terrama2.com.br; listen 80; # WebApp location /adm { proxy_pass http://127.0.0.1:36000; include proxy_params; } location /adm/socket.io { proxy_pass http://127.0.0.1:36000; include proxy_params; # Path rewriting rewrite ^/adm/socket.io/?(.*) /socket.io/$1 break; } location /adm/i18n { proxy_pass http://127.0.0.1:36000; include proxy_params; # Path rewriting rewrite ^/adm/i18n/?(.*) /i18n/$1 break; } # WebMonitor location /monitor { proxy_pass http://127.0.0.1:36001; include proxy_params; } location /monitor/socket.io { proxy_pass http://127.0.0.1:36001; include proxy_params; # Path rewriting rewrite ^/monitor/socket.io/?(.*) /socket.io/$1 break; } location /monitor/i18n { proxy_pass http://127.0.0.1:36001; include proxy_params; # Path rewriting rewrite ^/monitor/i18n/?(.*) /i18n/$1 break; } server_name _; } Repare também que é necessário aplicar uma medida especial para sobrescrita interna de rotas para o "socket.io" e o pacote de tradução. ------------------------------------------------------------------------------------------------------- FIM