From 6197cd06e3e57444c86b004baa32b2ac6d1a3f67 Mon Sep 17 00:00:00 2001 From: Guilherme Andrade Del Cantoni Date: Fri, 11 Nov 2016 03:31:31 -0200 Subject: [PATCH] Configuração do container oracle para acessar base do SEI do TRF4 --- Vagrantfile | 16 +++++++++++----- Vagrantfile_Distrib | 4 +++- oracle/Dockerfile | 13 +++++++++++++ oracle/install.sh | 25 +++++++++++++++++++++++++ oracle/install_oracle.sh | 59 ----------------------------------------------------------- oracle/pre-install.sql | 20 ++++++++++++++++++++ oracle/sei-config.sql | 5 +++++ oracle/sei_2_6_0_BD_Ref_Exec.dmp | Bin 0 -> 6574080 bytes oracle/sip-config.sql | 7 +++++++ oracle/sip_2_6_0_BD_Ref_Exec.dmp | Bin 0 -> 1654784 bytes sei/ConfiguracaoSEI.php | 14 ++++++++++++-- sei/ConfiguracaoSip.php | 17 ++++++++++++++--- sei/Dockerfile | 6 ++++++ sei/install.sh | 6 +++--- sei/oracle/install_oracle.sh | 22 ++++++++++++++++++++++ sei/oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm | Bin 0 -> 59865008 bytes sei/oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm | Bin 0 -> 610222 bytes sei/oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm | Bin 0 -> 828333 bytes 18 files changed, 141 insertions(+), 73 deletions(-) create mode 100644 oracle/Dockerfile create mode 100644 oracle/install.sh delete mode 100644 oracle/install_oracle.sh create mode 100644 oracle/pre-install.sql create mode 100644 oracle/sei-config.sql create mode 100644 oracle/sei_2_6_0_BD_Ref_Exec.dmp create mode 100644 oracle/sip-config.sql create mode 100644 oracle/sip_2_6_0_BD_Ref_Exec.dmp create mode 100644 sei/oracle/install_oracle.sh create mode 100644 sei/oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm create mode 100644 sei/oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm create mode 100644 sei/oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm diff --git a/Vagrantfile b/Vagrantfile index bbaaff6..1e0e9c4 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -13,6 +13,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Necessário permissões de root para utilizar a porta 80 (> 1024) config.vm.network :forwarded_port, guest: 80, host: 80 # SIP e SEI (Apache) config.vm.network :forwarded_port, guest: 3306, host: 3306 # Banco de Dados (Mysql) + config.vm.network :forwarded_port, guest: 1521, host: 1521 # Banco de Dados (Oracle) config.vm.network :forwarded_port, guest: 8080, host: 8080 # Jod Converter (Tomcat) config.vm.network :forwarded_port, guest: 8983, host: 8983 # Solr Indexer (Jetty) config.vm.network :forwarded_port, guest: 1080, host: 1080 # MailCatcher @@ -32,6 +33,7 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # Constrói imagens dos containers utilizados no provicionamento docker.build_image "/mnt/sei/ops/solr", args: "-t 'processoeletronico/solr'" docker.build_image "/mnt/sei/ops/mysql", args: "-t 'processoeletronico/mysql'" + docker.build_image "/mnt/sei/ops/oracle", args: "-t 'processoeletronico/oracle'" docker.build_image "/mnt/sei/ops/sei", args: "-t 'processoeletronico/sei'" docker.build_image "/mnt/sei/ops/fakesmtp", args: "-t 'processoeletronico/fakesmtp'" docker.build_image "/mnt/sei/ops/jod", args: "-t 'processoeletronico/jod'" @@ -48,17 +50,21 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| daemonize: true, args: "-p 11211:11211" - # docker run -d --name db -p 3306:3306 processoeletronico/mysql:latest - docker.run "db", image: "processoeletronico/mysql:latest", + # docker run -d --name mysql -p 3306:3306 processoeletronico/mysql:latest + docker.run "mysql", image: "processoeletronico/mysql:latest", daemonize: true, args: "-p 3306:3306" + # docker run -d --name oracle -p 1521:1521 -p 8180:8080 processoeletronico/oracle:latest + docker.run "oracle", image: "processoeletronico/oracle:latest", + daemonize: true, + args: "-p 1521:1521 -p 8180:8080" + # docker run -d --name solr -p 8983:8983 -v /mnt/sei/src/sei/solr:/mnt/sei/index processoeletronico/solr:latest docker.run "solr", image: "processoeletronico/solr:latest", daemonize: true, args: "-p 8983:8983" - # Container do Jod desativado por questões de otimização # docker run -d --name jod -p 8080:8080 processoeletronico/jod:latest docker.run "jod", image: "processoeletronico/jod:latest", daemonize: true, @@ -67,10 +73,10 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| # docker run -d --name sei -p 80:80 --link solr:solr --link db:db --link memcached:memcached --link smtp:smtp -v /mnt/sei/src:/opt processoeletronico/sei:latest docker.run "sei", image: "processoeletronico/sei:latest", daemonize: true, - args: "-p 80:80 --link db:db --link solr:solr --link memcached:memcached --link jod:jod --link smtp:smtp -v /mnt/sei/src:/opt" + args: "-p 80:80 --link oracle:oracle --link mysql:mysql --link solr:solr --link memcached:memcached --link jod:jod --link smtp:smtp -v /mnt/sei/src:/opt" end # Inicialização dos containers em caso de reinicialização da máquina host # A inicialização é realizada de forma sequencial para evitar conflito no mapeamento de volumes no Docker - config.vm.provision "shell", run: "always", inline: "docker restart db && docker restart jod && docker restart solr && docker restart memcached && docker restart smtp && docker restart sei" + config.vm.provision "shell", run: "always", inline: "docker restart oracle && docker restart mysql && docker restart jod && docker restart solr && docker restart memcached && docker restart smtp && docker restart sei" end diff --git a/Vagrantfile_Distrib b/Vagrantfile_Distrib index b16f3cd..95c5c63 100644 --- a/Vagrantfile_Distrib +++ b/Vagrantfile_Distrib @@ -33,10 +33,12 @@ Vagrant.configure(2) do |config| # Necessário permissões de root para utilizar a porta 80 (> 1024) config.vm.network :forwarded_port, guest: 80, host: 80 # SIP e SEI (Apache) config.vm.network :forwarded_port, guest: 3306, host: 3306 # Banco de Dados (Mysql) + config.vm.network :forwarded_port, guest: 1521, host: 1521 # Banco de Dados (Oracle) + config.vm.network :forwarded_port, guest: 8080, host: 8180 # iSQL (Oracle) config.vm.network :forwarded_port, guest: 8080, host: 8080 # Jod Converter (Tomcat) config.vm.network :forwarded_port, guest: 8983, host: 8983 # Solr Indexer (Jetty) config.vm.network :forwarded_port, guest: 1080, host: 1080 # MailCatcher # Inicialização dos containers em caso de reinicialização da máquina host - config.vm.provision "shell", run: "always", inline: "docker restart db && docker restart jod && docker restart solr && docker restart memcached && docker restart smtp && docker restart sei" + config.vm.provision "shell", run: "always", inline: "docker oracle restart && docker restart mysql && docker restart solr && docker restart memcached && docker restart smtp && docker restart sei" end diff --git a/oracle/Dockerfile b/oracle/Dockerfile new file mode 100644 index 0000000..229c6ff --- /dev/null +++ b/oracle/Dockerfile @@ -0,0 +1,13 @@ +FROM wnameless/oracle-xe-11g + +ENV ORACLE_ALLOW_REMOTE=true +ENV NLS_LANG=PORTUGUESE_BRAZIL.WE8MSWIN1252 + +COPY install.sh /install.sh +COPY pre-install.sql /tmp/pre-install.sql +COPY SEI_3.0.0.dmp /tmp/sei.dmp +COPY SIP_3.0.0.dmp /tmp/sip.dmp +COPY sei-config.sql /tmp/sei-config.sql +COPY sip-config.sql /tmp/sip-config.sql + +RUN bash /install.sh diff --git a/oracle/install.sh b/oracle/install.sh new file mode 100644 index 0000000..0563dee --- /dev/null +++ b/oracle/install.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -e + +# Variáveis de ambiente +export ORACLE_HOME=/u01/app/oracle/product/11.2.0/xe +export PATH=$ORACLE_HOME/bin:$PATH +export ORACLE_SID=XE +export NLS_LANG=PORTUGUESE_BRAZIL.WE8MSWIN1252 + +# Inicialização do servidor +bash /usr/sbin/startup.sh + +# Configuração do character set e outros parâmetros iniciais +sqlplus sys/oracle as sysdba @"/tmp/pre-install.sql" + +# Restauração das bases de dados do SEI e SIP +imp system/oracle file=/tmp/sei.dmp full=y +imp system/oracle file=/tmp/sip.dmp full=y + +# Configuração das bases de dados do sistema +sqlplus sei/sei_user @"/tmp/sei-config.sql" +sqlplus sip/sip_user @"/tmp/sip-config.sql" + +exit 0 diff --git a/oracle/install_oracle.sh b/oracle/install_oracle.sh deleted file mode 100644 index baa7386..0000000 --- a/oracle/install_oracle.sh +++ /dev/null @@ -1,59 +0,0 @@ -# Configuração do Oracle no servidor de aplicação do SEI/SIP - -# Instalação de dependências do projeto -yum -y install libaio - - -# Instalação dos pacotes Basic e SDK Instant Client -rpm -Uvh oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm -rpm -Uvh oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm -rpm -Uvh oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm - -# Instalação dos OCI8 extension -printf "\n" | pecl install oci8-2.0.12 - -# Habilitação da extensão do Oracle -echo "extension=oci8.so" > /etc/php.d/oci8.ini - -# Configuração de diretório do Oracle Instant Client no dynamic linker/loader -echo "/usr/lib/oracle/11.2/client64/lib" > /etc/ld.so.conf.d/oracle-11.conf - -# Variáveis de ambiente -export NLS_LANG=PORTUGUESE_BRAZIL.WE8MSWIN1252 - - -# Configuração do banco de dados Oracle do SEI/SIP - -sqlplus sys/oracle as sysdba; - - -SHUTDOWN; -STARTUP MOUNT; -ALTER SYSTEM ENABLE RESTRICTED SESSION; -ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; -ALTER DATABASE OPEN; -ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252; -ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16; -SHUTDOWN IMMEDIATE; -STARTUP; - - - -CREATE TABLESPACE SEI DATAFILE '/u01/app/oracle/oradata/XE/sei.dbf' SIZE 20M AUTOEXTEND ON; -CREATE TABLESPACE SIP DATAFILE '/u01/app/oracle/oradata/XE/sip.dbf' SIZE 20M AUTOEXTEND ON; - -create user sei identified by sei_user; -create user sip identified by sip_user; - -grant all privileges to sei; -grant all privileges to sip; - - -imp system/oracle file=/tmp/SEI_3.0.0.dmp full=y - - -drop user sei cascade; -drop user sip cascade; - - - diff --git a/oracle/pre-install.sql b/oracle/pre-install.sql new file mode 100644 index 0000000..6c4e7c2 --- /dev/null +++ b/oracle/pre-install.sql @@ -0,0 +1,20 @@ +SHUTDOWN; +STARTUP MOUNT; +ALTER SYSTEM ENABLE RESTRICTED SESSION; +ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; +ALTER DATABASE OPEN; +ALTER DATABASE CHARACTER SET INTERNAL_USE WE8MSWIN1252; +ALTER DATABASE NATIONAL CHARACTER SET INTERNAL_USE AL16UTF16; +SHUTDOWN IMMEDIATE; +STARTUP; + +CREATE TABLESPACE SEI DATAFILE '/u01/app/oracle/oradata/XE/sei.dbf' SIZE 20M AUTOEXTEND ON; +CREATE TABLESPACE SIP DATAFILE '/u01/app/oracle/oradata/XE/sip.dbf' SIZE 20M AUTOEXTEND ON; + +CREATE USER sei IDENTIFIED BY sei_user; +CREATE USER sip IDENTIFIED BY sip_user; + +GRANT ALL PRIVILEGES TO sei; +GRANT ALL PRIVILEGES TO sip; + +EXIT; diff --git a/oracle/sei-config.sql b/oracle/sei-config.sql new file mode 100644 index 0000000..c9aa6b5 --- /dev/null +++ b/oracle/sei-config.sql @@ -0,0 +1,5 @@ +update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0; +delete from auditoria_protocolo; + +EXIT; + diff --git a/oracle/sei_2_6_0_BD_Ref_Exec.dmp b/oracle/sei_2_6_0_BD_Ref_Exec.dmp new file mode 100644 index 0000000..c9ae847 Binary files /dev/null and b/oracle/sei_2_6_0_BD_Ref_Exec.dmp differ diff --git a/oracle/sip-config.sql b/oracle/sip-config.sql new file mode 100644 index 0000000..f9dae07 --- /dev/null +++ b/oracle/sip-config.sql @@ -0,0 +1,7 @@ +update orgao set sigla='ABC', descricao='ORGAO ABC' where id_orgao=0; +update sistema set pagina_inicial='http://localhost/sip' where sigla='SIP'; +update sistema set pagina_inicial='http://localhost/sei/inicializar.php', web_service='http://localhost/sei/controlador_ws.php?servico=sip' where sigla='SEI'; +update orgao set sin_autenticar='N' where id_orgao=0; + +EXIT; + diff --git a/oracle/sip_2_6_0_BD_Ref_Exec.dmp b/oracle/sip_2_6_0_BD_Ref_Exec.dmp new file mode 100644 index 0000000..a754995 Binary files /dev/null and b/oracle/sip_2_6_0_BD_Ref_Exec.dmp differ diff --git a/sei/ConfiguracaoSEI.php b/sei/ConfiguracaoSEI.php index ef626a0..e3ab530 100644 --- a/sei/ConfiguracaoSEI.php +++ b/sei/ConfiguracaoSEI.php @@ -31,14 +31,24 @@ class ConfiguracaoSEI extends InfraConfiguracao { 'SipWsdl' => 'http://localhost/sip/controlador_ws.php?servico=wsdl', 'https' => false), + // CONFIGURAÇÃO PARA BANCO DE DADOS ORACLE 'BancoSEI' => array( - 'Servidor' => getenv("DB_PORT_3306_TCP_ADDR"), - 'Porta' => getenv("DB_PORT_3306_TCP_PORT"), + 'Servidor' => getenv("MYSQL_PORT_3306_TCP_ADDR"), + 'Porta' => getenv("MYSQL_PORT_3306_TCP_PORT"), 'Banco' => 'sei', 'Usuario' => 'sei_user', 'Senha' => 'sei_user', 'Tipo' => 'MySql'), //MySql ou SqlServer + // CONFIGURAÇÃO PARA BANCO DE DADOS ORACLE + /* 'BancoSEI' => array( + 'Servidor' => getenv("ORACLE_PORT_1521_TCP_ADDR"), + 'Porta' => getenv("ORACLE_PORT_1521_TCP_PORT"), + 'Banco' => 'sei', + 'Usuario' => 'sei', + 'Senha' => 'sei_user', + 'Tipo' => 'Oracle'), //MySql ou SqlServer + */ 'CacheSEI' => array( 'Servidor' => getenv("MEMCACHED_PORT_11211_TCP_ADDR"), 'Porta' => getenv("MEMCACHED_PORT_11211_TCP_PORT")), diff --git a/sei/ConfiguracaoSip.php b/sei/ConfiguracaoSip.php index 2a3287d..6276355 100644 --- a/sei/ConfiguracaoSip.php +++ b/sei/ConfiguracaoSip.php @@ -25,14 +25,25 @@ class ConfiguracaoSip extends InfraConfiguracao { 'PaginaLogin' => 'http://localhost/sip/login.php', 'SipWsdl' => 'http://localhost/sip/controlador_ws.php?servico=wsdl', 'https' => false), - + + // CONFIGURAÇÃO PARA BASE DE DADOS MYSQL 'BancoSip' => array( - 'Servidor' => getenv("DB_PORT_3306_TCP_ADDR"), - 'Porta' => getenv("DB_PORT_3306_TCP_PORT"), + 'Servidor' => getenv("MYSQL_PORT_3306_TCP_ADDR"), + 'Porta' => getenv("MYSQL_PORT_3306_TCP_PORT"), 'Banco' => 'sip', 'Usuario' => 'sip_user', 'Senha' => 'sip_user', 'Tipo' => 'MySql'), //MySql ou SqlServer), + + // CONFIGURAÇÃO PARA BASE DE DADOS ORACLE +/* 'BancoSip' => array( + 'Servidor' => getenv("ORACLE_PORT_1521_TCP_ADDR"), + 'Porta' => getenv("ORACLE_PORT_1521_TCP_PORT"), + 'Banco' => 'sip', + 'Usuario' => 'sip', + 'Senha' => 'sip_user', + 'Tipo' => 'Oracle'), //MySql ou SqlServer), +*/ 'CacheSip' => array( 'Servidor' => getenv("MEMCACHED_PORT_11211_TCP_ADDR"), diff --git a/sei/Dockerfile b/sei/Dockerfile index e8df1a7..9046f8e 100644 --- a/sei/Dockerfile +++ b/sei/Dockerfile @@ -15,6 +15,12 @@ ENV TERM xterm COPY install.sh /install.sh +# Arquivos de instalação dos componentes do Oracle +COPY oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm /tmp/ +COPY oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm /tmp/ +COPY oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm /tmp/ +COPY oracle/install_oracle.sh /tmp/ + RUN bash /install.sh # Configuração dos parâmetros do SEI e SIP diff --git a/sei/install.sh b/sei/install.sh index 6885139..ba62d0f 100644 --- a/sei/install.sh +++ b/sei/install.sh @@ -9,11 +9,8 @@ yum -y update yum -y install httpd24u mysql56u memcached openssl wget curl unzip gcc java-1.7.0-openjdk libxml2 crontabs # Instalação do PHP e demais extenções necessárias para o projeto -#wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm wget https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm wget https://centos6.iuscommunity.org/ius-release.rpm -#rpm -Uvh epel-release*.rpm -#rpm -ivh epel-release-6-8.noarch.rpm rpm -ivh epel-release-latest-6.noarch.rpm rpm -ivh ius-release.rpm @@ -31,6 +28,9 @@ echo "extension=uploadprogress.so" >> /etc/php.d/uploadprogress.ini # Instalação de componentes para teste do Barramento de Seriços do PEN yum -y install supervisor gearmand libgearman libgearman-devel php56u-pecl-gearman +# Instalação dos componentes de conexão ao Oracle (Oracle Instant Client) +bash /tmp/install_oracle.sh + # Configuração de permissão do diretório de arquivos mkdir -p /var/sei/arquivos && \ chmod -R 777 /var/sei/arquivos diff --git a/sei/oracle/install_oracle.sh b/sei/oracle/install_oracle.sh new file mode 100644 index 0000000..f6f5038 --- /dev/null +++ b/sei/oracle/install_oracle.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +set -e + +# Instala?o de depend?cias do projeto +yum -y install libaio + +# Instala?o dos pacotes Basic e SDK Instant Client +rpm -Uvh /tmp/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm +rpm -Uvh /tmp/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm +rpm -Uvh /tmp/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm + +# Instala?o dos OCI8 extension +printf "\n" | pecl install oci8-2.0.12 + +# Habilita?o da extens? do Oracle +echo "extension=oci8.so" > /etc/php.d/oci8.ini + +# Configura?o de diret?io do Oracle Instant Client no dynamic linker/loader +echo "/usr/lib/oracle/11.2/client64/lib" > /etc/ld.so.conf.d/oracle-11.conf + +exit 0 diff --git a/sei/oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm b/sei/oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm new file mode 100644 index 0000000..032ef0d Binary files /dev/null and b/sei/oracle/oracle-instantclient11.2-basic-11.2.0.4.0-1.x86_64.rpm differ diff --git a/sei/oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm b/sei/oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm new file mode 100644 index 0000000..30aaa0b Binary files /dev/null and b/sei/oracle/oracle-instantclient11.2-devel-11.2.0.4.0-1.x86_64.rpm differ diff --git a/sei/oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm b/sei/oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm new file mode 100644 index 0000000..5127722 Binary files /dev/null and b/sei/oracle/oracle-instantclient11.2-sqlplus-11.2.0.4.0-1.x86_64.rpm differ -- libgit2 0.21.2